摘要
之前博客用的环境是 windows2008+Apache+php5.3n+MySql。因为玩不转 Linux 也因为 Linux 下的代码编辑没有 windows 远程桌面上编辑代码方便,所以一直用的上面的环境。
博客更换环境
之前博客用的环境是 windows2008+Apache+php5.3n+MySql。
因为玩不转 Linux 也因为 Linux 下的代码编辑没有 windows 远程桌面上编辑代码方便,所以一直用的上面的环境。
可是用这个环境一直感觉网站速度巨慢,对不起我一年3K+的ESC,各种各样的问题堆积起来,再加上某人的诱惑,最终败下阵来,选择换Linux。
新的环境:centos+nginx+php7+mysql 并且启用了 opcache + redis 加速 瞬间感觉速度贼爽。。。
wordpress更换高版本PHP,因为高版本PHP和低版本差异还是蛮大的,所以会出现一些报错,有的报错可以忽略,直接关闭php报错就行了。然而有的报错却不能忽悠,会导致正常使用。
更换环境带来的问题
问题1:baidu_sitemap 插件无法正常使用
sitemap-function.php on line 439 出现这个问题是因为PHP split函数弃用,关于这个问题,插件作者也给出了解决方案[ GO ]
将 sitemap-function.php 文件的439行 baidu_sitemap.php 文件的308改成如下:
list( $today_year, $today_month, $today_day, $hour, $minute, $second ) = preg_split( '([^0-9])', $blogtime );
用 preg_split替换掉 split即可成功更新 sitemap.xml和 sitemap.html
检查了一下其他插件,都没有什么报错了,本身也没装几个插件-。- 如果你们还有别的插件报错,可以尝试删掉插件然后重装,如果重装还是不行,就只有像我这样,一个个错误的跟进解决了。
问题2:商城页面弹窗失效
这个问题就有点神奇了,在换环境之前我就已经解决了,和PHP版本毫无关系,是因为没有引入弹窗JS文件的原因,明明最新备份的文件,居然会少了引用。。。加上引用便解决了。
问题3:手机端模板失效
手机端的判断,如果是手机用户,则输出手机端样式主题。
如上图,这样写在win上面没毛病,但是在Linux上却提示找不到这三个文件的错误,路径问题。改成如下解决:
问题4:博主随笔页面admin-ajax.php请求500
在 wp-config.php 中开启WP错误日志记录:
//启用调试日志记录到/wp-content/debug.log文件 define('WP_DEBUG_LOG',true);
查看/wp-content/debug.log 文件发现如下错误:
[04-Jan-2018 15:02:06 Asia/Shanghai] PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function popularPosts(), 0 passed in /wp-content/themes/iDevise/functions.php on line 713
popularposts()参数太少了,参数少了吗?那就给他加上参数:
echo popularPosts($num);
如图,成功获取到文章内容,解决。
问题5:AJAX评论效果失效
ajax评论用的是willin的方法
失效的原因是app.js文件没有加载成功,ajax_comment_scripts函数没有注册成功,不知道什么原因,或许是因为我的functions.php中已经有过wp_enqueue_scripts注册了吧。
解决方法,删除do.php中上图的代码,然后移动到functions.php中。并且还得删除上图中红色框起来的那部分代码才行,这里我真不明白了,这一段和php7 有什么关联吗?不删居然无法调用成功。。。
解决是解决完了,但是评论速度还是很不理想,登陆状态下评论,秒提交,非登陆状况下,提交评论要等很久很久。真坑爹。关于这个问题,如果有知道原因的亲,麻烦指点一二。感谢。
最后,本次环境大改变彻底完工,其他的报错无关痛痒,关闭PHP报错即可,只要不影响正常就OK拉。
换了环境后,感觉速度真的不是一般的爽,以前前台用预缓存插件,几百ms打开效果,但是后台速度巨慢巨慢。。现在好了,前后台速度都是67百ms,感觉都不需要预缓存插件了。另外我还没有吧静态文件托管到七牛云,如果托管了,速度感觉还能更快,爽歪歪。