2016-12-17 4 views
0

я поставил кукурузную работу с помощьюнабор PHP Cron Job, но не работает

exec('echo -e "`crontab -l`\n* * * * * http://example.com/cron/sendsms.php" | crontab -'); 

Я видел это с помощью

$output = shell_exec('crontab -l'); 
echo '<Pre>'; 
echo $output; 
//o/p * * * * * http://example.com/cron/sendsms.php 

До этого все работает отлично. (http://example.com/cron/sendsms.php). то он работает без ошибок.

Но cron не просил установить время. в чем проблема?

+0

Есть ли у вас раковины? –

+0

Нет, брат. У меня нет доступа. –

ответ

0

Насколько я могу видеть, ваш кронтаб содержит следующую строку:

* * * * * http://example.com/cron/sendsms.php 

URL-адрес вызывается как команда оболочки, как если бы вы ввели http://example.com/cron/sendsms.php в терминале и нажать Enter . Если вы хотите вызвать удаленный PHP-скрипт, вы должны использовать HTTP-клиент, например.

* * * * * wget -qO /dev/null 'http://example.com/cron/sendsms.php' 

Команда выше отправляет запрос GET HTTP в URL и выводит ответ на нуль устройства (общий способ игнорировать выход).


Как и в стороне, как вы добавляете записи в кронтаб неправильно во многих отношениях.

Вы shouldn't be using the shell echo command, вместо этого используйте printf.

Используйте команду $(...) для подстановки команд вместо обратных кавычек, так как a) невозможно построить вложенную подстановку команд и b) форма $(...) более читаема.

Избегайте сложных конструкций оболочки в PHP. Если вам нужна сложная конструкция оболочки, вы должны создать отдельный файл для сценария оболочки.

Вы можете добавить запись crontab с помощью proc_open() без необходимости в трубах оболочки.