Permissões do servidor PHP para arquivos e diretórios concedidas, mas ainda não permitidas

Permissões do servidor PHP para arquivos e diretórios concedidas, mas ainda não permitidas

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

"Aviso: fopen(file.txt): falha ao abrir stream: Permissão negada em /home/cabox/workspace/index.php na linha 312"

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

Perguntei ao CodeAnywhere se havia alguma restrição vinda deles para evitar que os usuários tivessem código capaz de criar arquivos diretamente no servidor, mas fui respondido que não havia restrições e só tive que pesquisar como conceder permissões.

Chmod usado pela primeira vez para arquivos e diretórios

chmod 755 index.php (depois 777 para fins experimentais)

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

/

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

/lar/

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

/home/cabox/

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

/home/cabox/espaço de trabalho/

[cabox@box-codeanywhere espaço de trabalho]$ ls -ld
drwxrwxrwx 4 cabox cabox 4096 19 de abril 04:27

Não consigo alterar as permissões para/como o nome de usuário éraiz Imagino que seja porque meu nome de usuário écabox

[espaço de trabalho cabox@box-codeanywhere]$ id
uid=500(cabox) gid=500(cabox) groups=500(cabox)

index.php tentando criar o arquivo.txt está localizado em/home/cabox/espaço de trabalho/

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

O que estou fazendo de errado?

Desde já, obrigado!

Responder1

Depois de muita experimentação, descobri que havia configurado meu ambiente de desenvolvimento de máquina virtual como Html5 e não php. Os arquivos PHP estavam funcionando corretamente porque o servidor era apache, mas por algum motivo que ainda me escapa, o gerenciamento de permissões é diferente.

Depois de mudar o ambiente para PHP, comandos que não funcionavam anteriormente funcionaram e finalmente foi possível resolver o problema.

Aqui está a "solução" a ser tomada com cautela, pois minha proficiência no assunto é bastante limitada

Dar ao seu próprio usuário (cabox) o direito 775 não adianta nada, pois apenas o usuário 'www-data' tem o direito de criar, modificar, deletar arquivos no servidor, quando o site estiver 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', perco a capacidade de trabalhar no servidor, criar, modificar, excluir arquivos. Achei que a solução era definir os direitos de usuário (cabox) e grupo (www-data) e dar a eles os mesmos direitos, mas até agora isso não funcionou, então ainda preciso descobrir essa parte

Espero que ajude as pessoas que encontrarão o mesmo problema no futuro. Levei uma semana, uma semana bastante frustrante :)

Responder2

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

chown nome de usuário -R suapasta

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

Responder3

Talvez isso pudesse funcionar, eu estava tendo o mesmo problema e depois de 3 horas de pesquisa no Google tentei isso:

Permissão de pasta

A última e última coisa que você precisa fazer para concluir a instalação é definir as permissões da pasta. Para fazer isso, abra sua linha de comando e digite:

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 de permissão que estava tendo.

informação relacionada