从一个特定的目录下运行的cronjob(Running Cronjob from a specifi

2019-10-18 08:34发布

我创建了一个PHP脚本生成RSS源这是最终通过一个cronjob运行。

所有PHP文件和所产生的RSS XML将是一个网站的子文件夹中。 PHP脚本,如果我用,而我的本地开发机器上在同一目录中端或浏览器的运行我的本地开发的罚款。

e.g. php /Library/WebServer/Documents/clientname/siteroot/rss/dorss.php

如由于导航到在Chrome中dorss.php文件工作正常。

该的cronjob已执行虽与相关的事实,即它无法找到require_once指定的文件中的错误(),它位于同一文件夹中的RSS或在一个子文件夹。

长话短说,我需要有来自同一目录dorss.php文件中的cronjob运行,因此可以引用正确的包含文件。

我的关于建立一个cronjob知识是非常有限的,所以我想问问,如果这是在所有可能的(更改目录下运行命令之前),这样做在crontab,或者如果不是怎么能实现请将同一命令行?

当前的cronjob命令是

0 0,6,12,18 * * * /usr/bin/php /var/www/vhosts/clientname/stagingsite/rss/dorss.php

TIA约翰

Answer 1:

我不知道是否有更好的解决方案,但我建议写一个bash脚本,执行PHP文件之前,更改为正确的目录,并使用cron来执行这个脚本。 例如:

#!/bin/bash
cd /Library/WebServer/Documents/clientname/siteroot/rss/
php dorss.php

甚至只是:

#!/bin/bash
php /Library/WebServer/Documents/clientname/siteroot/rss/dorss.php

保存在某个地方,并使用cron来运行。



Answer 2:

您可以更改目录到一个你想要的,然后做这个运行从该目录中的PHP:

cd /var/www/vhosts/clientname/stagingsite/rss/
&&
/usr/bin/php dorss.php

这比创造的bash脚本更容易,这里是结果:

0 0,6,12,18 * * * cd /var/www/vhosts/clientname/stagingsite/rss/ && /usr/bin/php dorss.php


文章来源: Running Cronjob from a specific directory
标签: php cron plesk