Corvus Гость
|
Добавлено: Ср Авг 27 2003 10:45 Заголовок сообщения: PHP(Apache module) via Cron ? |
|
|
Можно ли запускать PHP скрипты через Cron, если PHP установлен как модуль Apache ???
Пересмотрел кучу источников, пишут что если PHP установлен как CGI, то нет проблем. Тут два варианта: 1) первую строку скрипта пишем #! /path_to_binary_php/php в Crontab пишем */10 * * * * /path_to_script/myscript.php >/dev/null/ 2) в Crontab пишем сразу */10 * * * * /path_to_binary_php/php /path_to_script/myscript.php >/dev/null/ И всё должно работать!
Перепробовал оба варианта ( PHP установлен как модуль Apache) - оба не работают. Первый вариант пишет "bad interpretator in line 1" при втором вообще ничего не происходит. Однако если запустить из shell вручную строку /path_to_binary_php/php /path_to_script/myscript.php >/dev/null/ или даже php /path_to_script/myscript.php >/dev/null/ то всё работает!
В ряде источников пишут, что если PHP установлен как модуль Apache, бинарный РНР запускаться не будет. Ума не приложу, почему??? Ведь из шелла запускается!
Рекомендуют в этом случае использовать get, wget или lynx. Добавляем в сrontab */10 * * * * lynx -dump http://mydomen/path_to_script/myscript.php
То есть в этом случае (так же как и при использовании get, wget) скрипт вызывается через Веб по полному URL со всеми вытекающими последствиями (30-секундный лимит времени, 8-метровый лимит памяти). Мой скрипт (а он коннектится к другому серваку, скачивает полуметровый файл, парсит его и кладёт в базу несколько тысяч записей) в этом случае еле укладывается в 30 сек. А если через шелл запустить ручками, то работает всего 2-3 секунды! Естественно, хочется чтоб так же и через cron работал. Я уж не говорю о безопасности: в этом случае права 700, всё ОК, а если через веб, то права 644, и в принципе любой куулхацкер сможет завесить мой сервак, пронюхав про наличие такого скрипта и послав ему кучу запросов. Прошу помощи. |
|