запускаю скрипт по крону, шаред хостинг команда /usr/local/bin/php /home2/k/public_html/1.php скрипт тяжелый, иногда он не выполняется до конца. как можно его отладить, или посмотреть какие ошибки? запихнул весь код в try\catch но catch не отрабатывает
Засекаешь секундомер в начале скрипта и определяешь, сколько времени сервер отводит скрипту на выполнение. Дальше на каждой итерации сверяешься с таймером и если момент, когда PHP завершит работу скрипта уже на подходе - завершаешь его работу сам, сохранив, до какого места скрипт доработал. При последующих запусках скрипта - начинаешь с того же места и продолжаешь обработку данных. Также само, с секундомером. При завершении - опять записываешь, до куда скрипт дошёл. Ну и так по кругу, пока все данные не обработаешь.
увеличить время не проблема но не думаю что изза этого скрипт иногда выполняется целиком нормально, а иногда не выполняется наверно же выдает ошибку -как ее отловить чтобы потом посмотреть?
Ну попробуй запустить скрипт из браузера - если есть ошибки и включено их отображение - то увидешь их. Если выключено - то либо включи его либо смотри последние записи в файле error_log
По идее, крону можно указать, куда направлять вывод страницы и я думаю, что можно направить его в файл. Но я никогда этим не заморачивался, по этому не знаю, что там нужно написать для этого. Можешь посмотреть статьи какие в интернете про крон, наверняка где-нибудь об этом упоминается. Ну или дождаться пока прийдёт кто-нибудь кто знает и подскажет. Добавлено спустя 1 минуту 47 секунд: ЗЫ: вот что нагугли за 35 секунд )) http://www.codenet.ru/webmast/php/cron.php
не пишет. Пишет в лог только результат выполнения задания, по типу: Код (Text): Apr 9 00:00:01 main CROND[1998]: (user) CMD (/path..../demo_cleaner > /dev/null 2>&1) По идее, ошибки выполнения пхп-скрипта не будут перенаправлены через "2>", так как ошибки выполнения скрипта - это тоже результат для крона. Ошибки выполнения будут перенаправлены, например, в случае если файл /home/user/mail не найден кроном. Тогда это будет ошибка. И в файл /tmp/tmp.cron крон запишет, что мол извиняй, братюнь, но файла я не нашел. Нужно весь вывод пихать в файл, по типу "/home/file > /var/log/logfile 2>&1". Даже можно не перезаписывать файл, а дописывать - через оператор ">>", если не ошибаюсь. Но не знаю как там на хостинге. Надо знать куда можно сохранить такой вывод, а то правами запуска крона не везде же разрешена запись этого файла. Вобщем, надо логи веб-сервера смотреть - там и будут все ошибки выполнения скрипта.
А разве если скрипт запускать кроном - то ошибки выполнения будут добавлены в лог сервера..? Вроде, кроном - это же как из консоли и сервер там участия не принимает... Добавлено спустя 3 минуты 40 секунд: А по тому, что я написал выше - подумал, что - это и есть запись в файл того, что PHP-скрипт выдаст (включая сообщения об ошибках при включенном их отображении)...
И то верно. Тут уж я лоханулся. Тогда не Код (Text): 0-59 * * * * /home/user/mail 2>/tmp/tmp.cron а Код (Text): 0-59 * * * * /home/user/mail >>/tmp/tmp.cron 2>&1 осталось только с правами на запись/чтение уладить вопросы.
представление "почты" пользователя. это может быть и складирование в файл и отправка через mta для дальнейшего принятия решения о доставке по электронной почте