Permission Problems ao tentar executar o script PHP como um CRONJOB

0

Estou executando o Ubuntu 16.04. Eu estou tentando executar um script PHP localizado em /var/www/html/CronScripts/ como um cronjob. Tudo o que esse script faz é criar um arquivo .txt ou .out no mesmo diretório. Aqui está o script:

 <?php 

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

?>

Agora, o problema é que, quando executo esse script abrindo-o no navegador, obtenho os seguintes erros:

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

ASSIM, minha inferência é que, se esse script for executado como sudo , não haverá PROBLEMAS DE PERMISSÃO; e como vou finalmente executar o script em um cronjob, executei o seguinte comando no terminal

sudo crontab -e

para adicionar o cronjob seguinte ao arquivo crontab do usuário sudo .

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

Depois disso, um arquivo chamado output.out WAS foi criado, MAS ESTAVA EMPTY.

ENTÃO, da minha pesquisa na Web, concluí que estava adicionando o cronjob ao crontab do usuário sudo, mas o apache2 / php é executado pelo usuário www-data , então esse é provavelmente o problema. Então, mudei o usuário para www-data executando su -s /bin/bash www-data e, em seguida, para seu crontab, adicionei * * * * * php /var/www/html/CronScripts/index.php > /var/www/html/CronScripts/out.out , mas o arquivo de log de saída out.out nunca foi criado.

Então, minha pergunta é por que estou enfrentando esse problema e como resolvo isso?

    
por JBel 23.12.2017 / 12:59

0 respostas