2016-06-07 124 views
3

我剛剛設立了我的第一個cron-jon來每天晚上運行一個股票腳本。 手動運行它工作正常。cPanel cron作業,沒有指定輸入文件?

它存儲在/admin/stock_update.php

我運行命令是/usr/bin/php -q /admin/stock_update.php

但我發現了電子郵件說沒有輸入文件中指定? 任何想法?

乾杯

+0

你確定在你的服務器中有一個名爲'/ admin'的頂級目錄嗎?就我所知,它在Linux中並不是一個慣例。請記住,命令行實用程序期望磁盤上的路徑,而不是網站URL。 –

+0

@ÁlvaroGonzález我不完全確定,我沒有太多的經驗,在這種類型的東西。我只是使用我的FTP路徑。 –

回答

3

網絡服務幾乎從不暴露服務器的硬盤驅動器上的實際路徑,即使他們可能不是你可以依靠的行爲。因此,您的文件位於FTP服務器中的/admin/stock_update.php這一事實並沒有說明磁盤上的實際位置,這是本地命令行實用程序所期望的。

在PHP中,您可以在當前文件的磁盤上找到具有__FILE__魔法常量的路徑。您可以創建一個測試腳本:

<?php 
var_dump(__FILE__); 

...將其上傳到相同的FTP位置並通過Web服務器執行。如果這不是一個選項,因爲您的FTP帳戶中的文件在網絡中不可見,那麼您可以從cron運行該文件並檢查電子郵件。

+0

嗨,Alvaro,謝謝,這很有道理。 我已經更新了我的cron到正確的服務器路徑,現在我收到了一個不同的錯誤。 '無法讀取tmp文件以保存股票' –

+0

@ s.poole我從代碼中得到一個自定義錯誤,這意味着您的文件最終正在運行。很高興你把它整理出來。 –

0

你已經安裝了該服務器和CageFS filestyem CloudLinux內核?如果是,請嘗試運行此操作:

cagefsctl -w cpaneluser; cagefsctl -m cpaneluser

然後嘗試再次運行的cron