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


PHP cron job include absolute file path

我正在运行一个在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>**

有人可以解决这个问题吗?

运行 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脚本。