Permitir que o PHP grave arquivos sem o 777

4

Estou configurando um site simples no espaço da Web fornecido pela minha universidade. Eu não tenho acesso ao banco de dados, então estou armazenando todos os dados em um arquivo simples. O problema que estou tendo está relacionado às permissões de arquivo. Eu preciso que o PHP seja capaz de ler e gravar o arquivo de dados, mas eu realmente não quero configurar o arquivo para o 777, pois qualquer outra pessoa no sistema poderia modificá-lo, eles já têm acesso de leitura aos diretórios da web de todos. Alguém tem alguma idéia de como realizar isso?

Obrigado antecipadamente

    
por camerongray 18.09.2012 / 15:03

4 respostas

4

Basta definir 0755 (ou menos), mas certifique-se de que o proprietário do diretório seja usuário, em que contexto está o apache (ou outro servidor da Web) em execução.

por exemplo

chown apache:apache /var/www/html

Você pode obter informações sobre o usuário usando phpinfo (), por exemplo.

UPDATE

Se você estiver compartilhando o apache com mais sites, deverá separar seu conteúdo por diretórios da web por usuário

link

    
por 18.09.2012 / 15:08
4

Você pode usar o suPHP para realizar essa tarefa. Se você puder usá-lo, simplesmente mude as permissões do arquivo para 0700 e tudo funcionará como você deseja.

    
por 18.09.2012 / 15:52
2

A situação ideal seria se o sistema de arquivos no servidor fosse compatível com o posix acls, para que você pudesse adicionar acesso de gravação a determinados arquivos para o uid em que o servidor web é executado.

E você tem acesso suficiente ao sistema de arquivos (preferencialmente através de uma conta shell) para definir os direitos acl.

Veja man acl para uma visão geral e man setfacl para detalhes sobre como configurá-los.

    
por 18.09.2012 / 15:08
0

Você pode usar o comando abaixo para definir a permissão de leitura / gravação:

sudo chown www-data PATH

Se o www-data não existir, você poderá substituí-lo por apache: apache ou apache .

    
por 31.03.2015 / 12:20