Как установить crontab с помощью php? - PullRequest
2 голосов
/ 19 февраля 2011

Мне нужно установить crontab из PHP-скрипта. я знаю, что это может быть установлено

system("echo '* * * * * echo \"Hello world\"' >> cron.crontab"); system("crontab cron.crontab"); //cron.crontab is the file name of the crontab

Файл "cron.crontab" создан в корневом каталоге, но crontab не работает должным образом! когда я пытаюсь выполнить следующую команду, он говорит, что crontab не установлен!

crontab -l

Я думаю, что что-то упустил. Я использую YII Framework. Есть ли расширение для обработки cron в рамках yii? Есть ли другой способ сделать это? Пожалуйста, помогите мне. Спасибо.

Ответы [ 3 ]

2 голосов
/ 19 февраля 2011

Вы используете crontab -l от имени того же пользователя, на котором работает веб-сервер?В противном случае вы не увидите его cronjobs.

2 голосов
/ 19 февраля 2011

Apache, как правило, не сможет работать с основным crontab. Тем не менее, у каждого пользователя также есть crontab, и вполне вероятно, что ваш код выше устанавливает crontab apache (или crontab для любого пользователя, с которым работает ваш сайт).

Попробуйте crontab -u apache -l или замените apache тем пользователем, которым работает ваш сайт, и посмотрите, есть ли введенные вами записи.

0 голосов
/ 19 февраля 2011

Обычно вы должны быть пользователем root, чтобы установить crontab, и в отличие от этого php работает от имени root, и в этом случае вам не повезло.

Редактировать: Не совсем не повезло. См. Ссылку в комментарии Себастьяна выше.

...