2015-01-20 4 views
1

Попытки создать кронтаб для запуска PHP скрипта на моем AWS EC2 например Ubuntu:Crontab не в состоянии работать на AWS ec2 Ubuntu Instance

* * * * * /usr/bin/php /var/www/html/tides/get_tides.php?id=PASSWORD 

Не может заставить его выполнить.

Скрипт выполняется, когда я бегу в веб-браузере:

http://URL_NAME/tides/get_tides.php?id=PASSWORD 

Когда я бегу ", который в PHP в командной строке возвращает /usr/bin/php разрешения Directory/файлов (приливов & get_tides.php): 755

Если я бегу sudo /usr/bin/php /var/www/html/tides/get_tides.php?id=PASSWORD в командной строке я получаю: не удалось открыть входной файл:

/var/www/html/tides/get_tides.php?id=PASSWORD 

Любые предложения?

+0

В CLI нет такой строки, как строка запроса. – ceejayoz

ответ

1

Проблема вызвана не использовать абсолютные пути в моих хрон сценариев:

<?php 
$path = $_SERVER["DOCUMENT_ROOT"]; 
$file = "$path/cron-test.txt"; 

Я заменил $_SERVER["DOCUMENT_ROOT"] с /var/www/html

командной crantab является: * * * * * /usr/bin/php /var/www/html/cron-test.php

1

Там нет непосредственно способ запуска PHP scriping с ?id=PASSWORD, вы можете настроить cronjob бежать как

* * * * * /usr/bin/curl -o temp.txt http://URL_NAME/tides/get_tides.php?id=PASSWORD 

или

* * * * * /usr/bin/wget -q -O temp.txt http://URL_NAME/tides/get_tides.php?id=PASSWORD 

Поскольку вы не показали содержание в get_tides. php, возможно, вы можете передать аргументы командной строки скрипту PHP

php /var/www/html/tides/get_tides.php PASSWORD 

и обновить РНР:

<?php 
// $argv[0] is '/var/www/html/tides/get_tides.php' 
$id = $argv[1]; 
?> 
+0

У меня, кажется, несколько проблем. Я решил использовать $ argv, но базовые скрипты не работают через cron. Я пытался запустить следующий тестовый скрипт: $ path = $ _SERVER ["DOCUMENT_ROOT"]; $ file = "$ path/cron-test.txt"; $ data = date ("l d M Y: H: i"). "\ Г \ п"; if (($ fp = fopen ($ file, "a"))! == false) { fwrite ($ fp, $ data); fclose ($ fp); } Сценарий создает текстовый файл, если я запускаю его через веб-браузер, но не из следующей команды cron: * * * * */usr/bin/php /var/www/html/cron-test.php Что мне не хватает? – user2417713