2017-07-26 179 views
1

正如標題中所暗示的,Cron作業應該執行一個php文件(update.php,具體而言)。 php文件然後寫入存儲在同一目錄中的csv文件。在CPanel上設置Cron作業來執行PHP腳本

我有時間設置爲* * * * *,以便它每分鐘執行一次。該命令編寫如下: php -q /home//public_html/wallboard/update.php 我不認爲這會導致任何錯誤,儘管它似乎也沒有寫入CSV文件。但是,當我在瀏覽器中訪問update.php時,它會立即執行並寫入CSV文件。我沒有使用Cron Jobs的經驗,我確定存在一個問題,但我不知道這個問題到底是什麼。如果您有任何建議/疑問,請告訴我。任何幫助表示讚賞!

當前命令:

* * * * * usr/bin/php -q /home/<user>/public_html/wallboard/update.php 

update.php:

<?php 

include('lib/HelpDeskView.php'); 
include('lib/WallboardDisplay.php'); 
include('helpdesk.csv'); 
$helpdesk = new HelpDeskView(); 
$text="\r\ntest,test,test"; 
file_put_contents("helpdesk.csv" , $text, FILE_APPEND); 
+0

嘗試改變'php'到'在/ usr/bin中/ php' – WheatBeak

+1

你的相關代碼的Linux +全權指揮,請貼在這裏。 –

+0

嘗試將update.php權限設置爲755。 – Konrad

回答

1

因爲你的腳本駐留在public_html目錄,你可以使用wget爲您的定時任務

wget -O - -q https://yoursite.com/wallboard/update.php 

-O -輸出寫入在這種情況下,標準輸出,它會去的電子郵件地址你的cPanel

指定

-q安靜模式

+0

該解決方案奏效!感謝您的幫助。 – IIama

0

恕我直言,最好的辦法是聯繫支持,詢問他們的命令行語法。


這是我正在做的使用的cPanel我的Linux服務器。

enter image description here

這將運行的script.php存儲在公共根。當然,請使用您的用戶名在命令行中替換<username>

在另一臺服務器上,我使用的命令行與/usr/bin/php相同,而不是php,但我知道並非所有的服務器都使用相同的命令行。有些需要在命令行中使用php-cli而不是php,有些不需要「喜歡」-f等參數,因此請嘗試各種組合。

要了解更多建議看看這個話題SO太:Run a PHP file in a cron job using CPanel

重要的東西:在嘗試不同的命令等待至少一分鐘(這種情況下),看它是否有效,因爲克朗不火的腳本立即。

0

嘗試在PHP CLI中執行相同的命令並檢查它是否給您提供任何錯誤,您可能會錯過CLI執行所需的一些庫或引用。

+0

使用cPanel的典型主機不允許CLI訪問,所以這可能不是一種選擇。 – manassehkatz

+0

在對投票答案進行投票前先清除問題。 –

+0

@ Wh1T3h4Ck5我知道有什麼意見,但我的觀點是,而不是投票,並影響到畢竟試圖幫助你的人的聲譽是不正確的。我所建議的不是脫節解決方案。 –