2013-10-07 68 views
0

我跑在的cPanel配置後的cron作業絕對文件路徑:PHP cron作業包括

**cd /home/DOMAIN_A/public_html/ ; php host_cron_job.php** 

在host_cron_job.php文件我想用絕對文件路徑等文件訪問同一臺服務器但它的其他領域,像:

**include "/home/DOMAIN_B/public_html/config.php";** 

但我得到這個錯誤:

**<b>Warning</b>: include(/home/DOMAIN_B/public_html/config.php) [<a href='function.include'>function.include</a>]: failed to open stream: Permission denied in <b>/home/DOMAIN_A/public_html/host_cron_job.php</b>** 

任何甲肝解決這個問題?

回答

0

運行Cron任務的UNIX用戶沒有權限訪問/home/DOMAIN_B/public_html/config.php。以此用戶身份登錄,並嘗試逐步訪問此路徑。使用chmod命令根據需要調整權限。

用戶必須能夠 「執行」 下面的目錄(意思是 「進入這些目錄」 爲UNIX權限):

  • /
  • /家
  • /家庭/ DOMAIN_B
  • /家庭/ DOMAIN_B /的public_html

而且它必須在兩個/home/DOMAIN_B/public_html/config.php和讀權限:

基本上,你的任務應該是:根據您的環境需要

* * * * * php /home/DOMAIN_A/public_html/host_cron_job.php 

* * * * * cd /home/DOMAIN_A/public_html && php host_cron_job.php 

,並與您所選擇的調度參數。

注意:我寧願使用&&比';',這將避免執行PHP腳本,如果首先到目錄失敗。

+0

您的示例cron行可能不正確。如果OP在腳本目錄中執行cd操作,可能是有原因的。如果腳本不是用絕對路徑編寫的,現在它將運行在錯誤工作目錄中,並且任何相對包含/需求都將被打破。 –

+0

考慮到他使用絕對路徑的事實,我排除了這種可能性。不過,我會使用'cd'先決條件添加一個版本。 –