Назад | Перейти на главную страницу

trac: «Внутренняя ошибка сервера (500)» с mod_fcgid и mod_suexec

Я пытаюсь настроить Trac на общем сервере с доступом к оболочке, SW - Trac 1.0.1, Python 2.6.6, Apache 2.2.15 с mod_fcgid и mod_suexec.

Я настроил его, следуя инструкциям из вики моего хостера, https://uberspace.de/dokuwiki/cool:trac . Единственная разница в том, что мой каталог TRAC_ENV находится в подкаталоге, а не непосредственно в моем доме (т.е. ~ / path / to / trac, а не ~ / trac). (И я переименовал trac.fcgi в foo-trac.fcgi в DocRoot, как показано ниже. Но я также попытался переименовать обратно в trac.fcgi.)

Как написано там, я скопировал trac.fcgi (а также пробовал с trac.cgi) из TRAC_ENV / deploy / cgi-bin / в $ DocRoot / foo / foo-trac.fcgi и добавил

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

в $ DocRoot / foo / .htaccess.

TRAC_ENV правильно установлен в foo-trac.f? Cgi (абсолютный путь начинается с /),

Но пока я получаю только «500 Internal Server Error», а в моем error_log я получаю

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

(с fcgi) соответственно

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

(с cgi).

Все файлы .f? Cgi, их каталоги, каталог .egg_cache (я его создал mkdir, не существовал и не был создан самим trac (или python)), а также каталоги журналов находятся в режиме 0755. Журнал файлы - 0644 (пробовал трогать).

(Ну, каталог и файлы журнала Apache принадлежат (и группа тоже) root. Но, конечно, я не пытаюсь писать там какие-либо журналы, и TRAC_ENV / log / и ~ / log / принадлежат мне, а я также пытался установить режим 777 (dir) соответственно 666 (trac.log) - не помогает, поэтому я снова изменил эти режимы на 755/644.)

Я тоже уже пробовал / проверял подсказки от http://encodable.com/internal_server_error/ и / suexec_problems / есть, но ничего не работает и не помогает.

Любые подсказки где для поиска проблемы (кажется, это suexec, но, возможно, это правила перезаписи; но / и), как открыть это? А может у кого есть прямое решение? :)

С Уважением,

Panne

Что ж, у меня есть ответ.

И я должен извиниться: это был один из намеков на http://encodable.com/internal_server_error/ хотя - и я был достаточно наивен, чтобы поверить, что окончания строк должны быть правильными (стиль Unix, НЕ Windows любит окончания CR / LF), потому что я работаю только с Linux.

И я не думал, что у меня будут битые файлы из trac-проекта ... Но это так, благодаря поддержке моего хостера uberspace.de, который его нашел. :)

Итак, простой dos2unix trag.fcgi решил проблему - но во всем каталоге TRAC_ENV и библиотеках (в моем случае в ~ / lib / python2.6 /) много конечных файлов CRLF, поэтому я рекомендую что-то вроде

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

и ты снова должен быть счастлив! ;)