nginx升级到1.14.0、php5.6升级到php7.2过程中(WordPress)遇到的问题及解决方法

为了更好的性能(php7相对于php5有极大的性能提升)以及更高的安全性(原nginx不支持TLS v1.3),今天使用rpm升级了php和nginx。在这个过程中,自然遇到了一些小麻烦的问题。

nginx -t提示module “/usr/lib64/nginx/modules/ngx_http_geoip_module.so” version 1012002 instead of 1014000 in /usr/share/nginx/modules/mod-http-geoip.conf

看起来是nginx配套的模块没有升级而导致的版本不匹配。所以卸载原来的,重新安装:

yum remove nginx-mod*
yum install nginx-module-*

nginx的配置目录下fastcgi.conf文件消失

这算是一个玄学问题了。国外有人说直接用fastcgi_params文件来取代,但是采用后页面空白。再次了解了一下二者细微的区别,认为我还是需要一个原汁原味的fastcgi.conf文件。于是就从我的树莓派上直接取了一个过来。

点我下载

嗯,还是原来的配方,还是熟悉的味道。

systemctl start php-fpm 提示不存在

这是最开始安装php的时候出现的。考虑是php没有安装完全,使用命令

yum install php72w*

并根据提示忽略错误来安装所有相关的包。问题解决。

在此同时,根据上次的文章,需要修改一下配置。

由于权限问题导致的502

这是每一次更新php都会遇到的问题(上次从php5.4更新到5.6),自然有了经验。只需要修改文件/etc/php-fpm.d/www.conf中的运行用户、sock文件位置(如果采用的sock方式的话)以及权限就可以了。

phpMyAdmin无法读取session文件

这个只需要到它给出的session目录下给它配置好权限就行了。

php7以上不再支持mysql拓展,phpMyAdmin报mysql警告

卸载mysql,安装mysqlnd:

yum remove php72w-mysql
yum install php72w-mysqlnd

雅黑php探针显示异常

原来一直存有一个雅黑php探针,但是这次打开后发现显示不完整。了解到默认版本不支持php7,于是换用了UPUPW PHP探针。

此外推荐Netdata,看文章中的动图,感觉还挺不错的。

WordPress无法访问,返回500

相当迷。我知道WordPress肯定是支持php7.2的——因为这正是其推荐的版本。国内网上很少有这方面的帖子,唯一一个是讲的缓存的问题:我确实开启了缓存。所以我删掉了它们,却没有改观。于是我重新下载了一个WordPress,发现可以进入setup页面。但是一旦我把原来的配置文件复制到新WordPress下,就出现500错误。我本以为是配置存在问题,于是挨着复制来检查。但是一直到我复制完毕都没有出错,那我也就没有办法了。既然新目录没有问题,那么就复制原来上传的文件,手动添加插件,从而弃用原来的WordPress。

Polr无法访问,出现500

最开始这两个网站的表现是一样,所以我也就以为再下一个Polr就能解决这个问题。但是我错了。

翻了日志,发现是require()命令出错:PHP Warning: file_exists(): open_basedir restriction in effect. 实际上文件中的这条命令引用了别处文件夹的文件,而这个跨目录的操作受到了限制。我在/etc/php.ini中发现没有配置open_basedir,说明这个限制是nginx给出的。查看后发现就在我复制树莓派的fastcgi.conf文件中有一行

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

注释掉这一行就恢复正常了。

注:上面给出的这个文件已经注释了这一行。

WordPress无法添加插件:创建目录失败

这应该算是一个初次安装WP的问题。很遗憾,就算是配置了所有目录和文件的所属用户,wordpress目录/wp-content/plugins文件夹还是要自己建立。建立之后配置好用户就行。

柳城的Baidu Sitemap插件无法运行

这是由于php7弃用了split()函数,而用preg_split()取而代之。编辑文件

vim wordpress/wp-content/plugins/baidu-sitemap-generator/sitemap-function.php
vim wordpress/wp-content/plugins/baidu-sitemap-generator/baidu_sitemap.php

第一个在生成xml文件的时候会报错,第二个是html文件。分别在第439行和308行各有一处需要修改。改正后就能正常使用了。

2
评论

avatar
1 评论
1 评论回复
0 订阅
 
最多赞/踩的评论
最热门评论
2 评论者
Bear_Dic.高渐离 最近评论
  订阅  
最新 最旧 最赞
提醒我
高渐离
游客

事实上你升级了也不会支持tls1.3的,需要重新编译nginx和openssl