2011-08-30 208 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作业。