wordpress 优化 处理定时发布失败
发布时间:2022-06-24 06:44:43 所属栏目:教程 来源:互联网
导读:WordPress 不知道在哪个版本里面加入了定时发布功能,这个本来其实是很不错的功能,可惜有着各种各样的问题,比如我这台VPS安装完成之后,就一直无法成功发布文章. 第一种可能性: 那么考虑第二种错误的可能性,就是服务器上取得的时间不正确,这也是有可能性的,V
WordPress 不知道在哪个版本里面加入了定时发布功能,这个本来其实是很不错的功能,可惜有着各种各样的问题,比如我这台VPS安装完成之后,就一直无法成功发布文章. 第一种可能性: 那么考虑第二种错误的可能性,就是服务器上取得的时间不正确,这也是有可能性的,VPS上可能存在时间的有三个地方,分别是操作系统的时间、数据库的时区设置、php的时区设置. CentOS时区设置 查看 CentOS 系统时间的命令为:date -R,发现为 UTC 时间,中国应该为东8区,执行命令 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime,再次 date -R,显示应该是:[root@li672-190 uploads]# date -R Wed,24 Dec 2014 23:30:39 +0800 Mysql时区设置: Mysql 查看时区方法为: mysql -u root -p mysql> show variables like ‘%time_zone%'; +——————+——–+ | Variable_name | Value | +——————+——–+ | system_time_zone | CST | | time_zone | SYSTEM | //phpfensi.com +——————+——–+ 这样表示读取的是系统时区,进行修改吧,修改的位置为 /etc/my.cnf。在 my.cnf 的[mysqld]项目中增加一条: default-time-zone = ‘+8:00′ 重启mysql之后,再次进入mysql里面查看时区,应该显示: mysql> show variables like ‘%time_zone%'; +——————+——–+ | Variable_name | Value | +——————+——–+ | system_time_zone | CST | | time_zone | +08:00 | +——————+——–+ 2 rows in set (0.00 sec) PHP时区设置: PHP中也有时区设置,设置位置为 /etc/php.ini,设置ini文件中的[Date] 项,设置时区为 date.timezone = Asia/Shanghai,然后重启 php-fpm,通过修改这三个位置的时区设置之后,应该不会再有和wordpress相关的时区设置失误了,重新进入wordpress的后台,再次新建文章进行发布,依然提示失败. 第二种可能性: 从程序的角度出发,定时发布应该是在服务端计算时间,推测不能成功发布的原因,有两种可能性,第一个是时间计算是正确的,但是VPS 反应比较慢,等定时程序开始操作时,原定时间又过期了,导致进入无限循环,无法发布成功,我们先按照这个思路进行修改,在 /wp-includes/cron.php 中找到一段代码,看起来是超时时间控制的代码,代码如下: $cron_request = apply_filters( ‘cron_request’, array( ‘url’ => add_query_arg( ‘doing_wp_cron’, $doing_wp_cron, site_url( ‘wp-cron.php’ ) ), ‘key’ => $doing_wp_cron, ‘args’ => array( ‘timeout’ => 0.01, ‘blocking’ => false, ‘sslverify’ => apply_filters( ‘https_local_ssl_verify’, false ) //phpfensi.com ) ) ); 先将timeout 的0.01修改为30.00,这样有30秒的空档时间,应该是肯定可以满足条件了,修改完成之后,再次发布一篇文章进行测试,发现依然没有发布成功. 第三种可能性: 前面两种方式都失败了,怀疑是否程序有bug,查找网上其他人的经验,发现了一个插件 WP Missed Schedule,安装成功并启用之后,问题解决,这个问题证明了,wordpress还是各种插件好用啊. (编辑:昌吉站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐