Last active
          March 12, 2017 04:37 
        
      - 
      
 - 
        
Save igoralves1/0e00a9a5f438d3aa3d91271abcb6aa0b to your computer and use it in GitHub Desktop.  
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | #Erro no browser | |
| The test.app page isn’t working | |
| dref.app is currently unable to handle this request. | |
| HTTP ERROR 500 | |
| #=================================================== | |
| #Verificando o erro no arquivo /var/log/nginx$ test.app-error.log | |
| ila@ig:/var/log/nginx$ gedit test.app-error.log | |
| 2017/03/11 15:10:08 [error] 9306#9306: *1 FastCGI sent in stderr: | |
| "PHP message: PHP Fatal error: | |
| Uncaught UnexpectedValueException: The stream or file "/home/ila/vhosts/test.app/storage/logs/laravel.log" | |
| could not be opened: failed to open stream: Permission denied in | |
| /home/ila/vhosts/test.app/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107 | |
| Stack trace: | |
| #0 /home/ila/vhosts/test.app/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\Handler\StreamHandler->write(Array) | |
| #1 /home/ila/vhosts/test.app/vendor/monolog/monolog/src/Monolog/Logger.php(337): Monolog\Handler\AbstractProcessingHandler->handle(Array) | |
| #2 /home/ila/vhosts/test.app/vendor/monolog/monolog/src/Monolog/Logger.php(616): Monolog\Logger->addRecord(400, Object(UnexpectedValueException), Array) | |
| #3 /home/ila/vhosts/test.app/vendor/laravel/framework/src/Illuminate/Log/Writer.php(203): Monolog\Logger->error(Object(UnexpectedValueException), Array) | |
| #4 /home/ila/vhosts/test.app/vendor/laravel/framework/src/Illuminate/Log/Writer.php(114): Illuminate\Log\Writer->write... | |
| PHP message: PHP Fatal error: | |
| Uncaught UnexpectedValueException: The stream or file "/home/ila/vhosts/test.app/storage/logs/laravel.log" | |
| could not be opened: failed to open stream: Permission denied in | |
| /home/ila/vhosts/test.app/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107 | |
| Stack trace: | |
| #0 /home/ila/vhosts/test.app/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\Handler\StreamHandler->write(Array) | |
| #1 /home/ila/vhosts/test.app/vendor/monolog/monolog/src/Monolog/Logger.php(337): Monolog\Handler\AbstractProcessingHandler->handle(Array) | |
| #2 /home/ila/vhosts/test.app/vendor/monolog/monolog/src/Monolog/Logger.php(616): Monolog\Logger->addRecord(400, Object(Symfony\Component\Debug\Exception\FatalErrorException), Array) | |
| #3 /home/ila/vhosts/test.app/vendor/laravel/framework/src/Illuminate/Log/Writer.php(203): Monolog\Logger->error(Object(Symfony\Component\Debug\Exception\FatalErrorException), Arr | |
| ============================================================================================ | |
| O erro não é muito claro... | |
| Diz que o arquivo "/home/ila/vhosts/test.app/storage/logs/laravel.log" não pode ser aberto! | |
| Não pode ser lido? | |
| O que não é verdade pois usuários u(User), grupos g(Group) e outros o(others) podem todos lêr | |
| r(Read) ==> drwxrwxr-x. | |
| O fato é que ANTES da primeira vez que o Laravel é carregado NÃO EXISTE O ARQUIVO | |
| "/home/ila/vhosts/test.app/storage/logs/laravel.log", pq alguém (que não é o USER ou o GROUP) | |
| NÃO CONSEGUIU CRIÁ-LO. | |
| Aguma função que se encontra em | |
| "/home/ila/vhosts/test.app/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107" | |
| NÃO ESTÁ CONSEGUINDO ABRIR SIMPLISMENTE PQ ELE NÃO EXISTE (NÃO FOI CRIADO). | |
| RESULTADO - Entáo parece que a manenira lógica de resolver o erro é permitir que OUTROS possam | |
| ter direito de escritura w(write) no folder "/home/ila/vhosts/test.app/storage/...", então o arquivo | |
| poderá ser criado por alguma fução e lido por ".../StreamHandler.php:107". | |
| O fato é: quem é esse "outro" o(Others) que está usando o laravel e pq o Usuário do meu sistema | |
| aqui no caso ila ou o grupo www-data do NGINX não consegue fazer a tarefa, já que ele possuem permissão | |
| de leitura r(Read), escritura w(Write) e execução x(Execute)? | |
| Uma resposta imediata MAS NÃO LÓGICA seria atribuir permissão rwx para o(Others) | |
| Assim: ila@ig:~/vhosts/test.app(master)$ sudo chmod guo+w -R storage/ transforma a pasta | |
| ".../storage/..." em rwx rwx rwx, o que parece comprometer a segurança da aplicação Laravel. | |
| ============================================================================================ | |
| ila@ig:~/vhosts/test.app/storage(master)$ ll | |
| total 20 | |
| drwxrwxrwx 5 ila www-data 4096 Mar 11 13:43 ./ | |
| drwxr-xr-x 15 ila www-data 4096 Mar 11 14:48 ../ | |
| drwxrwxr-x 3 ila www-data 4096 Mar 11 13:43 app/ | |
| drwxrwxr-x 5 ila www-data 4096 Mar 11 13:43 framework/ | |
| drwxrwxr-x 2 ila www-data 4096 Mar 11 13:43 logs/ | |
| #Dar permissão de escrever w(Write) para g(grupo) u(user) o(other) para o diretório storage/ de forma recursiva -R | |
| ila@ig:~/vhosts/test.app(master)$ sudo chmod guo+w -R storage/ | |
| #Verificando | |
| ila@ig:~/vhosts/test.app/storage(master)$ ll | |
| total 20 | |
| drwxrwxrwx 5 ila www-data 4096 Mar 11 13:43 ./ | |
| drwxr-xr-x 15 ila www-data 4096 Mar 11 14:48 ../ | |
| drwxrwxrwx 3 ila www-data 4096 Mar 11 13:43 app/ | |
| drwxrwxrwx 5 ila www-data 4096 Mar 11 13:43 framework/ | |
| drwxrwxrwx 2 ila www-data 4096 Mar 11 13:43 logs/ | |
| Aqui nesse ponto já não existe mais o erro pois o arquivo "laravel.log" | |
| já foi criado por alguém o(Others) e lido por algum usuário que agora | |
| não sei mais se é ila ou www-data ou others. | |
| NOTE que haverá outros erros semelhantes (Permission denied) se em algum momento | |
| algum usuário não conseguir ler, criar ou executar arquivos dentro de pastas ou arquivos. | |
| Nesse ponto sobra 3 opções: | |
| 1-Verificar o folder envolvido no erro e garantir permissão 777 para ele, | |
| 2-Atribuir 777 para todas as pastas $ sudo chmod guo+w -R test.app/ | |
| 3-Adicionar u(User) no grupo www-data e vice-versa e garantir permissão rwx para ambos em todos | |
| os folders e arquivos. (Essa abordagem é estranha mas parece ser a mais correta. Eu ainda não testei em | |
| todos os cenários, principalmente quando o processo usa o(Others) para executar, como é o caso desse post). | |
| ila@ig:~/vhosts/test.app/storage/logs(master)$ ll | |
| total 20 | |
| drwxrwxrwx 2 ila www-data 4096 Mar 11 15:26 ./ | |
| drwxrwxrwx 5 ila www-data 4096 Mar 11 13:43 ../ | |
| -rw-rw-rw- 1 ila www-data 14 Mar 11 13:43 .gitignore | |
| -rw-r--r-- 1 www-data www-data 4626 Mar 11 23:22 laravel.log | 
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment