簡體   English   中英

PHP文件可以手動正常運行,但在Cron Job上表現異常

[英]PHP File Runs Fine Manually But behaves unexpected on Cron Job

我有一個dreamhost Web面板,並且正在設置cronjob來運行我的php腳本,但是它顯示了奇怪的錯誤,似乎它沒有執行該文件,但是正在讀取該文件。 該錯誤如下所示,它作為電子郵件發送給我

?php:沒有這樣的文件或目錄[somesessionvariable] = 1573:找不到命令第3行:意外令牌"include/mydb.php"' line 3:附近的語法錯誤"include/mydb.php"' line 3: require_once(“ include / mydb.php”);

這是郵件的主題:

Cron / usr / local / bin / setlock -n /tmp/cronlock.3782446772.128284 sh -c $'/ path /to/file/cases_cron.php'

文件的權限為755,我已經從其他運行良好的cronjobs復制了路徑,因此文件路徑沒有問題,因為它正在獲取文件內容。 我沒有找到問題所在

我應該嘗試使用包含文件的絕對路徑。

我確定問題出在文件調用和cron調用中,包含路徑設置不相同。

您可以執行以下操作:

require_once dirname(__FILE__)."/include/mydb.php";

__FILE__是執行此行的文件的路徑, dirname()返回文件所在的絕對路徑。

當然,您可以根據require使用requirerequire_onceincludeinclude_one

您的路徑可能已關閉。 嘗試避免相對路徑(用include / file.php代替/var/www/project/include/file.php)或使用chdir()更改工作目錄。

您也可以在您的cronjob中輸入“ cd”命令,即:

cd /path/to/phpfile && php -f file.php

好的,伙計們,感謝您的全力支持,我終於可以解決問題了。

我在文件頂部缺少以下行

#!/usr/local/bin/php

在php文件的頂部添加這一行,對我的問題進行了排序。 但是我不知道這行對腳本意味着什么。 但是我從其他工作專家那里復制了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM