2017-09-29 60 views
0

我使用shell腳本像運行PHP文件./first.shinclude_once使用shell腳本

在first.sh我使用下面的命令運行PHP文件時不工作

COMMAND="/usr/bin/php /home/mydirectory/public_html/members/cron/cron.php" 

在cron的文件我有這樣的代碼

mail('[email protected]','fff','aaa'); 

include_once '/home/mydirectory/public_html/members/wp-config.php'; 

mail('[email protected]','fff1','aaa1'); 
當我執行sh文件,我只得到第一封電子郵件,並沒有得到第二電子郵件

。在第二封電子郵件下面,我寫了一些更多的代碼來獲取WordPress的帖子,但不工作。如果我在瀏覽器中使用域名網址訪問cron.php,它工作得非常好。

我測試了很多其他的stackoverflow答案,但沒有爲我工作。

請幫幫我。

+0

我認爲你在'/ home'後遺失了用戶名' –

回答

0

如果檢查的wp-config.php文件(我想這是一個WordPress的配置文件),然後在〜腳本的底部,你會看到一行

/** Sets up WordPress vars and included files. */ 
require_once(ABSPATH . 'wp-settings.php'); 

不幸的是,WP包括「引導「文件直接進入配置... wp-settings.php包含許多其他wp文件並初始化等等。所以,這個必須在Wordpress級別進行調試。 WP在wp-settings.php或其他包含文件中結束執行,所以你的php cron退出/死亡。 目前,我沒有本地wp安裝來調試(抱歉),但我99%確定wp結束執行。

您可以將您需要的信息從數據庫主機,用戶名等wp-config硬編碼到您的cron中。

否則,你可以用token_get_all解析php文件來檢索值(我在2年前遇到過類似的問題,不幸的是我在舊的辦公室有代碼)。 http://php.net/manual/en/function.token-get-all.php

+0

感謝信息,但是如果我硬編碼數據庫連接,我將無法使用wordpress函數,比如get_option – user3110655