У одного из моих клиентов есть скрипт PHP, который загружает файл cvs. Когда он запускает этот скрипт через WWW, он работает нормально - логи загруженных данных хранятся в /var/php/CLIENT/loaded.log. Но когда я пытаюсь выполнить тот же сценарий тем же пользователем, который его выполняет Apache, и с той же конфигурацией (php.ini), я не получаю данных в loaded.log. Та же самая ситуация, если я сделаю это с помощью Cron. Системный журнал сообщает, что Cron получал какие-либо ошибки.
У тебя есть подсказки, где мне искать?
Когда сценарии PHP работают при запуске через Apache, но не через cron, некоторые общие проблемы могут заключаться в том, что сценарий использует переменные, доступные только во время веб-запроса, например $_SERVER
переменные (например, $_SERVER['DOCUMENT_ROOT']
или другие) или $_GET
переменные, или это может быть другой PHP, используемый для веб-запросов, а не из командной строки.
Попробуйте запустить сценарий самостоятельно в оболочке, используя указанную вами команду su, но после php5.3
, Добавить -d display_errors=on
и посмотрите, не появится ли сообщение об ошибке.