Вопрос или проблема
После установки phpmyadmin я постоянно получаю ошибку “Файл конфигурации теперь требует секретной фразы”. Я установил фразу и также следовал инструкциям, представленным на https://serverfault.com/questions/291490/phpmyadmin-not-allowing-users-to-log-on, но это не работает. Я использую AMI и проверил владельца и разрешения. Пожалуйста, помогите.
Это может помочь,
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/phpmyadmin/config.inc.php
,/etc/webapps/phpmyadmin/config.inc.php
, или/usr/share/phpmyadmin/config.inc.php
.
Отредактируйте файл и вставьте случайный “пароль” blowfish в строку
$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
Я также получал ошибку 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
, чтобы найти, где находится ваш конфигурационный файл), и если вы заметите, пользователь – root, а группа – apache
для файла и каталога. Это вызывает невозможность PHPMyAdmin прочитать конфигурационный файл. Чтобы исправить эту проблему, используйте chown
, чтобы изменить группу на ту, которая управляет вашим веб-сервером (в моем случае, это группа nginx
). Вам потребуется изменить владельца как для каталога, так и для конфигурационного файла (как показано ниже).
chown -R root.nginx /etc/phpMyAdmin/
Обратите внимание, что вам, возможно, придется сделать это снова, если PHPMyAdmin будет обновлен. У вас также могут возникнуть дальнейшие проблемы с разрешениями, если SELinux включен.
Последняя версия 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 символов в этой теме.
Возможно, это была проблема для автора вопроса.
У меня было
define('CONFIG_DIR', '/etc/phpmyadmin');
в /usr/share/phpmyadmin/libraries/vendor_config.php.
Должно быть:
define('CONFIG_DIR', '/etc/phpmyadmin/');
(добавлена косая черта)
В моем случае я обновил PHPMyAdmin вручную, так как версия в репозитории не вела себя корректно с PHP 7.2.
Я последовал всем шагам в сети, но совершил ошибку в /usr/share/phpmyadmin/libraries/vendor_config.php.
Строка: define('CONFIG_DIR', '/etc/phpmyadmin/');
отсутствовала косая черта в конце. Я обнаружил это, вручную редактируя libraries/classes/Config.php и в начале function load($source)
я сделал die($source)
. Там я увидел, что источник конфигурации был некорректен.
Помимо проверки, что разрешения выполняются для группы http (веб-сервера), стоит проверить, включена ли запись ‘open_basedir’ в php.ini для каталога, в котором находится config.inc.php, если она установлена. Это решило проблему для меня.
Перейдите в папку phpmyadmin > найдите ‘lint.php‘ и установите =‘require_once ‘libraries/config.inc.php’;
Это определенно решит вашу проблему.
Если это решит вашу проблему, скажите мне спасибо.
Следуйте этим шагам:
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
Просто хотел поделиться. Установите
$cfg['blowfish_secret'] = 'заполните это';
Перейдите в папку phpmyadmin и найдите lint.php
и установите
require_once 'common.inc.php';
Если вы редактировали файл здесь : /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, и должно быть все в порядке.
Для меня отсутствует файл config.inc.php
.
Скопируйте его из config.sample.inc.php
или создайте новый файл:
<?php
/******** The Solution *******/
$cfg['blowfish_secret'] = 'введите 32-символьную фразу';
/****************************/
$i = 0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
Затем обновите страницу PhpMyAdmin дважды, так как это проблема с cookie.
Добавление пароля из 32 символов в круглых скобках
$cfg[‘blowfish_secret’] = ”;
помогло мне для другого файла в /usr/share/phpmyadmin/libraries/config.default.php
Использование debian 9 + ispconfig, установлен phpmyadmin вручную
В моем случае это была проблема с владельцем/разрешениями, так как я вручную создал символьную ссылку на одном из моих основных веб-сайтов, чтобы указать на /usr/share/phpmyadmin/
, чтобы я мог получить доступ к phpMyAdmin с помощью FQDN https://myserver.mydomain.com/changedphpmyadmin вместо через IP только. Но при этом изменился и веб-пользователь; доступ через IP отличается от через FQDN, если это не домен по умолчанию.
Таким образом, в моем случае веб-пользователь моего FQDN не смог прочитать /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
Я обеспечил правильную установку веб-пользователя для /var/lib/phpmyadmin при использовании phpmyadmin с virtualmin. Я установил phpmyadmin вручную, чтобы он мог быть доступен глобально, а не для каждого виртуального хоста/домена. Эта папка /var/lib/phpmyadmin содержала blowfish_secret.inc.php, который, я полагаю, был создан установщиком.
Для тех, кто пробовал:
“Установите 'blowfish_secret'
правильно в config.inc.php
“
но не работает!!!
Решение:
Проверьте разрешение файла config.inc.php
, оно должно быть 555
для чтения и также выполнения, с помощью этой команды:
sudo chmod -R 555 /etc/phpMyAdmin
-R
: опция, чтобы предоставить разрешение для всех файлов под
`/etc/phpMyAdmin- 1-й
5
: Разрешение на чтение + выполнение для пользователя. - 2-й
5
: Разрешение на чтение + выполнение для группы. - 3-й
5
: Разрешение на чтение + выполнение для других. (просто для уверенности)
Ответ или решение
Конечно, разрешение ошибки "The configuration file now needs a secret passphrase" при работе с phpMyAdmin можно рассматривать поэтапно. Рассмотрим шаги, которые помогут решить эту проблему.
Факты и подробности:
-
Ошибка: Ваша установка phpMyAdmin генерирует ошибку с указанием о необходимости ввести секретную фразу (blowfish_secret) в файл конфигурации.
-
Контекст установки: Проблема возникает на AMI (Amazon Machine Image) и использует конфигурацию PHP с установкой phpMyAdmin через EPEL репозиторий, вероятно, с сервером Nginx.
Шаги для решения проблемы:
-
Обнаружите файлы конфигурации:
- В зависимости от вашей установки, конфигурационный файл может находиться в одном из следующих путей:
/etc/phpmyadmin/config.inc.php
/etc/webapps/phpmyadmin/config.inc.php
/usr/share/phpmyadmin/config.inc.php
- В зависимости от вашей установки, конфигурационный файл может находиться в одном из следующих путей:
-
Создайте и настройте конфигурационный файл:
- Если файл
config.inc.php
отсутствует, создайте его копированиемconfig.sample.inc.php
наconfig.inc.php
:cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
- Если файл
-
Добавьте секретную фразу Blowfish:
- Откройте файл
config.inc.php
и найдите строку$cfg['blowfish_secret'] = '';
. - Убедитесь, что секретная фраза состоит из ровно 32 случайных символов:
$cfg['blowfish_secret'] = 'ваша_32-значная_секретная_фраза';
- Откройте файл
-
Проверьте права доступа и владельца:
- На многих системах веб-сервер может не иметь подходящей группы доступа к файлам. Используйте команду
chown
, чтобы назначить правильную группу:chown -R root:nginx /etc/phpMyAdmin/
- Убедитесь, что разрешения на файл конфигурации или директорию установлены правильно:
chmod -R 555 /etc/phpMyAdmin/
- На многих системах веб-сервер может не иметь подходящей группы доступа к файлам. Используйте команду
-
Angular зависимый параметр
CONFIG_DIR
:- В файле
libraries/vendor_config.php
проверьте правильность заданияCONFIG_DIR
, как/etc/phpmyadmin/
.
- В файле
-
Средства защиты SELinux:
- Если включен SELinux, проверьте, что конфигурация phpMyAdmin позволяет доступ.
-
open_basedir директива:
- Измените директиву
open_basedir
вphp.ini
, включив директорию, содержащуюconfig.inc.php
.
- Измените директиву
Итог:
Применение этих шагов должно устранить ошибку "The configuration file now needs a secret passphrase" в phpMyAdmin. Если проблема сохраняется, проверьте все пути и конфигурации на корректность, обновите сервер и попробуйте перезагрузить web-сервер. Обратитесь за помощью к сообществу или документации, если ошибка все еще остается.