2013-10-07 70 views
0

我跑在的cPanel配置后的cron作业绝对文件路径:PHP 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>** 

任何甲肝解决这个问题?

回答

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和读权限:

基本上,你的任务应该是:根据您的环境需要

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

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

,并与您所选择的调度参数。

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

+0

您的示例cron行可能不正确。如果OP在脚本目录中执行cd操作,可能是有原因的。如果脚本不是用绝对路径编写的,现在它将运行在错误工作目录中,并且任何相对包含/需求都将被打破。 –

+0

考虑到他使用绝对路径的事实,我排除了这种可能性。不过,我会使用'cd'先决条件添加一个版本。 –