Запуск php-скрипта в crontab

Я пытаюсь запустить PHP-скрипт каждый день в 01:00 UTC. У меня есть линия
00 01 * * * /usr/bin/php -f /var/www/html/test.php
в моем crontab, но по какой-то причине он не запускает мой скрипт. Я знаю, что сам скрипт работает, потому что я проверил его. Это просто не будет работать в crontab. Я также пытался использовать

00 01 * * * php /var/www/html/test.php

но это тоже не сработало. я добавил #!/usr/bin/php в самом начале сценария php я пытаюсь запустить. Я также попробовал -q вместо -f. Ничего не помогло, и я не уверен, что я могу сделать, чтобы это исправить. Есть ли какой-то другой метод, который я должен попробовать, если это все еще не работает?

0

Решение

Убедитесь, что ваши пути верны. Попробуйте этот синтаксис:

cd /var/www/html; php -q -c ./ test.php

-q Флаг подавляет любой заголовок () от записи в стандартное. Это заставляет ваш скрипт выполняться с помощью двоичного файла php-cgi вместо версии командной строки.

-c флаг не позволяет ОС изменять каталоги, так как вы делаете это с cd,

0

Другие решения

В итоге я написал скрипт ksh, который экспортировал больше путей, а затем запустил скрипт php. Это сработало.

export ORACLE_HOME=/opt/oracle/product/11.2.0/client
export LD_LIBRARY_PATH=/opt/oracle/product/11.2.0/client/lib/
export PATH=$PATH:/opt/oracle/product/11.2.0/client/bin
php /var/www/html/test.php

0

имея местный
веб-сервер работает, вы можете позвонить

http://localhost/test.php

из вашего кронтаба

0

Почему бы просто не сделать файл исполняемым (chmod 750 /var/www/html/test.php) и начать с шебанга?

#!/usr/bin/php
<?php
....
?>

Тогда ваша работа cron должна только ссылаться на скрипт.

00 01 * * * /var/www/html/test.php

Обратите внимание, что я использовал 750 разрешений для файла, чтобы сделать его исполняемым для пользователя и группы. Если им управляет кто-то еще, он должен быть 755.

-1
По вопросам рекламы [email protected]