wordpress自动更新至5.1版本后,提示升级PHP可提高性能。于是我开始对服务器进行了PHP升级···这里我升级至php7.2.16版本,升级历程如下:
检查wordpress上已安装插件是否支持PHP7.2
- 在wordpress后台安装该插件:PHP Compatibility Checker,启用后对已安装插件进行扫描,可选择待检查支持的PHP版本,使用较为简单,此处不赘述。
安装PHP7.2版本
- 主要参考链接:
- 我的服务器原来php是5.5版本,选择升级至7.2.16版本,从官方下载链接获取安装包,注意从Hong Kong 框下下载,然后执行如下操作:
cd /usr/local/
#解压安装包
tar -xzvf php-7.2.16.tar.gz
cd php-7.2.16
#查看下帮助
./configure --help
#执行编译
./configure --prefix=/usr/local/php \
--with-curl \
--with-freetype-dir \
--with-gd \
--with-gettext \
--with-iconv-dir \
--with-kerberos \
--with-libdir=lib64 \
--with-libxml-dir \
--with-mysqli \
--with-openssl \
--with-pcre-regex \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pear \
--with-png-dir \
--with-xmlrpc \
--with-xsl \
--with-zlib \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-gd-native-ttf \
--enable-mbregex \
--enable-mbstring \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-xml \
--enable-zip
#执行过程中可能会提示缺少依赖库,使用yum安装依赖库,基本包含如下:
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel pcre-devel curl-devel libxslt-devel
#上述操作无误后,编译安装:
make && make install
#配置文件
cp php.ini-development /usr/local/php-7.2.16/lib/php.ini
cp /usr/local/php-7.2.16/etc/php-fpm.conf.default /usr/local/php-7.2.16/etc/php-fpm.conf
cp /usr/local/php-7.2.16/etc/php-fpm.d/www.conf.default /usr/local/php-7.2.16/etc/php-fpm.d/www.conf
cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm
#若已有旧版本运行,先杀掉旧的php进程
ps -ef | grep "php-fpm"
#找到对应pid后,执行
kill 'pid'
#启动
/etc/init.d/php-fpm
- 此时服务器已完成php升级,但是竟然发现升级后博客无法访问,页面提示数据库无法连接的错误。检查下数据库配置没错,看了下wordpress5.1的wp-db.php页面,发现更新后的wordpress对mysql和mysqli扩展都支持,也就是说问题不在wordpress上,那看来就是php7对旧版本的mysql扩展不支持了。原来php7采用了mysqli和mysqlnd扩展,默认已不再支持mysql扩展···然鹅我的服务器mysql还是5.0.1版本···于是我尝试了还原mysql扩展,操作如下:
找回mysql扩展
- 主要参考链接:
- 验证:
#编写一个php页面检查phpinfo及能否连接mysql
<?php
echo phpinfo();
$link=MySQLi_connect('localhost','J3gm2lWz','uDwSOHvv11M7','J3gm2lWz');
if(!$link) echo "Error !";
else echo "Ok!";
MySQLi_close();
?>
#将此页面放在/yjdata/www/www/下,即项目根目录下,在浏览器上访问即可验证是否实现对mysql的连接~
访问网站是否完成升级
- 正常的话升级就结束了,而且我发现性能的确有了很大提升,之前整个网站访问延时都是秒级,现在似乎大部分都在1秒内即可加载完成了。而且对接wordpress的微信小程序,之前经常性的刷不出页面,无法访问,现在基本不再遇到了。丝滑到底~哈哈~
- 我这里使用了wp-photo-album插件, 升级后还遇到了一个错误:网站首页最上栏出现错误信息
Warning: fopen(/yjdata/www/www/wp-content/plugins/wp-photo-album-plus/dynamic/wppa-init.zh.js): failed to open stream: Permission denied in /yjdata/www/www/wp-content/plugins/wp-photo-album-plus/wppa-wrappers.php on line 233
,看起来是文件/文件夹权限问题,我这里暴力对整个文件夹采用了chmod +777 /yjdata/www/www/wp-content/plugins/wp-photo-album-plus/*
操作,立马解决了,但我的wordpress其实还有一个遗留问题就是下载更新插件,上传多媒体文件都需要输入FTP账户密码,显然是隶属于的用户和组有问题,没有写权限,不过一直还没仔细排查处理。感觉这个wp-photo-album插件问题也和遗留问题类似,尚待解决啊!