2012-07-18 18 views
3

我已經建立了一個PHP文件運行,只是回聲你好。Cron作業 - 無法打開輸入文件:

<?php 
echo hello; 
?> 

我的cron作業是這樣的:

Could not open input file: /home/username/public_html/mls/test.php 

我不知道是什麼原因造成這樣的:

/usr/local/bin/php -f 「/home/username/public_html/mls/test.php」 
當我的腳本運行,我收到了確認電子郵件,上面寫着

。我正在使用安裝了cpanel x的godaddy虛擬專用服務器。我已經使用ssh在文件夾和文件上設置權限777,但仍然無法運行。

任何建議都會有所幫助。謝謝。

+0

'echo hello;'應該是'echo「hello」'。輸出中有印刷商的報價是否重要?我希望你沒有在實際的命令中使用它們。 – 2012-07-18 18:34:59

+0

我的意思是「你好。」它不是我的PHP的問題...再次我的cron甚至沒有找到該文件。 – user982853 2012-07-18 18:36:50

+0

嘗試在/ home/username /之後開始的路徑? – 2012-07-18 18:38:04

回答

5

由於某些原因,PHP無法打開該文件。嘗試用「ls -la」替換/ usr/local/bin/php -f以嘗試更多地獲取更多信息。記住不要在crontab中引用文件名:php -f filename.php,而不是php -f「filename.php」,除非它包含空格 - 然後最好使用單引號。

可能試試「ls -la/home」,「ls -la/home/username」,「ls -la〜/ public_html」等等。

也可以嘗試追加

2>&1 

到命令行,在情況下,只有標準輸出被郵寄給你(我真的不這麼認爲,但作爲一定費用少)。

另外一個可能性

,因爲它是在crontab指/home/username/public_html/mls/test.php - 也就是說,裏面用戶名的一個主目錄常見值的公共HTML目錄。

這是可能的cron作業或者未使用適當的用戶和權限運行的,或者說,它「看到」用戶實際上是一個虛擬用戶 - 有沒有「/家庭/用戶名」在所有 - 和「主目錄」在其他地方,甚至可能存在,只要cron作業運行。在這種情況下,溶液可能是指

~/public_html/mls/test.php 

,或者如以上描述的那樣,以第一運行命令如pwdls -la準確地確定在計劃作業的當前工作目錄

如果這也失敗了,那麼另一種解決方法可能是通過捲曲或猞猁調用PHP HTTP處理程序:

/usr/bin/curl http://www.thishostname.com/mls/test.php 

可能使用任何一些環境變量或捲曲頭或_GET選項認證到腳本作爲cron作業,並避免從外部訪問它。

+0

謝謝,我只需要刪除URL路徑周圍的「」。現在它工作正常。謝謝。 – user982853 2012-07-20 04:14:21

+0

第一次使用GoDaddy Cpanel和'/ usr/bin/curl'設置我的cron作業!謝謝! – 2018-01-26 02:30:36