Запуск файла PHP в задании cron с использованием CPanel

Я просто пытаюсь запустить PHP script с помощью задания cron внутри CPanel - это правильный синтаксис:

/usr/bin/php -q /home/username/public_html/cron/cron.php >/dev/null

Я не получаю никаких уведомлений по электронной почте, в которых указано, что cron завершен, мне нужно что-то делать с файлом PHP?

Ответ 1

В системе crontab:

  • /usr/bin/php - это двоичный путь php (другой в некоторых системах ex: freebsd /usr/local/bin/php, linux: /usr/bin/php)
  • /home/username/public_html/cron/cron.php должен быть вашим php script path
  • /dev/null должен быть cron output, ex: /home/username/stdoutx.txt

Итак, вы можете контролировать свой cron, просматривая cron output /home/username/stdoutx.txt

Ответ 2

Я использовал эту команду для активации задания cron для этого.

/usr/bin/php -q /home/username/public_html/yourfilename.php

на сервере godaddy и его работоспособности.

Ответ 3

>/dev/null останавливает cron от отправки писем.

на мой взгляд, лучше сделать php script сам, чтобы заботиться о нем, а не просто выводить что-то в cron

Ответ 4

Это самый простой способ:

php -f /home/your_username/public_html/script.php

И если вы хотите записать вывод script в файл, добавьте его в конец команды:

>> /home/your_username/logs/someFile.txt 2>&1

Ответ 5

Это способ:

/usr/bin/php -q /home/username/public_html/yourfilename.php >/dev/null

Ответ 6

Эта линия cron работала для меня на хост-сервере VPS, используя cpanel.

/usr/bin/php -q /home/username/public_html/scriptname.php

Ответ 7

У меня были проблемы с использованием /usr/bin/php на CPanel, поскольку он скомпилирован как двоичный файл cgi-fcgi, а не "cli". Попробуйте использовать /usr/local/bin/php или, так или иначе, просто используйте вместо этого 'php':

php /path/to/script.php

Если вы хотите запустить script в качестве исполняемого файла, дайте ему + x perms и используйте следующую строку в качестве первой строки script:

#!/usr/bin/env php

Ответ 8

Я надеюсь, что ваша проблема связана с двоичным кодом path и php. Если вы исправили путь в соответствии с более старыми ответами, используйте php-cli вместо команды php во время выполнения задания cron.

Возможно, php_sapi_name() не возвращается cli. Его возвращение что-то еще похожее на cgi-fcgi и т.д.

/usr/bin/php-cli -q /home/username/public_html/cron/cron.php >/dev/null

Надеюсь, это поможет.

Ответ 9

Это прекрасно работает и также отправляет электронную почту:

/usr/bin/php/home/xxYourUserNamexx/public_html/xxYourFolderxx/xxcronfile.php

Следующие две команды работают нормально, но не отправляют электронную почту:

/usr/bin/php -f/home/То же, что и выше

php -f/home/То же, что и выше

Ответ 10

Предложено экспертами.

/usr/local/bin/php /home/username/public_html/path/to/cron/script

Ответ 11

Для специфичной для домена Multi PHP Cron Job сделайте вот так,

/usr/local/bin/ea-php56 /home/username/domain_path/path/to/cron/script

В приведенном выше примере замените "ea-php56" версией PHP, назначенной домену, который вы хотите использовать.

Надеюсь, это кому-нибудь поможет.

Ответ 12

Это на самом деле очень просто,

php -q /home/username/public_html/cron/cron.php