5
respostas

failed to open stream: Permission denied in ...

Utilizo Linux Mint e tive um problema quando o uploadClass.php faz o upload da imagem para o container.

Ele exibe a mensagem de acesso negado e para corrigir basta entrar no container da aplicação de notícia:

sudo docker exec -it [ID_CONTAINER] bash

E em seguida entre no diretório /uplodads para dar as permissões de gravação nesta pasta, neste caso eu utilizei a permissão full:

find . -type d -exec chmod 755 {} ;

Desta forma a aplicação conseguiu realizar o upload das imagens dentro do diretório /uploads.

5 respostas

Olá Danilo, tudo bem? É isso mesmo, na maioria dos sistema Linux vamos precisar realizar esse procedimento de permissões. Muito legal sua contribuição aqui na comunidade. Continue assim e bons estudos!

Danilo, Estou com problema parecido, mais é no kubernetes e NÃO no docker..

Erro = Warning: imagepng(uploads/img1586646554.png): failed to open stream: Permission denied in /var/www/html/uploadClass.php on line 114

Já dei permissão no diretório updoads e nada.. já até entrei no conteiner do kubernetes pra ver a linha 114 aparentemente sem problemas também coloquei 777 no arquivo "uploadClass.php " também não resolveu.

$ kubectl exec -it aplicacao-sistema-deployment-5887fc6694-h2hxz bash

$ vim uploadClass.php +114

linhas de 109 até 115

109 {

               $image   = imagecreatefrompng($img);
                 imagealphablending($image_p, false);
               imagesavealpha($image_p,true);
                imagecopyresized($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);
                return imagepng($image_p, $nome_foto)

115 }

João Paulo, você pode ir pelo terminal e colocar as permissões, se você estiver usando um sistema Linux, você pode fazer isso indo até a pasta do projeto e executando o seguinte comando:

sudo chmod -R 755 /uploads

Espero ter ajudado!

A solução foi:

1 - entrar no container dentro do pod do kubernetes com o comando

$ kubectl exec -it aplicacao-sistema-deployment-5887fc6694-h2hxz bash

obs: Quando entrar no container você já fica no diretório /var/www/html e é nesse diretório que se encontra o diretório ** uploads **

2 - Configurar a permissão do diretorio com o comando abaixo:

$ chmod -R 777 uploads/

Que legal que conseguiu resolver João Paulo e melhor ainda que compartilhou a solução aqui na comunidade!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software