Назад | Перейти на главную страницу

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)

Не видя ошибок, понять сложно, но я бы сказал, что это одна из следующих:

  • Скрипт исполняемый, но в начале отсутствует #! / Usr / bin / php.
  • В скрипте есть #! / Usr / bin / php, но он не может быть выполнен.
  • Скрипт не является исполняемым и не имеет #! / Usr / bin / php, поэтому crond не знает, как правильно его обработать.

Если вы измените свой cron на:

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

Это работает?

php-fpm - это только fastcgi .. установите также пакет php-cli

редактировать

Вы должны включить репо для установки

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

У меня была такая же проблема с той же конфигурацией. По какой-то причине, после установки 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 млн. Это нормально [да / нет]: да

Надеюсь, это обновление ничего не сломает.

Примечание: мне пришлось добавить репозиторий Remi, чтобы получить php-fpm. Я действительно думал, что php-cli уже установлен, потому что этот PHP-скрипт работал несколько месяцев. Скрипт перестал работать примерно в то время, когда я перешел на php-fpm.

Шаг 2

Удалено #! Что угодно из первой строки скрипта.

php -l myscript.php

«В myscript.php не обнаружено синтаксических ошибок»

Woot!

Шаг 3

Обновил мой crontab с параметром "-f":

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

Работает!