Я пытаюсь настроить 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
и ты снова должен быть счастлив! ;)