所以我刚刚将我的 VPS 从 14.04 升级到 16.04,升级大部分顺利,但 MySQL 更新失败。我需要先手动删除 mariadb-client,然后我才能再次安装 MySQL,现在我网站上的所有内容都运行正常,除了 phpMyAdmin。每当我打开 site.com/phpmyadmin 页面时,它都会显示 nginx 502 错误,网关错误。
我的 nginx 配置文件的相关部分如下所示:
location ~ \.php$
{
fastcgi_index index.php;
fastcgi_keep_conn on;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location /phpmyadmin
{
root /usr/share;
location ~ \.php$
{
include php.conf;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$
{
root /usr/share/;
}
}
我在网上查看是否有人遇到过类似的问题,但大多数情况下解决方案是 php-fpm 设置不正确。
就我而言,它似乎运行良好:
root@server:/etc/nginx/conf.d-enabled# service php7.1-fpm status
php7.1-fpm start/running, process 28542
root@server:/etc/nginx/conf.d-enabled# ls -l /var/run/php/php7.1-fpm.sock
srw-rw-rw- 1 www-data www-data 0 Jan 9 15:01 /var/run/php/php7.1-fpm.sock
在升级到 16.04 之前,PhpMyAdmin 运行良好,除了删除 mariadb-client 之外,除了自动过程之外没有发生其他事情。
有什么想法我应该去哪里寻找解决方案吗?提前感谢你的帮助!
答案1
更改 fastcgi 传递线路
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock
答案2
因此,解决方案是,在 nginx 配置中,链接“include php.conf;”解析了一个 php.conf 文件,该文件可能在此过程中进行了更新。这确实是 php-fpm 问题,因为它包含“fastcgi_pass unix:/var/run/php/php5-fpm.sock”,而不是“fastcgi_pass unix:/var/run/php/php7.1-fpm.sock”:
connect() to unix:/var/run/php5-fpm.sock failed
更改后我收到以下错误:
upstream sent too big header while reading response header from upstream, client
添加以下几行解决了该问题,现在我可以访问 phpMyAdmin:
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;