В чем разница между этими двумя заданиями cron?

Я очень новичок в php, если кто-нибудь может мне помочь, рассказав, в чем разница между этими двумя командами cron, я был бы очень благодарен:

/usr/local/bin/php -q /home/delightl/public_html/myfolder/run.php

а также

php -q /home/delightl/public_html/myfolder/run.php

Я полностью сбит с толку .. На моем сервере GoDaddy вторая команда работала, но на другом сервере resellerclub работали обе. В чем разница между этими командами?


person user3302488    schedule 17.02.2014    source источник
comment
Думайте о команде 'php' как о ярлыке '/ usr / local / bin / php' На одном сервере вы можете использовать оба, но на другом полный путь может быть другим .. Тогда будет работать только 'php';)   -  person Svetoslav    schedule 18.02.2014


Ответы (2)


Единственное отличие состоит в том, что один указывает полный путь к двоичному файлу PHP, а другой - нет.

PHP можно установить в разных местах. Вот почему он работает на одном сервере, а не на другом.

person Brad    schedule 17.02.2014
comment
Нет, только если среда, которая используется для выполнения cronjob, содержит команду php в своем пути. - person Sven; 18.02.2014
comment
Нет, как сказал Свен, это не сработает, если это условие выполнено ... то же самое для / usr / local / bin / php -q, потому что php может быть установлен по другому пути - person Hackerman; 18.02.2014
comment
@ user3302488 Нет, нет. Вам нужно либо знать, где установлен двоичный файл, либо иметь его на своем пути. - person Brad; 18.02.2014

У использования любого из них есть свои плюсы и минусы:

/usr/local/bin/php -q /home/delightl/public_html/myfolder/run.php

Pro: указывает полный путь к двоичному файлу PHP, не зависит от переменной среды пользователя $PATH, чтобы правильно указать путь к месту установки PHP.
Con: Расположение двоичного файла PHP может варьироваться от системы к системе.

php -q /home/delightl/public_html/myfolder/run.php

Pro: Обычно не требует изменений от системы к системе.
Против: часто не работает, поскольку многие пакеты PHP не добавляют PHP в $PATH пользователя cron, или среда, в которой запускается cron, остается пустой или не заполняется, потому что это не интерактивный сеанс.

ИМХО лучшее решение - всегда использовать полный путь. Если вы не уверены, какой путь используется which php через оболочку, которая сообщит вам полный путь к двоичному файлу, если он находится в вашем $PATH.

См .: http://en.wikipedia.org/wiki/PATH_%28variable%29

person Sammitch    schedule 17.02.2014