O aplicativo da Web não pode gravar em um arquivo no meu servidor que parece ter as permissões corretas

1

Eu tenho um aplicativo de trilhos em um servidor Ubuntu. Na minha configuração do Apache, configurei o usuário e o grupo para www-data. Eu quero meu aplicativo trilhos para gravar em um arquivo. Eu configurei as permissões de arquivo da seguinte forma:

-rw-rw-r--  1 www-data www-data    0 Jun  5 22:35 notify_list.txt

Parece que os rails devem poder escrever porque as permissões estão corretas. Mas continuo recebendo permissão negada. Quais são as possíveis causas disso?

Obrigado!

    
por Tony 10.06.2009 / 05:07

7 respostas

2

Você está executando seu aplicativo Rails sob o Apache via mod_rails / passageiro ?

Você pode precisar definir o usuário que o passageiro executa o aplicativo Rails com "PassengerDefaultUser". Já que você mencionou www-data, estou assumindo um servidor Ubuntu ou Debian, então este provavelmente seria um arquivo vhost separado em / etc / apache2 / sites-available. Adicione a linha:

PassengerDefaultUser www-data

Para o arquivo vhost correto. Se você não souber qual arquivo, execute " sudo apache2 -S " para mostrar os vhosts disponíveis na configuração e escolha o arquivo que corresponde ao nome do host que você acessa no aplicativo Rails.

    
por 10.06.2009 / 10:42
1

Veja se você consegue criar um novo arquivo (digamos em / tmp) e veja qual usuário / grupo ele cria com.

    
por 10.06.2009 / 05:36
0

Primeira ideia: você tem permissões de gravação para o diretório?

Além disso, dependendo da configuração do apache, talvez você não tenha acesso a arquivos fora da árvore de documentos, portanto, se o aplicativo estiver em / var / www / htdocs, você não terá acesso a arquivos fora desse diretório.

    
por 10.06.2009 / 05:13
0

Desculpe por perguntar o óbvio, mas ... você está correndo contra o Apache? Porque se você está executando rails em Mongrel ou similar, você precisa fazer o Mongrel rodar como www-data.

    
por 10.06.2009 / 07:51
0

Pode acontecer que o arquivo tenha o conjunto de atributos imutáveis.

    
por 10.06.2009 / 08:23
0

execute 'ps aux' em uma janela de terminal para ver como o usuário do seu aplicativo de trilhos está sendo executado.

    
por 10.06.2009 / 09:38
0

Experimente manualmente: torne-se esse usuário ( sudo su - www-data ) e tente criar o arquivo no shell.

    
por 10.06.2009 / 09:41