У меня есть PHP-скрипт, который загружает и обрабатывает изображение с некоторого сервера, а затем сохраняет его локально. Поскольку изображение обновляется каждые 5 минут, я также хочу загружать и сохранять это изображение каждые 5 минут. Если я запускаю скрипт из браузера или консоли, он работает отлично, если он запускается из crontab, изображение не создается. Файл logPHP.log создан с указанными ниже ошибками.
Crontab:
*/5 * * * * /usr/bin/php5 -f /var/www/radar/radar.php > /var/www/logPHP.log
РЕДАКТИРОВАТЬ:
Ошибки получаю:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/intl.so' - /usr/lib/php5/20090626+lfs/intl.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pspell.so' - /usr/lib/php5/20090626+lfs/pspell.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/snmp.so' - /usr/lib/php5/20090626+lfs/snmp.so: cannot open shared object file: No such file or directory in Unknown on line 0
Есть файлы php ini, пытающиеся загрузить несуществующие расширения. Под /etc/php5
искать
extension=intl.so
extension=pspell.so
extension=snmp.so
и удалите их.
Изменить: Однако это, вероятно, не причина проблемы. Скорее всего, есть переменные среды, которые не установлены для задания cron.
Системный журнал просто сообщит вам код выхода из процесса. Таким образом, он не сообщит вам об ошибках записи, которые были у оболочки, потому что на самом деле процесс php завершился правильно.
Я предполагаю, что пользователь, у которого запущен crontab, не имеет разрешения на запись в / var / www. Даже скрипт php не выводил никакого контента, который должен быть создан.
Наконец, cron deamon отправит пользователю письмо с любыми выводами, которые не были захвачены. Поэтому, если произошла ошибка, вы должны получить письмо по электронной почте. cat /var/spool/mail/$USER