Проблемы с правами доступа при попытке запустить скрипт PHP как CRONJOB

Я использую Ubuntu 16.04. Я пытаюсь запустить скрипт PHP, расположенный в /var/www/html/CronScripts/, как cronjob. Все, что делает этот скрипт, это создает файл .txt или .out в том же каталоге. Вот сценарий:

 <?php 

$handle = fopen("theFileHandle.out", "a");
fwrite($handle, "The quick brown fox jumps over a lazy dog.\n");
fclose($handle);

?>

Теперь проблема в том, что когда я выполняю этот скрипт, открывая его в браузере, я получаю следующие ошибки:

Warning: fopen(theFileHandle.out): failed to open stream: Permission denied in /var/www/html/CronScripts/index.php on line 3

Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/html/CronScripts/index.php on line 4

Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/html/CronScripts/index.php on line 5

ТАК мой вывод было то, что если этот скрипт запускается как sudo , не будет проблем с разрешением; и поскольку я в конечном итоге собираюсь запустить скрипт в cronjob, я выполнил следующую команду в терминале

sudo crontab -e

, чтобы добавить следующий cronjob в файл crontab пользователя sudo .

* * * * * php /var/www/html/CronScripts/index.php > /var/www/html/CronScripts/output.out

После этого был создан файл с именем output.out, НО ЭТО БЫЛО ПУСТОЙ.

Затем из моего веб-поиска я пришел к выводу, что я добавляю cronjob в crontab пользователя sudo, но apache2 / php запускается пользователем www-data , так что, вероятно, это проблема. Поэтому я переключил пользователя на www-data, выполнив su -s /bin/bash www-data, а затем в его crontab я добавил * * * * * php /var/www/html/CronScripts/index.php > /var/www/html/CronScripts/out.out НО выходной файл журнала out.out никогда не создается.

Итак, мой вопрос: почему я сталкиваюсь с этой проблемой и как мне ее решить?

0
задан 23 December 2017 в 14:59

0 ответов

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

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