Acabei de ajudar uma galera que tava precisando de ajudar com um erro de permissão de arquivos num sisteminha de emissão de boletos em php. A função fopen() do php não tava conseguindo abrir o arquivo, embora a pasta tinha como owner o usuário do apache e com permissão de escrita.
Consegui resolver a pala e para compartilhar esse caminho para outros que cheguem a esse blog post via mecanismos de busca, estou transcrevendo os passos que tomei:
1- Achei no error log do apache o seguinte erro:
PHP Warning: fopen(): SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /var/www/html/<site>/<folder> owned by uid 33 in /var/www/html/<site>/<folder>/emissao.php on line 156, referer: https://www.nheen.net.br/_admin/boleto/emissao.php
2- Ai pesquisando pelo SAFE MODE percebi que o problema não era de permissão de escrita mas de uma proteção do php que não deixa um script cujo dono (owner/group) seja o usuário “A” gravar numa pasta cujo dono seja o usuário “B”;
3- Porque esse problema foi gerado? Porque foram feitas alterações no script pelo usuário root que quando gravadas estavam mudando a informação de owner (dono) do arquivo para “root”, diferindo do owner da pasta onde o fopen() tentava gravar;
4- Solução: ao fazer qualquer alteração nos scripts com outro usuário que não seja o dono das pastas (normalmente o usuário do ftp), não esquecer de voltar a informação de owner e group para o usuário e grupo original;
Se gostou e ajudou, melhore esse tutorial

















Comentários via Facebook:
Comentários via Facebook: