Não é possível criar o arquivo em / var / www / html

1

Estou executando o Ubuntu versão 14.04, e tenho um servidor apache2 configurado para hospedar alguns arquivos php no localhost que estão armazenados em /var/www/html .

Quando tento executar o seguinte código em um dos meus scripts php

<?php
$file = fopen("test.txt","w");
fwrite($file,"Hello World. Testing!");
fclose($file);
?>

Eu não encontro um arquivo armazenado em meu / var / www / html chamado test.txt, ou em qualquer lugar no meu computador após a pesquisa. O nome do arquivo ainda não existe e estou usando sudo nautilus porque não tenho as permissões necessárias para editar os arquivos php dentro do /var/www/html . Por que os arquivos não estão aparecendo na minha pasta /var/www/html e como posso corrigir isso para que o arquivo seja criado?

    
por John Lee 02.11.2014 / 14:28

1 resposta

4

Acabei de testar seu arquivo php no meu servidor e ele funciona muito bem.

O problema deve ser que o usuário www-data não tenha permissões de gravação para essa pasta.

Se, de fato, esse usuário não tiver permissões de gravação para essa pasta, você verá mensagens de erro no arquivo /var/log/apache2/error.log

Para ver os últimos erros, faça

tail -n 15 /var/log/apache2/error.log

Por exemplo, se eu, em vez de "test.txt", coloco "/test.txt" (escrevo para /, eram apenas root can) recebo este erro dentro do arquivo de log:

[:error] [pid 7505] [client 127.0.0.1:47066] PHP Warning:  fopen(/test.txt): failed to open stream: Permission denied in /var/www/html/a.php on line 2

O texto acima afirma claramente que a permissão é negada.

Você pode corrigir esse problema dando permissão de gravação para essa pasta para o usuário www-data .

dê permissão específica ao usuário para escrever para uma pasta usando a notação + w

    
por hytromo 02.11.2014 / 14:40