Проблема - ОШИБКА HTTP 500 для phpMyAdmin.
Журнал ошибок Apache
[Wed Aug 19 02:52:11.063688 2020] [:error] [pid 94653] [client ::1:56202] PHP Warning: Unsupported declare 'strict_types' in /usr/share/php/PhpMyAdmin/MoTranslator/Loader.php on line 23
[Wed Aug 19 02:52:11.063864 2020] [:error] [pid 94653] [client ::1:56202] PHP Parse error: syntax error, unexpected '?' in /usr/share/php/PhpMyAdmin/MoTranslator/Loader.php on line 116
phpMyAdmin полностью работает нормально при переключении на php7.4. Эта проблема возникает только при установке php5.6
- Ubuntu 20.04, php5.6, Apache / 2.4.41, phpMyAdmin-4.9.5deb2, mysql-8.0.21 php -m (output)
[PHP Modules]
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imagick
json
libxml
mbstring
mcrypt
mhash
mysql
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zlib
[Zend Modules]
Zend OPcache
Я удалил phpmyadmin из дистрибутива и установил его через zip. И я получаю следующую ошибку.
mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client
Я обнаружил, что проблема в методе аутентификации, и изменил caching_sha2_password на mysql_native_password, но все равно получаю указанную выше ошибку.
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$@0IC@&1C
O:Xf94qofd9PGZM4cSAB0xP0ZsNz7GUaX8UuPiAYIj5M0 | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| phpmyadmin | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 | mysql_native_password | localhost |
| root | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 | mysql_native_password | localhost |
| surendhar | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 | mysql_native_password | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
7 rows in set (0.00 sec)
Проблема - ubuntu 20.04 использует mysql v8 с использованием caching_sha2_password. Все отлично работает php7.4. Но когда вы используете php5.6, вы получаете две ошибки
Чтобы исправить эту проблему, нам нужно добавить приведенный ниже код в файл / etc /mysql/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
default-authentication-plugin=mysql_native_password
Вам также необходимо обновить метод аутентификации пользователя с помощью следующего кода в mysql
alter user 'username'@'localhost' identified with mysql_native_password by 'password';
В 20.04 пакет phpmyadmin немного испорчен, если вы говорите об использовании с php5.6. Он предоставляет PMA4.9.5, который совместим с php5.5 +, но зависит от php-phpmyadmin-motranslator> = 5.0, который совместим с php7.1 +. Фатальная ошибка, которую вы видите в журнале, связана с оператором объединения null ?? используется в коде, который является функцией php7.
PMA - это не то, от чего вы бы сильно зависели от упаковки дистрибутива. Просто скачайте ZIP-файл 4.9.5 с github, распакуйте его где-нибудь под корневым веб-каталогом, и он должен работать.