Я создал задание cron для запуска. Он выполняет php-файл, который называется cronj.php. Но он не работает, и уведомление о работе cron я получаю:
/root/website/myworld/blabla/cronj.php: line 1: ?php: No such file or directory
И строка 1 в этом файле – это просто php-тег <?php
Я не знаю, как
Cron выполняет файл, как если бы он был сценарием оболочки. Обычно вы вставляете строку shebang (например, #!/usr/bin/env php
) в верхней части файла, чтобы оболочка знала, как ее вызывать, но PHP не нравится – поскольку она выводит все за пределы ее теги. Таким образом, вместо этого:
0 3 * * * /mypath/myscript.php ...
попробуй это:
0 3 * * * /usr/bin/env php /mypath/myscript.php ...
или используйте трюк @ Ravenex.
EDIT Я был справедливо предупрежден, предполагая, что PHP ведет себя последовательно. Видимо, shebang работает в PHP. Приношу свои извинения @ chess007.
Мы используем cron для запуска ночных заданий в php facebook. Мы делаем это, используя завиток:
/usr/bin/curl http://www.ourdomain.com/page.php
Если я правильно помню, у нас были проблемы с использованием localhost, чтобы избежать внешних запросов. Также мы попытались использовать выполнение командной строки php, которое в основном работало, но вызвало несколько странных ошибок.
Попробуйте вызвать веб-адрес (http: // …..).
По-видимому, он не анализирует его как скрипт PHP.
Изменить: Пожалуйста, используйте используемую вами cronjob, чтобы убедиться, что моя догадка правильная.
Используйте это, чтобы установить свой cron, а также указать адрес электронной почты в настройке cron Cron, чтобы вы получили электронное письмо, когда cron успешно работает
wget -O – http: //YOURSITE/cron.php