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

Creating a cron job with PHP and Apache

我在 Debian 上安装了 Apache 运行 PHP 5.4。
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 开发并不陌生,但不熟悉围绕它配置服务器。 我该怎么做才能让它发挥作用。我猜我必须设置包含路径,但我不知道具体是什么。

在此先感谢您的帮助。

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

的路径

在你的情况下,这将是:

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

切换到正确的工作目录。

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

在 /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 脚本中包含的内容不是绝对值