2013-10-09 3 views
3

У меня есть файл automate.php с строкой подключения mysql и несколькими запросами PHP/SQL, и я хочу запустить файл на Cronjob.Запуск PHP-файла на Cronjob в cPanel

Я попытался просто использовать полный URL, как:

http://www.domain.com/script.php 

локальный путь:

/home/your_username/public_html/script.php 

, а также:

php -f -q /home/your_username/public_html/script.php 

я получаю электронную почту каждый раз, когда это run и его просто говорят: Не указан входной файл.

что я делаю неправильно?

+0

и то, что '$ PHP/дома/your_username/public_html/script.php' возвращается? – Koryonik

+0

Когда в моем SQL-запросе нет строк, они просто перекликаются с текстом «Нет писем для отправки»; – user2710234

+0

сервер отправляет электронное письмо каждый раз, когда задание cron запускается с результатами/ошибками – user2710234

ответ

3

использовать эту команду

на каждые 5 minite

*/5 * * * * wget http://www.domain.com/script.php 
+0

Лучше не иметь скриптов cron, доступных в webroot – tlenss

+0

Я проверяю, что это нормально работает –

+2

Это не о том, работает ли он нормально. Если люди выяснят, что они могут вызвать cron-скрипт из URL-адреса, это может привести к очень нежелательным результатам. Используйте локальный путь. – tlenss

3

Это звучит как проблема с разрешениями. Убедитесь, что пользователь cron runner имеет исполняемые разрешения для этого файла php. Также сделайте файл исполняемым:

chmod +x /path/to/script.php 

В верхней части файла добавьте:

#! /usr/bin/env php 

Теперь сценарий должен быть в состоянии работать на своих собственных:

*/5 * * * * /path/to/script.php 
+0

теперь говорит/usr/local/cpanel/bin/jailshell: /home/integra/public_html/automate/integra/scripts/send_queued_emails.php: Разрешение отклонено – user2710234

+0

Я добавил то, что вы сказали (#!/Usr/bin/env php) в верхней части php-файла – user2710234

+0

@ user2710234, когда вы смотрите на разрешения для этого файла, вы уверены, что это выполнимо пользователем cron? –

Смежные вопросы