У меня есть PHP-скрипт, который просто отправляет мне тестовое сообщение по электронной почте. Если я зайду в cPanel своего веб-сервера, я смогу создать cronjob, который запускает скрипт каждые 10 минут, и он отлично работает.
Я вручную планирую задание cron в cPanel, используя следующие настройки:
10 * * * * php -q /home1/user1/public_html/mail.php
Опять же, вышеприведенное работает нормально, но когда я пытаюсь создать задание cron через PHP вместо cPanel, оно никогда не запускается. Когда я проверяю cPanel, чтобы увидеть, действительно ли задание было создано моим php-скриптом, оно ДЕЙСТВИТЕЛЬНО появляется. Все настройки, которые отображаются в cPanel, верны, просто скрипт не запускается.
Это код PHP, который я использую для создания задания cron:
$output = shell_exec('crontab -l');
file_put_contents('/tmp/crontab.txt', $output.'10 * * * * php -q /home1/user1/public_html/mail.php'.PHP_EOL);
echo exec('crontab /tmp/crontab.txt');
Я предполагаю, что это может быть проблема с разрешением или что-то в этом роде? Не совсем уверен, почему задание работает, когда я его создаю, но не работает, когда его создает PHP.