Выполнить PHP-скрипт в работе cron

На нашем сервере centos6. Я хотел бы выполнить php-скрипт в задании cron как пользователь apache, но, к сожалению, он не работает.

вот издание crontab (crontab -uapache -e)

24 17 * * * php /opt/test.php 

и вот исходный код файла «test.php», который отлично работает с пользователем «apache» в качестве владельца.

 <?php exec( 'touch /opt/test/test.txt');?> 

Я пытаюсь заменить php полным путем php (/ usr / local / php / bin / php), но также он не работает

Заранее спасибо, пожалуйста, помогите мне

Автоматизированные задачи: Cron

Cron – это служба планирования по времени в операционных системах Linux / Unix. Задача Cron используется для планирования команд, которые будут выполняться периодически. Вы можете настроить команды или скрипты, которые будут повторяться в заданное время. Cron – один из самых полезных инструментов в Linux или UNIX, таких как операционные системы. Служба cron (daemon) работает в фоновом режиме и постоянно проверяет файл / etc / crontab , / etc / cron. / * каталогов. Он также проверяет каталог / var / spool / cron / .

Настройка задач Cron

В следующем примере команда crontab, показанная ниже, автоматически активирует задачи cron каждые десять минут:

 */10 * * * * /usr/bin/php /opt/test.php 

В приведенном выше примере * / 10 * * * * означает, когда задача должна произойти. Первая цифра представляет минуты – в этом случае, каждую минуту. Другие цифры представляют, соответственно, час , день , месяц и день недели .

* является подстановочным знаком, означающим «каждый раз» .

Начните с поиска своего двоичного кода PHP , введя в командной строке:

 whereis php 

Результат должен выглядеть примерно так:

php: / usr / bin / php /etc/php.ini /etc/php.d / usr / lib64 / php / usr / include / php / usr / share / php /usr/share/man/man1/php.1 .gz

Правильно укажите полный путь в вашей команде.

Введите следующую команду для ввода cronjob:

 crontab -e 

Чтобы узнать, что у вас есть в кронтабе .

ИЗМЕНИТЬ 1:

Чтобы выйти из редактора vim без сохранения, просто нажмите:

 Shift+: 

А затем введите q!

У меня была такая же проблема … Мне пришлось запускать ее как пользователь.

 00 * * * * root /usr/bin/php /var/virtual/hostname.nz/public_html/cronjob.php 

Возможно, вам нужно запустить задание cron как пользователь с разрешениями на выполнение скрипта PHP. Попробуйте выполнить задание cron как root, используя команду runuser ( man runuser ). Или создайте систему crontable и запустите PHP-скрипт как авторизованный пользователь, как описано в @Philip.

Я подробно расскажу, как использовать cron в этой статье stackoverflow.

Как написать cron, который будет запускать скрипт каждый день в полночь?