permissões de servidor PHP para arquivos e diretórios concedidos, mas ainda não permitidos

2

Eu tenho o código PHP no Codeanywhere, onde estou simplesmente tentando criar um arquivo no servidor, mas ainda recebe o seguinte erro:

"Warning: fopen(file.txt): failed to open stream: Permission denied in /home/cabox/workspace/index.php on line 312"

Eu uso fopen ($ file, 'w'). com 'r' como parâmetro, funciona.

Eu perguntei ao CodeAnywhere se havia alguma restrição vindo deles para impedir que os usuários tivessem código capaz de criar arquivos diretamente no servidor, mas foi atendido que não havia restrições e só precisava procurar como conceder permissões.

Primeiro Chmod usado para arquivos e diretórios

chmod 755 index.php (afterwards 777 for experimental purposes)

No entanto, ainda sou confrontado com a mensagem de erro mostrada acima. Então eu procurei as permissões em cada nível do servidor e as mostrei abaixo, mas não vejo nada de estranho (de acordo com meu conhecimento insuficiente)

/

[cabox@box-codeanywhere /]$ ls -ld
drwxr-xr-x 21 root root 4096 Apr 19 03:09

/ home /

[cabox@box-codeanywhere home]$ ls -ld
drwxr-xr-x 3 root root 4096 Jun 16 2014

/ home / cabox /

[cabox@box-codeanywhere ~]$ ls -ld
drwxrwxrwx 7 cabox cabox 4096 Apr 14 11:48

/ home / cabox / workspace /

[cabox@box-codeanywhere workspace]$ ls -ld
drwxrwxrwx 4 cabox cabox 4096 Apr 19 04:27

Não é possível alterar as permissões para / porque o nome de usuário é root Eu imagino que é porque meu nome de usuário é cabox

[cabox@box-codeanywhere workspace]$ id
uid=500(cabox) gid=500(cabox) groups=500(cabox)

index.php tentando criar o arquivo.txt está localizado em / home / cabox / workspace /

-rwxrwxrwx 1 cabox cabox 18608 Apr 19 05:12 index.php

o que estou fazendo errado?

Obrigado antecipadamente!

    
por Flowerist 19.04.2015 / 11:38

3 respostas

1

Após muita experimentação, descobri que tinha configurado meu ambiente de desenvolvimento de máquina virtual como Html5 e não php. Os arquivos PHP estavam funcionando corretamente, pois o servidor era o apache, mas por alguma razão que ainda me escapa, o gerenciamento da permissão é diferente.

Depois de mudar o ambiente para o PHP, os comandos que não funcionavam anteriormente foram capazes de descobrir o problema.

Aqui está a "solução" a ser tomada com um grão de sal, pois minha proficiência na questão é bastante limitada

Dando seu próprio usuário (cabox), o 775 não faz nada, já que apenas o usuário 'www-data' tem o direito de criar, modificar, deletar arquivos no servidor, quando o site está sendo executado.

sudo chown -R www-data:www-data /home/cabox/workspace chmod 775 /home/cabox/workspace

isso funcionou.

Agora, no codeanywhere, se eu alterar o nome de usuário para 'www-data', perderei minha capacidade de trabalhar no servidor, criar, modificar, excluir arquivos. Eu pensei que a solução era definir os direitos como usuário (cabox) e grupo (www-data) e dar a eles os mesmos direitos, mas até agora isso não funcionou, então ainda precisamos descobrir esse bit

Espero que ajude as pessoas que encontrarão o mesmo problema no futuro. Demorei uma semana, um pouco frustrante:)

    
por 25.04.2015 / 17:31
0

Você pode querer alterar o proprietário do arquivo ou diretório

chown username -R yourfolder

Eu tive o mesmo problema e isso corrigiu meu problema ..

    
por 19.04.2015 / 18:51
0

Talvez isso possa funcionar, eu estava tendo o mesmo problema e depois de 3hs de googles eu tentei isso:

Folder Permission

The last and final thing you need to do to complete your installation is to set the folder permissions. To do this, open up your command line and type:

sudo find . -type f -exec chmod 664 {} + 
sudo find . -type d -exec chmod 775 {} + 
sudo chown -R vm_username:www-data ~/workspace

pelo menos para mim, resolva o problema da permissão que eu estava tendo.

    
por 25.08.2016 / 16:48