Проблема Debian 9 с разрешениями crontab - PullRequest
0 голосов
/ 26 февраля 2020

Я установил Debian 9 на свой VPS. Я установил ЛАМПУ на сервер. Я вошел как root, я создал новый сайт "/ var / www/example.com" и вижу, что права доступа "root: root". Веб-страница отображается в браузере.

Я создал файл cron. php, который записывает текущее время в файл. В crontab у меня есть / usr / bin / php / var / www/example.com/cron.php. Если я запускаю эту команду через терминал, все работает. Однако Crontab возвращает ошибку, потому что у него нет прав на запись. Тем не менее, Crontab работает как root. Каталог имеет разрешения 777.

Я пытался установить / var / www*1014* как www-data: www-data и то же самое для crontab (crontab -u www-data -е). Результат тот же, cron запускается, но не записывает в файл.

РЕДАКТИРОВАТЬ: Я обнаружил, что если скрипт содержит: file_put_contents ('output.txt', 'xxx'); файл, созданный cron, находится в root. Если я установлю полный путь, все будет хорошо: file_put_contents ('/ var / www/exmaple.com/output.txt', 'xxx'); Есть ли способ изменить это поведение?

1 Ответ

0 голосов
/ 27 февраля 2020

Вы можете создать пример сценария следующим образом:

#!/bin/bash
source ~/.bashrc #or use .bash_profile
/usr/bin/php /var/www/example.com/cron.php >>/path/to/output

и добавить его как cron запись:

0 * * * * /path/to/script/sh
...