Я пытаюсь запустить автоматическую почтовую службу на основе SendGrid и cron. Я пробовал все возможные комбинации, чтобы заставить интерпретатор PHP запускать мой сценарий, , и хотя в журнале cron говорится, что задание выполняется каждую минуту, файл журнала, который я определил, остается пустым и никаких сообщений электронной почты не получено, и все работает нормально, когда я просматриваю страницу через браузер.crontab не работает php-скрипт правильно
mydev.com - это виртуальный хост, который я использую на своей машине, и я не внес никаких изменений в конфигурацию php (максимальное время выполнения и т. Д.).
Кроме того, я провел мое исследование в Интернете, и у меня установлен php5-cli и все требуемые зависимости.
ниже строки, которые я добавил в файл хрон после ввода SUDO кронтаб -e в терминале:
* * * * * php /var/www/mydev/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null
* * * * * /usr/bin/php /var/www/mydev/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null
* * * * * /usr/bin/php http://mydev.com/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null
* * * * * /usr/bin/lynx http://mydev.com/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null
А вот выход на бревне хрон:
Apr 15 15:13:01 oleg-Lenovo-G580 CRON[8948]: (root) CMD (/usr/bin/php http://mydev.com/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:13:01 oleg-Lenovo-G580 CRON[8947]: (root) CMD (php /var/www/mydev/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:13:01 oleg-Lenovo-G580 CRON[8949]: (root) CMD (/usr/bin/php /var/www/mydev/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:13:01 oleg-Lenovo-G580 CRON[8953]: (root) CMD (/usr/bin/lynx http://mydev.com/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:14:01 oleg-Lenovo-G580 CRON[8964]: (root) CMD (/usr/bin/lynx http://mydev.com/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:14:01 oleg-Lenovo-G580 CRON[8966]: (root) CMD (php /var/www/mydev/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:14:01 oleg-Lenovo-G580 CRON[8965]: (root) CMD (/usr/bin/php http://mydev.com/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:14:01 oleg-Lenovo-G580 CRON[8970]: (root) CMD (/usr/bin/php /var/www/mydev/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:15:01 oleg-Lenovo-G580 CRON[8992]: (root) CMD (/usr/bin/php /var/www/mydev/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:15:01 oleg-Lenovo-G580 CRON[8994]: (root) CMD (php /var/www/mydev/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:15:01 oleg-Lenovo-G580 CRON[8993]: (root) CMD (/usr/bin/php http://mydev.com/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:15:01 oleg-Lenovo-G580 CRON[8998]: (root) CMD (/usr/bin/lynx http://mydev.com/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:16:01 oleg-Lenovo-G580 CRON[9009]: (root) CMD (/usr/bin/php /var/www/mydev/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:16:01 oleg-Lenovo-G580 CRON[9011]: (root) CMD (php /var/www/mydev/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:16:01 oleg-Lenovo-G580 CRON[9012]: (root) CMD (/usr/bin/lynx http://mydev.com/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Apr 15 15:16:01 oleg-Lenovo-G580 CRON[9010]: (root) CMD (/usr/bin/php http://mydev.com/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2> /dev/null)
Любая помощь очень ценится !.
О.
EDIT:
Ниже приведен код, который должен быть выполнен:
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . '/classes/mailingService.php');
$myMail = new mailingService();
$myMail->execute();
$myMail->outputDuration();
?>
Теперь, даже если я добавить 'эхо 1;' в начале файла или в конце его ничего не меняется, и выходной файл CRON_LOG.txt остается пустым
Эта строка выглядит нормально '* * * * */usr/bin/php /var/www/mydev/dev/mailServiceTest.php >> /var/www/mydev/CRON_LOG.txt 2>/dev/null' , У вас есть абсолютные пути в вашем скрипте? Правильно ли работает, если выполняется вручную? – fedorqui
Нет моего сценария, который использует суперсервер DOCUMENT_ROOT SERVER для включения любых файлов, которые он использует. И да, при доступе вручную через браузер все работает нормально. –
Вы уверены, что этот пользователь выполняется, так как имеет права на rwx в каталоге '/ var/www/mydev /' и, по крайней мере, rw-разрешения на '/ var/www/mydev/CRON_LOG.txt'? Также вы абсолютно уверены, что вывод, который вы хотите, записывается в STDOUT скрипта PHP? – DaveRandom