我正在尝试将PHP文件设置为cron作业,其中该PHP文件包含/执行/运行其他PHP文件。我试图实现这一点,因为我的主机只允许托管所有域的5个cron作业,所以我正在尝试将任务编译到某些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 :(得分:0)
您的有限主机不太可能允许您跨域文件夹,因为它可能是一个安全问题。 如果你不能跨目录访问文件,那么考虑使用php的cURL获取初始cron作业来调用其他文件。 这种方法的缺点是文件必须位于公共html目录中。
答案 1 :(得分: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作业中。