Testando um arquivo php para a escola com função fopen (), o que não funciona devido a… problemas de permissão?

1

Estou usando o Ubuntu no meu laptop. Toda vez que eu o ligo, e depois que o Ubuntu inicializa, ele me pergunta pela minha senha de administrador, que eu forneço, para poder usá-lo. Eu instalei o Sublime2 e estou aprendendo meus primeiros passos em PHP / MySQL Eu estou usando este laptop ubuntu na minha aula de programação. Hoje, precisávamos fazer alguns testes de fopen () pela primeira vez.

Eu criei um arquivo e adicionei a ele este código:

error_reporting(E_ALL ^ E_NOTICE);
$fp=fopen("prueba.txt",'w');
fwrite($fp, 'Curso de PHP');
fclose($fp);
echo 'Horray';

Agora, quando tento executar o arquivo (estou usando o Xampp como meu apache local e estou usando o chrome como meu navegador), eu recebo este erro (e o arquivo não é criado de jeito nenhum):

Warning: fopen(prueba.txt): failed to open stream: Permission denied in /opt/lampp/htdocs/curso_php1/inicial/ejemplo-archivos.php on line 25

Warning: fwrite() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/curso_php1/inicial/ejemplo-archivos.php on line 26

Warning: fclose() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/curso_php1/inicial/ejemplo-archivos.php on line 27

Quando na minha casa, eu tentei o código novamente, no macine do meu windows, e tudo funcionou como esperado, sem erros.

Parece que não tenho permissões suficientes ( falhou ao abrir fluxo: Permissão negada ), por quê?

Por que isso está acontecendo? O que devo fazer? Obrigado! "

    
por Rosamunda 16.11.2013 / 03:22

2 respostas

0

Descobri que, quando isso acontece, os comandos são esses (estou postando aqui para o caso de qualquer outra pessoa entrar no mesmo problema):

sudo chown -R myUserName /opt/lampp
sudo chmod -R 777 /opt/lampp 

Eu sei que dar permissões 777 não é seguro o suficiente, mas como eu preciso disso no meu localhost, e eu estou apenas usando para as minhas aulas de programação, eu acho que está tudo bem.

Espero que isso ajude alguém, algum dia.

    
por Rosamunda 17.11.2013 / 01:37
1

O usuário que está executando o XAMPP aparentemente não tem direitos para gravar em /opt/lampp/htdocs/curso_php1/inicial/ . Eu tentaria escrever em outro arquivo em um local com direitos mais permissivos, como /tmp/ .

Além disso, se você não precisar usar o XAMPP, mas precisar de um Apache funcional, tente usar o pacote fornecido pelo Ubuntu. Na minha experiência, o pequeno ganho em conforto devido a não ter que configurar o Apache e PHP você mesmo não vale a pena com permissões e atualizações a longo prazo.

    
por drc 16.11.2013 / 19:23