PHP скрипт не выполняется crontab

Я настроил cron для выполнения одного из моих php-скриптов. Но проблема в том, что php-скрипт вообще не выполняется, даже частично.

Вот cron, который я настроил

45 23 * * * /usr/bin/php -q /var/www/myscript.php

Я попробовал следующее

  1. Я удалил cron от обычного пользователя до пользователя root, но пока безрезультатно. ]
  2. Я изменил права доступа к сценарию, используя chmod +x /var/www/myscript.php
  3. Я использовал команду whereis php, которая дает следующее

    php: /usr/bin/php /usr/share/man/man1/php.1.gz
    

Теперь я не знаю, что еще я могу сделать. Пожалуйста, помогите.

P.S. Я могу выполнить сценарий вручную, и он отлично работает.

2
задан 28 February 2014 в 14:21

4 ответа

1. Как man php говорит нам ...

   --no-header
   -q             Quiet-mode. Suppress HTTP header output (CGI only).

   --file file
   -f file        Parse and execute file

-q ничего не делает в режиме php-cli. Как уже отмечали другие, вам нужно -f.

2. + x не требуется.

Вернуть его с помощью:

chmod -x /var/www/myscript.php

3. whereis даст вам все места. Если вы хотите просто двоичный файл, используйте which php.

$ which php
/usr/bin/php
0
ответ дан 28 February 2014 в 14:21

Я просто догадываюсь, но путь к месту размещения скрипта не должен быть

45 23 * * * / usr / bin / php / var / www / html / myscript .php

я все еще новичок в cron:)

0
ответ дан 28 February 2014 в 14:21

См. man cron и специфичные для Debian изменения. Цитата:

> Как описано выше, файлы в этих каталогах должны проходить некоторые проверки работоспособности, включая следующие: быть исполняемыми, принадлежать пользователю root, не быть доступными для записи для группы или других и, если символические ссылки, указывать к файлам, принадлежащим пользователю root. Кроме того, имена файлов должны соответствовать требованиям к имени файла для частей выполнения: они должны быть полностью состоят из букв, цифр и могут содержать только специальные знаки подчеркивания ('_') и дефисы ('-'). Любой файл, который не соответствует этим требованиям, не будет выполняться частями выполнения. Например, любой файл, содержащий точки, будет игнорироваться.

0
ответ дан 28 February 2014 в 14:21

Правильная строка crontab будет выглядеть следующим образом:

45 23 * * * /usr/bin/php -f /var/www/myscript.php

Обратите внимание на -f вместо -q!

0
ответ дан 28 February 2014 в 14:21

Другие вопросы по тегам:

Похожие вопросы: