desenv-web-rp.com

Como faço para editar / modificar um arquivo em um servidor web usando o arquivo php no mesmo local?

Eu tenho um arquivo XML no meu servidor. No mesmo diretório, tenho um arquivo PHP que modifica o conteúdo do XML e o salva. Nesse caso, a parte salva não funciona. No meu conhecimento, o código está bom e o problema está nas persuasões de acesso a arquivos.

Mais detalhes disponíveis aqui: https://stackoverflow.com/questions/3351652/how-to-save-an-xml-file-on-the-web-server-using-php (Existe nada de errado com o código. Forneci-o para fornecer mais informações. O problema parece estar nas permissões de acesso)

As permissões do arquivo XML são: rw-r - r-- (644)

Minha pergunta é: estou fazendo certo? Como modifico um arquivo no mesmo diretório?

4
San

A resposta será alterada dependendo de quem possui os direitos desse arquivo. Por exemplo, quando eu crio um arquivo em nosso servidor com nosso cliente FTP (filezilla), o proprietário é o nome de usuário da nossa conta FTP, mas se criarmos o arquivo usando PHP, o proprietário será www-data.

Dito isto, observando seus direitos, vejo que apenas o proprietário tem o direito de escrever em seu arquivo, o grupo e outros apenas têm acesso de leitura. Aqui está uma calculadora que usarei frequentemente para descobrir quais direitos dar ao comando chmod (http://www.onlineconversion.com/html_chmod_calculator.htm). É bastante intuitivo, mas acho que você precisará conceder acesso de gravação ao grupo.

Espero que ajude :)

0
Gazillion

Talvez eu esteja ignorando alguma coisa, mas parece que você forneceu apenas acesso de gravação ao proprietário, que já foi estabelecido como provavelmente algo diferente do usuário do seu servidor PHP/Web, portanto, não há permissão para escrever.

Você pode garantir que o usuário esteja no grupo "www-data" (ou o grupo que o servidor da Web estiver usando) e adicionar permissão de gravação ao grupo "chmod g + w filename.xml"

Ou você pode colocar esse arquivo no grupo "www-data" com "chown www-data: www-data filename.xml"

0
dmsnell