WordPress更换到PHP7环境小记

PHP7.0版本发布已经有一段时间了。与原来的PHP5版本相比有了多处改善,而且PHP7的性能也是旧版本的两倍。前段时间小站的运行环境升级到了PHP7.0,经过长时间的使用和测试,感觉Wordpress在PHP7下的表现还是相当不错的,这里写一篇文章记录分享一下更换过程,供想要升级环境到PHP7的小伙伴们参考。

image

WordPress程序本身是支持在PHP7环境中运行的,所以可以直接将PHP从5平滑切换到7,不需做要其他额外的改动和设置。
不过WP的旧版本(4.4.X之前的版本)是否能正常在PHP7中运行还暂不清楚(但有站长称WP4.3.1也支持PHP7),而且在官网上写明4.4.2版本支持PHP5.6及以上版本的PHP环境,所以还是建议大家在更换PHP版本前先将Wordpress升级到新版本。

更换PHP5到PHP7

在更换到PHP7前,请务必备份好网站的数据,特别是VPS用户,以防不测。

备份好网站后就可以更换PHP环境的版本了。如果使用的是虚拟空间(主机)则比较简单,只需要在后台找到PHP版本设置,然后选择PHP7就好了。建议在更换版本前咨询一下服务商是否提供PHP7,及相关的注意事项。而VPS用户就需要手动升级PHP7版本。

成功更换到PHP7后,打开WP的首页并登陆后台,检查是否有报错。Wordpress4.4程序本身是支持PHP7环境的,所以只需检查插件和主题是否能正常使用即可。需要注意的是个别插件会有不兼容PHP7但却无任何错误提示的情况,所以还需手动逐个测试检查。

替换旧版使用的函数

PHP7与PHP5相比,除了改善性能外,还取消了一些旧版本中的函数,这也就是升级但PHP7后可能会出现不兼容问题的原因。不过PHP7对旧版仍保持了良好的兼容性,所以要解决WP网站出现的兼容性问题,只需要替换掉弃用的旧版函数即可。

前面也提到了,Wordpress程序本身是支持PHP7的,所以会出错的是Wordpress使用的部分主题和插件。这里列出主要需要替换的函数及插件(部分内容引用自脚本之家)。

将split()函数替换为explode()

auto-save-image插件中有split()函数。在wp-content/plugins/auto-save-image/auto-save-image.php 122行

百度站点地图生成工具 Baidu Sitemap Generator 中在多个文件中的多处出现。

这有两个需注意的地方,一是以“split_”开头的函数不用替换,二是只要替换php文件中出现的split()函数即可,js文件中无需替换。

个人建议使用如notepad++等专业文本编辑工具的多文件批量查找功能来修改代码,这样方便很多。

将 mysql_escape_string() 函数替换为addslashes()

wp-thread-comment插件 wp-content/plugins/wordpress-thread-comment/wp-thread-comment.php  有多处

语法兼容修改

Configure SMTP插件  wp-content/plugins/configure-smtp/configure-smtp.php  171行,为函数定义添加默认值
public function options_page_description( $localized_heading_text = '' ) {

另外mysql_* 系列函数在php7里全部移除了,如 mysql_query,mysql_escape_,mysql_real_eacape 等函数。不过个人目前暂未遇到此函数引发的问题,也不清楚修改方案。

原生支持PHP7的插件列表

在插件的检查中,仅发现有一个要修改后才能在PHP7中使用,绝大部分插件还是无需任何修改就能在PHP7中使用的。
这里迷你把其他“原生”支持PHP7的插件列出来,供各位小伙伴们参考。

缓存插件:WP Super Cache
防火墙:Wordfence Security
代码高亮插件:Crayon Syntax Highlighter
SMTP邮件插件:WP SMTP、Easy SMTP
CDN相关:WPJAM 七牛镜像存储
安全相关:Limit Login Attempts、myQaptcha(评论验证)

除特别注明外,本站内容皆为 咸鱼先锋 原创,可自由引用,但请注明来源和链接。
https://xyuxf.com/archives/951
欢迎关注 咸鱼先锋 (微信号公众号:xyuxf),获取干货推送
THE END
分享
二维码
< <上一篇
下一篇>>