【问题标题】:Setting Up Crontab to Execute a PHP Script in CentOS在 CentOS 中设置 Crontab 以执行 PHP 脚本
【发布时间】:2013-09-13 04:32:55
【问题描述】:

为了解决我在 CentOS 中遇到的问题,我一直在寻找解决办法。我正在尝试设置一个执行 PHP 脚本的 cron 作业。我可以使用 wget 来完成这项工作,但现在我们要投入生产了,我需要找到一种方法来做到这一点,同时更安全,因为 cron 作业本身可以处理敏感数据。

我得到的错误是:-bash: php: command not found

现在我环顾四周,发现有人遇到同样的问题,但没有什么能帮助我解决这个问题。

作为参考,下面是使用 wget 命令的工作 crontab 的样子。

* * * * * wget @987654321@

这工作正常,但我需要将其转换为通过 PHP 执行,而不是发出 HTTP 请求来完成工作。

如果我遗漏了什么,请告诉我。

【问题讨论】:

    标签: php bash cron centos crontab


    【解决方案1】:

    Cron 没有设置它的 PATH。最简单的方法是将 php 命令更改为 php 二进制文件的完整路径。

    /usr/bin/php /path/to/yourscript.php

    我相当确定这是 CentOS 中的路径,但您可以通过在命令行上执行 which php 来确定,它会告诉您。

    【讨论】:

    • 我的/usr/bin 文件夹中没有PHP,但在我的/etc 文件夹中我有一个名为php52 的文件夹。里面是一个文件; php.ini。尝试运行命令/etc/php52 myscript.php 时,我收到一条错误消息,指出 php52 是一个文件夹。
    • 绝对不在/etc。如果which php 没有返回任何内容,那么您需要安装命令行工具。如果您有 root 或 sudo 访问权限,您可以使用 yum install php-cli 安装它
    • 太棒了,这是朝着正确方向迈出的一步。现在 PHP 命令正在执行,但每次我尝试测试它时,我都会收到一条消息:PHP Startup: Unable to load dynamic library /usr/lib64/php/modules/mcrypt.so`。知道这意味着什么吗?编辑:它看起来只是一个警告,所以这可能是我现在可以忽略的东西。不用说,我很快就会将您的答案标记为正确。
    • 脚本是否以其他方式运行或失败?您是否在脚本中使用加密函数?如果是这样,通过 Apache 访问时脚本是否正常工作?
    • 根据您的编辑,如果您没有在脚本中使用任何加密函数,您可以忽略它。我知道 mcrypt 在某些版本的 RedHat 和 CentOS 中很挑剔
    猜你喜欢
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多