2015-01-20 4 views
0

У меня есть 2 файла .php в моем приложении - book.php и weather.php. Я создаю файл с именем «runningcript» в /.openshift/cron/minutely. Содержание этого файла:Openshift cron не запускает файл php

#!/bin/bash 

php -f $OPENSHIFT_REPO_DIR/weather.php 

Этот сценарий отправляет мне сообщение на телефон каждую минуту, все в порядке. Тогда я заменить на:

php -f $OPENSHIFT_REPO_DIR/book.php 

Этот сценарий должен послать мне сообщение тоже, но ничего не happing. Но если я просто запустил этот скрипт с помощью своего веб-браузера (перейдите на http://xxx-xxxxxxx.rhcloud.com/book.php), поэтому я получил свое сообщение. Как это возможно? Магия?

+0

У вас есть установленный картридж cron? – ptrk

+0

Хорошо, ребята, спасибо за ваши ответы. Я добавил в конце кода book.php, который записывает файл журнала, и он отлично работает. Но первая часть кода не работает. Эта часть должна написать какой-то текст на каком-то сайте. Если я запустил его в браузере - он пишет. Если он работает с cron - не пишет. Зачем? – tadiuzzz

ответ

0

Вы пропустили часть #!/bin/bash? Это необходимо для запуска сценария оболочки.

0

Для чего ваше задание cron не выполняется, проверьте журналы cron на OpenShift. Вы можете найти их на ~/app-root/logs/cron_*.log, когда вы используете SSH в своем снаряжении.

Удостоверьтесь, что ваше задание cron можно использовать с помощью chmod и имеет линию shebang, как говорит @gnaanaa. Также проверьте, есть ли у вас один из файлов .openshift/cron/minutely/jobs.{allow,deny}, поскольку они могут привести к тому, что cron пропустит вашу работу. (См cron README для получения дополнительной информации.)

И после того, как ваш хрон работает, вы можете избавиться от сценария упаковщика runscript и есть хрон вызова book.php непосредственно. Чтобы сделать это, поместите book.php непосредственно в .openshift/cron/minutely, сделать его исполняемым и добавить этот притон к нему:

#!/usr/bin/env php 

Надеется, что это помогает.

0

Я использую openshift, а также выполняю файл php с помощью cron.

#!/bin/bash 
php ${OPENSHIFT_REPO_DIR}index.php 

Выполняет сценарий, как правило, с первого взгляда. Однако выпуск продукции не производился. Проблема заключалась в том, что все необходимые файлы php не могли быть загружены, потому что рабочий каталог не был таким же, как при загрузке веб-сервера. Установка рабочей директивы в самом скрипте php предотвратит эту ошибку и сделает скрипт отлично исполняемым cron.

Это должно помочь некоторым людям запустить их скрипт.

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