问题 - phpMyAdmin 的 HTTP 错误 500。
阿帕奇错误日志
[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
切换到 php7.4 后,phpMyAdmin 完全可以正常工作。这个问题只发生在 php5.6
设置 - Ubuntu 20.04、php5.6、Apache/2.4.41、phpMyAdmin-4.9.5deb2、mysql-8.0.21 php -m(输出)
[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 和使用缓存_sha2_password。一切正常php7.4。但是当你使用 php5.6 时你会得到两个错误
要解决此问题,我们需要将以下代码添加到 /etc/mysql/my.cnf
您还需要通过mysql中的以下代码更新用户认证方法
如果您谈到将它与 php5.6 一起使用,那么在 20.04 中,phpmyadmin 包会有些混乱。它提供了与 php5.5+ 兼容的 PMA4.9.5,但它依赖于 php-phpmyadmin-motranslator >= 5.0,它与 php7.1+ 兼容。您在日志中看到的致命错误是由于 null 合并运算符 ?? 在代码中使用的是 php7 功能。
PMA 不是您严重依赖发行版包装的东西。只需从 github 下载 4.9.5 zip,将其解压缩到您的 webroot 下的某个位置,它应该可以正常工作。