使用PHP和Apache创建一个cron作业

时间:2015-06-06 09:08:07

标签: php apache cron

我使用PHP 5.4在Debian上运行Apache 安装了PHP-cli 我的Web项目的目录结构是:

 - /myproject
     - /src
         - /controller
             - getProviders.php
         - /model
         - /public
         - ClassLoader.php

我想创建一个cron作业,每5分钟执行一次getProviders.php。这是我来的:
*/5 * * * * /usr/bin/php /var/www/myproject/src/controller/getProviders.php

它没有用,因为我在getProviders.php中有一个require_once,需要ClassLoader.php,但他找不到它。
require_once "../ClassLoader.php"

getProviders.php在通过URL执行时有效。

我不是PHP开发的新手,但是围绕它配置服务器是新的。 我需要做些什么才能让它发挥作用。我猜我必须设置包含路径,但我不知道到底是什么。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

在/ usr / sbin中创建这样的shell脚本(例如:getProviders)

#!/bin/bash -x
cd  /var/www/myproject/src/controller/
php getProviders.php

给予许可

chmod a+x /usr/sbin/getProviders
/ etc / crontab中的

*/5 * * * * root /usr/sbin/getProviders

问题可能是因为php脚本中的包含不是绝对值

答案 1 :(得分:1)

要确保require_once始终有效,您可以使用dirname(__FILE__) +相对于getProviders.php的路径

在你的情况下,这将是:

require_once(dirname(__FILE__)."/../ClassLoader.php");

答案 2 :(得分:1)

更改为正确的工作目录。

您可以使用cd命令或使用chdir()函数在PHP脚本中执行此操作。