2011-08-30 257 views
0

我試圖將PHP文件設置爲cron作業,其中PHP文件包含/執行/運行其他PHP文件。我試圖做到這一點,因爲我的主機只允許5個cron作業總共託管的所有域,所以我試圖編譯任務到某些cron作業。從一個cron作業執行/運行多個php cron腳本

文件我正在通過一個cron作業本身位於

/home/XXXXX/data/cron/tasks/run.php 

運行 -

包含文件在

/home/XXXXX/domains/domain.co.uk/html/cms/apps/scripts/twitter.php 
/home/XXXXX/domains/domain.com/html/generator/runcrawl.php 
/home/XXXXX/domains/domain.net/html/cms/apps/scripts/sitemap.php 

-

如何包含來自run.php的配置文件?我試過做include_once('/home/XXXXX/domains/domain.co.uk/html/cms/apps/scripts/twitter.php ');,但返回錯誤。

我也嘗試在run.php中添加下面的內容,但沒有運氣!

exec('php /home/XXXXX/domains/domain.co.uk/html/cms/apps/scripts/twitter.php'); 
exec('php /home/XXXXX/domains/domain.com/html/generator/runcrawl.php'); 
exec('php /home/XXXXX/domains/domain.net/html/cms/apps/scripts/sitemap.php'); 

-

通過控制面板的cron作業設置如下,我知道是正確的

php /home/XXXXXX/data/cron/tasks/run.php 

我不知道這是否可以通過輕鬆完成shell腳本呢?請任何想法?

+0

你確定主機會允許你訪問跨域目錄的文件嗎?什麼'var_dump(is_readable('/ home/XXXXX/domains/domain.com/html/generator/runcrawl.php'));'告訴你? – DaveRandom

+0

新主機\ vps爲什麼讓你的生活變得艱難。 – 2011-08-30 23:37:27

回答

0

您的有限主機不太可能允許您跨域這樣的文件夾,因爲這可能是一個安全問題。 如果您無法跨目錄訪問文件,請考慮使用php的cURL獲取初始cron作業以調用其他文件。 這種方法的缺點是文件必須在公共html目錄中。

http://www.php.net/manual/en/ref.curl.php

0

嘗試創建一個shell腳本。打開文本編輯器,並做到這一點:

#!/bin/bash 

wget -q /home/XXXXX/domains/domain.co.uk/html/cms/apps/scripts/twitter.php 

sleep 5 

wget -q /home/XXXXX/domains/domain.com/html/generator/runcrawl.php 

sleep 5 

wget -q /home/XXXXX/domains/domain.com/html/generator/runcrawl.php 

這將在安靜模式下使用wget command執行PHP腳本。並且會在腳本之間添加5秒的暫停。

將其保存爲any_name.sh並將其上傳到您的服務器,記得給予所有文件的執行權限並將其添加到您的cron作業。