使用PHP和Apache创建cron作业


Creating a cron job with PHP and Apache

我在Debian上运行PHP 5.4。
PHP-cli已安装。
我的web项目目录结构是:

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

我想创建一个cron作业执行getProviders.php每5分钟。这是我迄今为止所做的:
*/5 * * * * /usr/bin/php /var/www/myproject/src/controller/getProviders.php

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

getProviders.php可以通过URL执行。

我对PHP开发并不陌生,但对围绕它配置服务器很陌生。我要怎么做才能成功呢?我猜我必须设置包含路径,但我不知道具体是什么。

提前感谢您的帮助。

在/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脚本的绝对值

为了确保require_once总是有效,您可以使用dirname(__FILE__) +相对于getProviders.php的路径

在你的例子中,这将是:

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

切换到正确的工作目录

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