我的 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
作品!