Запустіть файл PHP в роботі cron за допомогою CPanel


102

Я просто намагаюся запустити скрипт PHP, використовуючи завдання cron в CPanel - це правильний синтаксис:

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

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


25
Я думаю, що це цілком актуально, оскільки на Cpanel розміщується багато проектів, і потрібно знати, як запустити роботу cron, якщо це потрібно
Вільям

7
Якщо cPanel заборонено на помилках сервера або переповнення стека, де повинні бути запитання щодо цього?
сірка

8
досить іронічно, що це питання було класифіковане як "поза темою" для StackOverflow, але це найактивніше запитання, яке я коли-небудь мав тут ..... Я сподіваюся, що це допомогло іншим :)
Zabs,

Thanx @Tatu Ulmanen Це працює для мене!
Tushar Rmesh Saindane

Відповіді:


66

У системі crontab:

  • /usr/bin/phpце PHP двійковий шлях ( по- різному в деяких системах наприклад: FREEBSD /usr/local/bin/php, Linux: /usr/bin/php)
  • /home/username/public_html/cron/cron.php має бути ваш шлях до сценарію PHP
  • /dev/null повинен бути вихідний крон, наприклад: /home/username/stdoutx.txt

Таким чином, ви можете контролювати свій крон, переглядаючи вихід крона /home/username/stdoutx.txt


1
Я зараз це використовую, і це працює, але я не отримую жодного повідомлення електронною поштою, чому б ні? php /home/username/public_html/cron/cron.php Примітка Я повинен був поставити наступний рядок у верхній частині сценарію PHP #! / usr / bin / php -q
Zabs

Якщо ви хочете, щоб cronjob надсилав електронні листи для u, ви повинні використовувати php пошту (), я не думаю, що у cronjob є автоматична поштова система, якщо ви не використовуєте сценарій оболонки або php.
Somy A

1
Коли я натискаю на вкладку "cronjobs" в cPanel, на сторінці є два поля - одне для команди, яку ви хочете виконати, а інша для адреси електронної пошти, на яку потрібно надіслати вихід. Це в cPanel 11.
user3640967

2
Якою буде повна команда? Я маю на увазі повну команду в одному рядку з усіма параметрами.
Аюй

@SomyA, будь ласка, скажіть мені команду для запуску файлу сценарію Java.
Нарендер Редді

104

Я використовував цю команду для активації завдання cron для цього.

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

на godaddy сервері, і його працює нормально.


2
Що -qозначає?
Бхавік Шах

4
@BhavikShah За даними php.net/manual/en/features.commandline.options.php , -qпризначений для спокійного режиму, пригнічує вихід заголовка HTTP
Вільям

@William Дякую Зрозумів.
Бхавік Шах

29

>/dev/null зупиняє крон від надсилання електронної пошти.

Насправді, на мій погляд, краще зробити phpсам сценарій, щоб дбати про його ведення журналів, а не просто виводити щось на крон


я можу запитати, як ви це робите? Чи не виходить cronTabs все-таки на щось? Я теж >/dev/null 2>&1у фіналі ...
ThomasK

@ThomasK, якщо ви зробите таке завдання, /path/to/file.php > /dev/nullвоно буде мовчати.
k102

19

Це найпростіший спосіб:

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

І якщо ви хочете зафіксувати вихід скрипта у файл, додайте це до кінця команди:

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


16

Це шлях:

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

11

Ця лінія cron працювала для мене на VPS hostgator за допомогою cpanel.

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

10

У мене виникли проблеми з використанням / usr / bin / php на CPanel, оскільки він компілюється як двійковий файл "cgi-fcgi", а не "cli". Спробуйте скористатися / usr / local / bin / php або, як це все-таки є на шляху в будь-якому випадку, просто використовуйте замість 'php':

php /path/to/script.php

Якщо ви хочете запустити скрипт як виконуваний файл, дайте йому + x perms та використовуйте наступне як перший рядок сценарію:

#!/usr/bin/env php

6

Я сподіваюся, що ваша проблема пов'язана і з бінарним шляхом & 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

Сподіваюся, це допоможе.


3

Це добре працює, а також надсилає електронну пошту:

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

Наступні дві команди також добре працюють, але не надсилають електронну пошту:

/ usr / bin / php -f / home / Те саме, що вище

php -f / home / Те саме, що вище




0

Для конкретного домену Multi PHP Cron Job зробіть це так,

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

У наведеному вище прикладі замініть "ea-php56" версією PHP, призначеною для домену, який ви хочете використовувати.

Сподіваюся, що це комусь допоможе.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.