PHP cron作业包括绝对文件路径

时间:2013-10-07 19:01:06

标签: php include cron

我正在运行CPanel中配置的cron作业:

**cd /home/DOMAIN_A/public_html/ ; php host_cron_job.php**

在host_cron_job.php文件中,我试图使用绝对文件路径访问同一服务器中的其他文件,但它是其他域,如:

**include "/home/DOMAIN_B/public_html/config.php";**

但是我收到了这个错误:

**<b>Warning</b>:  include(/home/DOMAIN_B/public_html/config.php) [<a href='function.include'>function.include</a>]: failed to open stream: Permission denied in <b>/home/DOMAIN_A/public_html/host_cron_job.php</b>**

任何人都有解决这个问题的方法吗?

1 个答案:

答案 0 :(得分:0)

运行Cron任务的UNIX用户没有访问/home/DOMAIN_B/public_html/config.php的权限。以此用户身份登录,并尝试逐步访问此路径。使用chmod命令根据需要调整权限。

用户必须能够“执行”以下目录(对于UNIX权限,这意味着“输入那些目录”):

  • /
  • /家
  • /家庭/ DOMAIN_B
  • /家庭/ DOMAIN_B /的public_html

它必须具有/home/DOMAIN_B/public_html/config.php/home/DOMAIN_B/public_html/config.php的读取权限:

基本上,你的任务应该是:

* * * * * php /home/DOMAIN_A/public_html/host_cron_job.php

* * * * * cd /home/DOMAIN_A/public_html && php host_cron_job.php

取决于您的环境需求,以及您选择的计划参数。

注意:我宁愿使用&&而不是';',如果首先转到目录,这将避免执行PHP脚本。