Рабочая обстановка:
На основе phpinfo(), файл PHP ini выглядит следующим образом: /etc/php8/cli/php.ini
.
PhpMyAdmin 5.1 работает хорошо. Каталог установки: /usr/share/phpMyAdmin
(каталог по умолчанию, созданный при установке с помощью команды zypper install phpMyAdmin
).
«Известная» опция $cfg['Servers'][$i]['host']
из /etc/phpMyAdmin/config.inc.php
файла установлена на localhost
(и она работает!).
Затем я обновил версию phpMyAdmin следующим образом:
srv-bla:~ # mv /usr/share/phpMyAdmin /usr/share/phpMyAdmin.old
srv-bla:~ # mkdir /usr/share/phpMyAdmin
srv-bla:~ # wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.tar.gz
srv-bla:~ # tar -xzf phpMyAdmin-5.2.0-all-languages.tar.gz
srv-bla:~ # mv phpMyAdmin-5.2.0-all-languages/* /usr/share/phpMyAdmin/
Затем я перезапускаю демонов и проверяю соединение:
srv-bla:~ # systemctl restart mysqld mariadb apache2
Страница подключения отображается правильно. Затем я ввожу свои учетные данные, и я застреваю с этим кровавым сообщением:
Невозможно подключиться к серверу. mysqli::real_connect(): (HY000/2002): Нет такого файла или каталога
Я некоторое время бродил по многочисленным веб-страницам. Многие из них предлагают изменить файл config.inc.php
и установить для параметра $cfg['Servers'][$i]['host']
значение 127.0.0.1
вместо localhost
. К сожалению, это не решает проблему для меня...
Я правильно редактирую config.inc.php
файл? На самом деле, я могу найти только один на сервере:
srv-bla:~ # updatedb
srv-bla:~ # locate config.inc.php
/etc/phpMyAdmin/config.inc.php
/etc/phpMyAdmin/config.inc.php.rpmnew
/etc/phpMyAdmin/config.inc.php.rpmsave
Журналы Apache тоже не дружелюбны. Журналы доступа возвращают только 200 кодов, что мне кажется нормальным (веб-страница phpMyAdmin обслуживается правильно). Журналы ошибок пусты...
Журналы Mysql также пусты (/var/log/mysql/mysqld.log
).
Или, конечно, я проверил, что служба mysqld
(то же, что и служба mariadb
) работает.
Файл сокета с точки зрения MariaDB:
srv-bla:~ # mariadb -u root -p
Enter password:
MariaDB [(none)]> \s
[...]
UNIX socket: /var/lib/mysql/mysql.sock
[...]
Файл php.ini настраивается так же:
srv-bla:~ # cat /etc/php8/cli/php.ini | grep mysqli.default_socket
mysqli.default_socket = /var/lib/mysql/mysql.sock
Для меня нет проблемы с сокетом...
Да, это так! Смотрите заключительную часть моего поста.
Ты был прав @Georg Richter!
Решение для меня:
Файл конфигурации PHP, возвращаемый командой php -r 'phpinfo();'
в терминале, называется /etc/php8/cli/php.ini
.
Файл конфигурации PHP, возвращаемый функцией phpinfo(), вызываемой с URL-адресом, например http://myserver.fr/phpinfo.php, имеет вид /etc/php8/apache2/php.ini
.
Я изменил строку mysqli.default_socket = /var/lib/mysql/mysql.sock
в этом другом файле конфигурации и смог снова с успехом вызвать phpMyAdmin. Обратите внимание, что необходимо очистить кеш браузера!
Спасибо за помощь, и надеюсь, что это поможет другим!
php -i | grep socket
или вывод изphpinfo()
показывает правильный сокет?