trac: “Erro interno do servidor (500)” com mod_fcgid e mod_suexec

1

Eu tento configurar o Trac em um servidor compartilhado com acesso ao shell, o SW é o Trac 1.0.1, o Python 2.6.6, o Apache 2.2.15 com o mod_fcgid e o mod_suexec.

Eu o configurei seguindo as instruções do wiki do meu hoster, link . A única diferença é que meu diretório TRAC_ENV mora em um subdiretório, não diretamente em minha casa (por exemplo, ~ / path / to / trac, não ~ / trac). (E eu renomei trac.fcgi para foo-trac.fcgi no DocRoot, como segue. Mas eu também tentei com renomear de volta para trac.fcgi.)

Como escrito lá, eu copiei trac.fcgi (e também tentei com trac.cgi) de TRAC_ENV / deploy / cgi-bin / para $ DocRoot / foo / foo-trac.fcgi e adicionei

Options +ExecCGI
AddHandler fcgid-script .fcgi   # also tried "AddHandler cgi-script .cgi"
RewriteEngine On
RewriteBase /foo
RewriteRule ^$ foo-trac.fcgi  [L]   # also tried foo-trac.cgi
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) foo-trac.fcgi/$1  [QSA,L]  # also tried foo-trac.cgi

para $ DocRoot / foo / .htaccess.

TRAC_ENV está configurado corretamente em foo-trac.f? cgi (com caminho absoluto a partir de /),

Mas por enquanto, eu só recebo "500 Internal Server Error", e no meu error_log eu recebo

(104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
Premature end of script headers: foo-trac.fcgi

(com fcgi), respectivamente

suexec failure: could not open log file
fopen: Permission denied
Premature end of script headers: foo-trac.cgi

(com cgi).

Todos os arquivos .f? cgi, seus diretórios, o diretório .egg_cache (eu criei o mkdir, ele não existia e não foi feito pelo próprio trac (ou python)) e também os diretórios de log são o modo 0755. Arquivos de log são 0644 (eu os toquei em uma tentativa).

(Bem, o diretório de log do Apache e os arquivos são de propriedade de (e grupo também é) root. Mas é claro que eu não tento escrever nenhum registro sozinho, e TRAC_ENV / log / e ~ / log / são meus, e eu também tentei configurar o modo 777 (dir) respectivamente 666 (trac.log) - doesn ' t ajuda, então eu inverti os modos novamente para 755/644.)

Eu também já tentei / verifiquei as dicas do link e / suexec_problems / there, mas nada funciona ou ajuda.

Quaisquer dicas onde para procurar o problema (parece que é suexec, mas talvez sejam as regras de reescrita; mas / e), como para descobri-lo? Ou talvez alguém tenha uma solução diretamente? :)

Atenciosamente,

panne

    
por panne 22.07.2013 / 17:59

1 resposta

1

Bem, eu tenho a resposta.

E eu tenho que me desculpar: tem sido uma das dicas do link , embora - e eu tenha sido ingênuo o suficiente para acreditar, os finais de linha devem ter sido corretos ( Estilo Unix, NOT Janelas como terminações CR / LF), porque estou trabalhando apenas com Linux.

E eu não pensei que eu teria arquivos quebrados do trac-poject ... Mas esse é o caso, graças ao apoio do meu hoster uberspace.de, que o encontrou. :)

Então, um simples dos2unix trag.fcgi resolveu o problema - mas em todo o diretório TRAC_ENV e as bibliotecas (no meu caso em ~ / lib / python2.6 /) há muitos arquivos finais CRLF, então eu recomendo algo como

for file in $( find $TRAC_ENV $LIB_DIR -type f | xargs file | grep -i text | grep CRLF | cut -d\: -f1 ); 
do 
   dos2unix $file
done

e você deve estar feliz de novo! ;)

    
por 26.07.2013 / 21:06