WordPress 不知道在哪個版本里面加入了定時發(fā)布功能,這個本來其實(shí)是很不錯的功能,可惜有著各種各樣的問題,比如我這臺VPS安裝完成之后,就一直無法成功發(fā)布文章.
第一種可能性:
從程序的角度出發(fā),定時發(fā)布應(yīng)該是在服務(wù)端計算時間,推測不能成功發(fā)布的原因,有兩種可能性,第一個是時間計算是正確的,但是VPS 反應(yīng)比較慢,等定時程序開始操作時,原定時間又過期了,導(dǎo)致進(jìn)入無限循環(huán),無法發(fā)布成功,我們先按照這個思路進(jìn)行修改,在 /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 )
- //Vevb.com
- )
- ) );
先將timeout 的0.01修改為30.00,這樣有30秒的空檔時間,應(yīng)該是肯定可以滿足條件了,修改完成之后,再次發(fā)布一篇文章進(jìn)行測試,發(fā)現(xiàn)依然沒有發(fā)布成功.
第二種可能性:
那么考慮第二種錯誤的可能性,就是服務(wù)器上取得的時間不正確,這也是有可能性的,VPS上可能存在時間的有三個地方,分別是操作系統(tǒng)的時間、數(shù)據(jù)庫的時區(qū)設(shè)置、php的時區(qū)設(shè)置.
CentOS時區(qū)設(shè)置
查看 CentOS 系統(tǒng)時間的命令為:date -R,發(fā)現(xiàn)為 UTC 時間,中國應(yīng)該為東8區(qū),執(zhí)行命令 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime,再次 date -R,顯示應(yīng)該是:[root@li672-190 uploads]# date -R Wed,24 Dec 2014 23:30:39 +0800
Mysql時區(qū)設(shè)置:
Mysql 查看時區(qū)方法為:
- mysql -u root -p
- mysql> show variables like ‘%time_zone%';
- +——————+——–+
- | Variable_name | Value |
- +——————+——–+
- | system_time_zone | CST |
- | time_zone | SYSTEM |
- //Vevb.com
- +——————+——–+
這樣表示讀取的是系統(tǒng)時區(qū),進(jìn)行修改吧,修改的位置為 /etc/my.cnf。在 my.cnf 的[mysqld]項(xiàng)目中增加一條:
default-time-zone = ‘+8:00′
重啟mysql之后,再次進(jìn)入mysql里面查看時區(qū),應(yīng)該顯示:
- 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時區(qū)設(shè)置:
PHP中也有時區(qū)設(shè)置,設(shè)置位置為 /etc/php.ini,設(shè)置ini文件中的[Date] 項(xiàng),設(shè)置時區(qū)為 date.timezone = Asia/Shanghai,然后重啟 php-fpm,通過修改這三個位置的時區(qū)設(shè)置之后,應(yīng)該不會再有和wordpress相關(guān)的時區(qū)設(shè)置失誤了,重新進(jìn)入wordpress的后臺,再次新建文章進(jìn)行發(fā)布,依然提示失敗.
第三種可能性:
前面兩種方式都失敗了,懷疑是否程序有bug,查找網(wǎng)上其他人的經(jīng)驗(yàn),發(fā)現(xiàn)了一個插件 WP Missed Schedule,安裝成功并啟用之后,問題解決,這個問題證明了,wordpress還是各種插件好用啊.
|
新聞熱點(diǎn)
疑難解答
圖片精選