phpMyAdmin не работает в ubuntu 20.04 с php5.6

Проблема - ОШИБКА 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)
0
задан 19 August 2020 в 11:02

2 ответа

Проблема - ubuntu 20.04 использует mysql v8 с использованием caching_sha2_password. Все отлично работает php7.4. Но когда вы используете php5.6, вы получаете две ошибки

  1. Сервер отправил кодировку, неизвестную клиенту
  2. Сервер запросил метод аутентификации, неизвестный клиенту

Чтобы исправить эту проблему, нам нужно добавить приведенный ниже код в файл / 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';
0
ответ дан 21 August 2020 в 07:55

В 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, распакуйте его где-нибудь под корневым веб-каталогом, и он должен работать.

0
ответ дан 21 August 2020 в 07:55

Другие вопросы по тегам:

Похожие вопросы: