Я просто пытаюсь запустить PHP-скрипт с использованием задания cron внутри CPanel – это правильный синтаксис:
/usr/bin/php -q /home/username/public_html/cron/cron.php >/dev/null
Я не получаю никаких уведомлений по электронной почте, в которых указано, что cron завершен, мне нужно что-то делать с файлом PHP?
В системе crontab:
/usr/bin/php
– это двоичный путь php (в некоторых системах ex: freebsd /usr/local/bin/php
, linux: /usr/bin/php
) /home/username/public_html/cron/cron.php
должен быть ваш путь к скрипту php /dev/null
должен быть cron output, ex: /home/username/stdoutx.txt
Таким образом, вы можете контролировать свой cron, просматривая cron output /home/username/stdoutx.txt
Я использовал эту команду для активации задания cron.
/usr/bin/php -q /home/username/public_html/yourfilename.php
на сервере godaddy, и его работающий штраф.
>/dev/null
останавливает cron от отправки писем.
на мой взгляд, лучше сделать php
скрипт сам заботиться о его регистрации, а не просто выводить что-то в cron
Это способ:
/usr/bin/php -q /home/username/public_html/yourfilename.php >/dev/null
Это самый простой способ:
php -f /home/your_username/public_html/script.php
И если вы хотите записать вывод сценария в файл, добавьте его в конец команды:
>> /home/your_username/logs/someFile.txt 2>&1
Эта линия cron работала для меня на hostgator VPS, используя cpanel.
/usr/bin/php -q /home/username/public_html/scriptname.php
У меня были проблемы с использованием / usr / bin / php на CPanel, поскольку он скомпилирован как двоичный файл cgi-fcgi, а не «cli». Попробуйте использовать / usr / local / bin / php или, так или иначе, сначала используйте «php»:
php /path/to/script.php
Если вы хотите запустить скрипт как исполняемый файл, дайте ему + x perms и используйте следующую строку в качестве первой строки скрипта:
#!/usr/bin/env php
Надеюсь, ваша проблема связана с бинарностью 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
Надеюсь, это поможет.
Это отлично работает и также отправляет электронную почту:
/ usr / bin / php /home/xxYourUserNamexx/public_html/xxYourFolderxx/xxcronfile.php
Следующие две команды также работают нормально, но не отправляют электронную почту:
/ usr / bin / php -f / home / То же, что и выше
php -f / home / То же, что и выше