2011-04-29 64 views
1

我有一個Cron作業設置,每5分鐘運行一次。 cron作業如下:Cron作業將不會處理require_once

php /var/www/vhosts/default/htdocs/Mail-test/index.php 

在我的index.php腳本的末尾如下:

$path = $base_path . trim($row['company']) . '/Users/' . trim($row['name']) . '/Upload/'; 
$zip_processing_file = $path . 'zip.php'; 

require_once "zip_processing_file"; 

但是運行cron作業的時候,我得到一個錯誤,指出以下目錄其中= $zip_processing_file不存在/var/www/vhosts/default/htdocs/Mail-test/

我似乎無法弄清楚這個問題。我試過包括但是也給出了同樣的問題。只有這樣我得到這個工作是通過把

header("location: $zip_processing_file"); 

,然後打Mail-test/index.php從Web瀏覽器,那麼它會循環的全過程,但我無法通過Web瀏覽器做到這一點,我需要的克朗工作上班。謝謝!

回答

0

很可能你應該給php的物理地址。

Like:'/var/www/..../zip_processing_file.php';

+0

試過剛纔和仍然無法正常工作 – John 2011-04-29 17:56:06

0

所以,下面的代碼,從這個:

$path = $base_path . trim($row['company']) . '/Users/' . trim($row['name']) . '/Upload/'; 
$zip_processing_file = $path . 'zip.php'; 

你應該得到類似的信息(取決於$base_path內容:

/var/www/vhosts/default/htdocs/company/Users/name/Upload/zip.php 

相反,你的錯誤是印刷:

/var/www/vhosts/default/htdocs/Mail-test/ 

根據您的代碼沒有意義

您需要確保$ zip_processing_file的內容包含您需要加載的PHP文件的完整服務器路徑。

header()函數起作用的原因是因爲它可以採用網頁根相對路徑。在PHP中使用require()或任何其他基於文件的操作時,它必須接收文檔相對路徑或服務器根路徑。

+0

我只是想,作爲好。更改了$ zip_processing_file的完整路徑。它現在將處理我的Cron作業,不會給我任何錯誤,但現在它似乎停止在我的zip.php文件。 zip.php腳本未運行。 – John 2011-04-29 18:11:09

+0

你的zip.php文件的內容是什麼樣的?它是否具有可執行權限?是否有需要調用的函數或類實例化? – 2011-04-29 18:15:43

+0

是的,有一個我正在調用的類:class dUnzip2。我也用fopen來讀取2個.txt文件的內容。是zip.php擁有0777個測試權限。 – John 2011-04-29 18:20:30

1

出現提及/無功/網絡/虛擬主機/默認/ htdocs中/郵件的測試/似乎不屬於存儲在$zip_processing_file路徑(其中包含UsersUpload),使得可以是錯誤消息單獨的問題。

但是,require_once問題可能是由於您的代碼不插入$zip_processing_file變量。

變化:

require_once "zip_processing_file"; 

要:

require_once $zip_processing_file; 
0

它看起來像你想

require_once "/Mail-test/" . $zip_processing_file;