RuWeb.net Forum

как запустить php скрипт из крона
kpv - 29.11.2006 в 17:33

обсуждение:
http://forum.ruweb.net/viewthread.php?tid=500
1.
а)
/usr/local/bin/php -q полный_путь_до скрипта

если есть вывод информации этим скриптом на stdout (даже одного пробела), то Вы с каждым запуском получаете письмо в свой системный ящик.

б)
если результат работы скрипта нужен, но не письмом, то пропишите вывод в файл

/usr/local/bin/php -q полный_путь_до скрипта >>полный_путь_и_имя_файла

в)
если результат не нужен, то так
/usr/local/bin/php -q полный_путь_до скрипта >/dev/null
но если при выполнении скрипта будут какие-то ошибки, то о них тоже ничего не узнаете.

2.
почему в скрипте запускаемом через крон выскакивает ошибка:
Fatal error: Call to undefined function: mysql_connect()

В домашней директории (где папки domains, mail, tmp)
создайте файл php.ini и добавьте в него строку
extension=mysql.so
и любые другие нужные расширения или настройки для PHP.

3.
А у меня скрипт берет параметры из QUERY_STRING (в броузере это выглядит так: http://domain.com/script.php?string ). Писал его не я, поэтому переписывать не собираюсь. Скажите, как мне поступить в этом случае?

обсуждение здесь:
http://forum.ruweb.net/viewthread.php?tid=1134


а)
всё таки попытаться переписать скрипт
б)
У нас оптимальней всего открывать URL curl-ом:
/usr/local/bin/curl -s 'http://domain.com/script.php?string'
но, это решение неправильное, хотя и рабочее. Ещё придётся и за генерируемый трафик платить в этом случае.

4. абсолютные пути пути до скриптов
http://site-helper.ru/scripts.html#paths
как настраивается крон http://site-helper.ru/misc.html#cron

результат работы скрипта отправляется письмом на системный ящик, логин и пароль от которого такой же как и от панели управления directadmin

не ставьте запуск скриптов чаще одного раза в течении пяти минут - это вызывает лишнюю нагрузку на сервер, а правильные задачи и написанные скрипты не требуют, в большинстве случаев, столь частого запуска

[Изменено 24.5.2007 от kpv]

[Изменено 5.10.2008 от kpv]


support - 30.11.2006 в 11:30

/usr/bin/php /usr/local/bin/php-cgi - это CGI-модуль, /usr/local/bin/php - это CLI-модуль.

[Отредактировано 28.10.2015 кто support]