Centos PHP-FPM Cron

Centos PHP-FPM Cron

我的 Centos vps 机器上安装了 nginx 和 php-fpm。我需要添加一个 cronjob,每 10 分钟执行一次脚本。我尝试了crontab -e以下内容:

*/10 * * * * /path/to/script/script.php

但是,它无法正确执行。它说 php 代码有错误,但实际上没有

--

尝试安装 php-cli 时出错

--> Running transaction check
---> Package php-cli.i386 0:5.1.6-27.el5_5.3 set to be updated
--> Processing Dependency: php-common = 5.1.6-27.el5_5.3 for package: php-cli
--> Finished Dependency Resolution
php-cli-5.1.6-27.el5_5.3.i386 from base has depsolving problems
  --> Missing Dependency: php-common = 5.1.6-27.el5_5.3 is needed by package php-cli-5.1.6-27.el5_5.3.i386 (base)
Error: Missing Dependency: php-common = 5.1.6-27.el5_5.3 is needed by package php-cli-5.1.6-27.el5_5.3.i386 (base)

答案1

php-fpm 仅适用于 fastcgi.. 还需安装 php-cli 包

编辑

您必须启用 repo 才能安装

yum -y --enablerepo=webtatic install php-cli

答案2

如果没有看到错误很难知道,但我会说它是其中之一:

  • 该脚本是可执行的,但开头缺少#!/usr/bin/php。
  • 该脚本有#!/usr/bin/php但不可执行。
  • 该脚本不可执行,并且没有#!/usr/bin/php,因此 crond 不知道如何正确处理它。

如果你将 cron 更改为:

*/10 * * * * /usr/bin/php /path/to/script/script.php

它有用吗?

答案3

我在使用相同配置时遇到了相同的问题。不知出于什么原因,几个月前安装 php-fpm 后,我才发现 PHP 不在路径中。php-cli 脚本找不到 php,我找不到 php,phpinfo() 没有帮助,它在哪里?本质上,安装“php-cli”将 php 放回路径中。我所有的网站都运行良好,但我的 php-cli 脚本停止工作,因为 php 不见了,直到昨晚我才注意到。

对我有用的解决方案:

步骤1

yum install php-cli

========================================================================================================================= 软件包 Arch 版本
存储库 大小 ====================================================================================================================================================================================== 安装:php-cli x86_64
5.4.13-1.el6.remi remi 2.6 M 正在更新依赖项:php-common x86_64
5.4.13-1.el6.remi remi 891 k php-fpm x86_64 5.4.13-1.el6.remi remi 1.3 M php-mysql x86_64
5.4.13-1.el6.remi remi 134 k php-pdo x86_64 5.4.13-1.el6.remi remi 117 k

交易摘要 ========================================================================================================================== 安装 1 个软件包 升级 4 个软件包

总下载大小:5.0 M 可以吗 [y/N]:y

希望此次升级不会破坏任何东西。

注意:我必须添加“Remi”存储库才能获取 php-fpm。我真的以为 php-cli 已经安装好了,因为这个 PHP 脚本已经运行了几个月。在我切换到 php-fpm 时,该脚本停止了工作。

第2步

从脚本第一行删除#!whatever。

php -l myscript.php

“在 myscript.php 中未检测到语法错误”

哇喔!

步骤3

使用“-f”参数更新了我的 crontab:

43 * * * * someuser php -f /home/getposts/myscript.php

作品!

相关内容