Ошибка phpMyAdmin - файл конфигурации теперь нуждается в секретной парольной фразе


29

Я продолжаю получать сообщение об ошибке "Файл конфигурации теперь нуждается в секретной парольной фразе" после установки phpmyadmin. Я установил ключевую фразу и также следовал инструкции, представленной на /server/291490/phpmyadmin-not-allowing-users-to-log-on, но, похоже, она не работает. Я использую AMI и проверил владельца и разрешения, а также. Пожалуйста, помогите.

Ответы:


39

Это может помочь, https://wiki.archlinux.org/index.php/PhpMyAdmin#Add_blowfish_secret_passphrase

Если вы видите следующее сообщение об ошибке внизу страницы при первом входе в систему / phpmyadmin (используя предварительно настроенные имя пользователя и пароль MySQL):

ERROR: The configuration file now needs a secret passphrase (blowfish_secret)  

Вам нужно добавить пароль blowfish в файл конфигурации phpMyAdmin. Отредактируйте /etc/webapps/phpmyadmin/config.inc.php и вставьте в строку случайный «пароль» для раздувной рыбы

$cfg['blowfish_secret'] = ; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */  

Теперь это должно выглядеть примерно так:

$cfg['blowfish_secret'] = 'qtdRoGmbc9{8IZr323xYcSN]0s)r$9b_JUnb{~Xz'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */  

Все это предполагает, что вы уже правильно создали файл конфигурации,

cp config.sample.inc.php config.inc.php

Как я уже сказал, я уже установил пароль и все еще не работает.
Джекс

1
Возможно, отредактированный вами файл конфигурации не является активным? Потому что ошибка указывает на то, что пароль не установлен.
user16081-JoeT

2
У меня такая же проблема ... Я изменил свой config.sample.inc.phpфайл config.inc.phpи добавил к нему упомянутые $cfg['blowfish_secret'] = 'qtdRoGmbc9{8IZr323xYcSN]0s)r$9b_JUnb{~Xz';настройки, но страница индекса phpMyAdmin по-прежнему жалуется, что она отсутствует! Если есть вероятность загрузки другого файла, то я не знаю, где и почему этот файл? Есть какие-нибудь идеи у кого была эта проблема раньше?
JasonDavis

1
@jasondavis проверьте другой ответ; у вас может быть проблема с разрешениями, и вам необходимо изменить владельца / группу вашей папки конфигурации phpMyAdmin.
user16081-JoeT

2
Вы можете использовать «Секретный генератор» по адресу question-defense.com/tools/phpmyadmin-blowfish-secret-generator, чтобы получить случайный код, который должен работать. Это связано в пейджер от user16081-JoeT сообщение. Затем следуйте его инструкциям.
WebLuke

8

Я также получал ошибку, The configuration file now needs a secret passphrase (blowfish_secret)когда файл конфигурации был $cfg['blowfish_secret']установлен. Я использую CentOS v6, и я установил PHPMyAdmin из репозитория EPEL, используя yum. Я настроил nginx для размещения PHPMyAdmin, и пакет PHPMyAdmin (по умолчанию) настроен для работы с Apache. Файл конфигурации находится в /etc/phpMyAdmin/config.inc.php(вы можете проверить CONFIG_DIRв , libraries/vendor_config.phpчтобы найти , где ваш конфигурационный файл находится) , и если вы заметили, пользователь корень и группа apacheдля файлов и каталогов. Это приводит к тому, что PHPMyAdmin не может прочитать файл конфигурации. Чтобы устранить эту проблему, используйте chownдля изменения группы на ту, на которой запущен ваш веб-сервер (в моем случае это группа nginx). Вам нужно будет сменить владельца каталога и файла конфигурации (как показано ниже).

chown -R root.nginx /etc/phpMyAdmin/

Обратите внимание, что вам может понадобиться сделать это снова, если PHPMyAdmin обновлен. У вас также могут возникнуть проблемы с разрешениями, если SELinux включен.


Комментарии в /etc/phpmyadmin/config.inc.php: `* ПРИМЕЧАНИЕ: не добавляйте в этот файл конфиденциальные данные (например, пароли) *, если вы действительно не знаете, что делаете. Если вы это сделаете, любой пользователь, который может * запустить PHP или CGI на вашем веб-сервере, сможет их прочитать. Если вы все еще * хотите это сделать, убедитесь, что вы правильно обеспечили доступ к этому файлу * (также на уровне файловой системы). * / `
Баттл Буткус

Ниже она имеет следующую строку: include('/var/lib/phpmyadmin/blowfish_secret.inc.php');поэтому я пошел туда и изменил группу этого файла на пользователя моего веб-сервера. Это работает, но не кажется более безопасным, чем ввод пароля /etc/phpmyadmin/config.inc.php. Я думаю, может быть, PHP не может быть запущен там? Это все-таки решило проблему. Думаю, я перейду мост хакерской атаки, когда доберусь до него.
Баттл Буткус

Местоположение по умолчанию под CONFIG_DIR ./config/config.inc.php. Поскольку у меня есть этот файл за пределами этого каталога, так что я могу легче менять версии, мне просто нужно было создать символическую ссылку для этого файла на мое местоположение, и сообщение исчезло для меня. ln -s ../../../config.inc.php config.inc.php
MECU

+1 За необходимость устанавливать разрешения для /etc/phpMyAdminкаталога, а не только для config.inc.phpфайла в нем.
Jxmallett

5

я имел

define('CONFIG_DIR', '/etc/phpmyadmin'); 

в /usr/share/phpmyadmin/libraries/vendor_config.php.

Должен быть:

define('CONFIG_DIR', '/etc/phpmyadmin/'); 

(добавлена ​​косая черта)


2

Последняя версия phpmyadmin не создает файл конфигурации после установки. Доступен пример файла конфигурации и фактический файл конфигурации по умолчанию в глубине дерева папок.

Обратите внимание, что секрет blowfish должен быть ровно 32 символа, иначе он не будет применен.

Скопируйте файл примера, чтобы создать фактически используемый файл, который переопределяет значения по умолчанию. Каталог, показанный ниже, является только примером, поэтому используйте каталог / путь для вашей установки phpmyadmin, которая применяется.

cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

В верхней части файла находится переменная blowfish, которую необходимо установить. Добавьте 32 случайных символа к значению переменной и сохраните файл.

$cfg['blowfish_secret'] = 'KLS$vbc91Lkja$vc@opGbxA278EWopdc';

Я не читал никого, упоминающего правило 32 символа в этой теме. Возможно, это была проблема для ОП.


2

В моем случае я обновил PHPMyAdmin вручную, потому что версия в репозитории не работала хорошо с PHP 7.2. Я выполнил все шаги онлайн, но сделал ошибку в /usr/share/phpmyadmin/libraries/vendor_config.php.

Линия: define('CONFIG_DIR', '/etc/phpmyadmin/');не хватало /в конце. Я узнал об этом, отредактировав вручную библиотеки / classes / Config.php, и в начале function load($source)я сделал a die($source). Там я увидел, что источник конфигурации был неверным.


1

Помимо проверки прав доступа для группы http (веб-сервер), стоит проверить, что запись 'open_basedir' в php.ini включает каталог, в котором находится файл config.inc.php, если он задан. Это вылечило эту проблему для меня.


1

Перейдите в папку phpmyadmin> найдите ' lint.php ' и установите = 'require_once' library / config.inc.php ';

Это определенно решит вашу проблему.

Если это решит вашу проблему, то спасибо мне.


1

Следуй этим шагам:

1) Перейти к /etc/httpd/conf.d/phpmyadmin.conf

  • (проверьте путь phpMyAdmin в теге каталога)

2) Перейти /usr/share/phpmyadmin, открытьconf.inc.php

3) Добавьте значение для blowfish_secret, например:

$cfg['blowfish_secret'] = 'mrgQxxk8C-y}U7ji2BO9o5jLf}Qhe-BI[~6SUa';/* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

4) Сохранить и выйти.

5) Очистить кеш браузера

6) Попробуйте получить доступ с URL: http://yourserver.com/phpmyadmin/index.php


1

Просто хочу поделиться этим. ставить

$cfg['blowfish_secret'] = 'fill this up';

Перейдите в папку phpmyadmin и найдите lint.php

и установить

require_once 'common.inc.php';

1

Если вы редактировали файл здесь: /usr/share/phpmyadmin/config.inc.php

И проблему не решить, есть вероятность, что вы редактируете неправильный файл. если вы запустите whereis phpmyadmin -lэто, вы получите список расположения phpmyadmin на сервере.

Почему я сказал, что вы, возможно, редактируете неправильный файл, в том, что если вы устанавливаете свой phpmyadmin в var/www/phpmyadminили var/www/html/phpmyadminвам нужно отредактировать phpmyadmin/config.sample.inc.php.

Так что попробуйте это:

$ cd var/www/html/phpmyadmin
$ cp config.sample.inc.php config.inc.php

Отредактируйте это по-своему, выйдите из системы и войдите в phpmyadmin, все будет в порядке.


0

Добавление пароля с 32 символами в скобках $ cfg ['blowfish_secret'] = ''; помог мне с другим файлом внутри /usr/share/phpmyadmin/libraries/config.default.php

Используя debian 9 + ispconfig, установленный вручную phpmyadmin


0

В моем случае это была проблема владельца / прав доступа, потому что я вручную создал символическую ссылку на одном из моих основных веб-сайтов, чтобы указать на нее, /usr/share/phpmyadmin/чтобы я мог получить доступ к phpMyAdmin из полного доменного имени https://myserver.mydomain.com/changedphpmyadmin вместо этого только по IP. Но это также изменило веб-пользователя; просмотр по IP отличается от просмотра по полному доменному имени, если это не домен по умолчанию.

Так что в моем случае веб-пользователь моего полного доменного имени не мог прочитать /var/lib/phpmyadmin/blowfish_secret.inc.php, поэтому я просто сменил владельца этого файла с root: www-data на web1: client1 в моем случае. Затем протестируйте и перезагрузите nginx:

chown web1:client1 /var/lib/phpmyadmin/blowfish_secret.inc.php
nginx -t
systemctl reload nginx

Там не должно было быть необходимости перезагрузить nginx; это не имеет ничего общего с выполнением кода PHP.
Уомбл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.