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

Установка Trac с Apache и mod_fcgi приводит к 404 или 403

Я пытаюсь создать установку trac на моем частном сервере, чтобы использовать ее для управления проектами. Я выполнил инструкции по установке и подключению к серверу apache, которые можно найти на официальное руководство по установке trac но когда я пытаюсь получить доступ к trac, я получаю ошибку 404. Когда я отключаю ScriptAlias, я получаю 403 Access Denied. Вот подробности:

Моя настройка такова: ArchLinux i686 работает в автономном режиме (я подключаюсь к нему через ssh) и подключается по беспроводной сети к маршрутизатору моей домашней сети. Я решил подключить trac и apache с FastCGI

Пользователь trac, содержащий все, что связано с trac.

$ sudo ls /home/trac
cgi-bin  env  htdocs

env - это место, где расположены проекты cgi-bin и htdocs были созданы с помощью trac-admin $TARGET $DESTINATION deploy команда.

Пользователь httpd, содержащий DocumentRoot для сервера apache:

$ sudo ls /home/httpd
ftp  http

Я передал право собственности на все в / home / trac, рекурсивно, httpd и группе http (небезопасно, я знаю, но я хотел сначала проверить это самым простым способом):

sudo chown -R http.httpd /home/trac

Я внес следующие изменения в httpd.conf:

Добавлено:

LoadModule fcgid_module modules/mod_fcgid.so

Изменено:

User httpd
Group http

Изменил DocumentRoot на это везде:

DocumentRoot "/home/httpd/http"

И наконец я включил виртуальные хосты:

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

Вот httpd-vhosts.conf:

<VirtualHost *:80>
ServerAdmin myemail@email.com
DocumentRoot "/home/trac/"
ServerName SERVER_IP
ErrorLog "/var/log/httpd/trac.error.log"
CustomLog "/var/log/httpd/trac.access.log" combined

<Location />
    Order deny,allow
    Deny from all
    Allow from 192.168.0.0/16 127.0.0.1
</Location>
<Location /env>
    Order deny,allow
    Allow from all
    AuthName "Trac Projects"
    AuthType Basic
    AuthUserFile /home/trac/.htpasswd
    Satisfy Any
    Require valid-user
</Location>
ScriptAlias /env /home/trac/cgi-bin/trac.fcgi

Обратите внимание, что я сделал trac.fcgi владельцем http, а также явно установил разрешения, чтобы сделать его исполняемым.

Когда ScriptAlias ​​комментируется, я получаю 403 Доступ запрещен для корня, SERVER_IP, а также SERVER_IP / env или любого другого каталога в пути. Когда строка не прокомментирована, я получаю 403 Access Denied для корневого каталога и 404 Object Not Found для всего остального.

Источники, которые я использовал для этого, - это прежде всего руководство по установке а затем устаревшие Arch Linux руководство по установке когда первая не сработала (дала те же результаты, что я описываю, только я смог попасть на фиктивную страницу в DocumentRoot, и даже с включенным псевдонимом сценария SERVER_IP / env был Доступ запрещен 403). Вот httpd.conf, поскольку он слишком велик, чтобы размещать здесь: httpd.conf

Я думаю, что это проблема с разрешением, но из-за моего ограниченного опыта работы с apache я не могу найти решение.

Заранее спасибо.

P.S. Поскольку я контролирую все это через ssh, вошел в систему как другой пользователь, мне пришлось передать httpd права собственности на его каталоги http и ftp после того, как я их создал. Я не уверен, имеет ли это значение.

Обратите внимание, есть специальный Страница вики по настройке FastCGI ссылки в общем руководстве по установке. Также обратите внимание, что wsgi является рекомендуемой настройкой для Trac в наши дни.

Но если вы хотите использовать его только для личного пользования, я серьезно сомневаюсь, что все это того стоит. Это может быть познавательно, правда, но держу пари, что автономная установка с tracd позволит вам запустить Trac за несколько минут.

Что касается доступа / аутентификации, у вас должен быть хотя бы один пользователь в вашем /home/trac/.htpasswd, и один и тот же пользователь (предпочитающий строчные буквы, никаких сложных вещей, таких как пробелы и т. д.) должен быть зарегистрирован в Trac и иметь соответствующее разрешение. Для начала вы должны добавить первого пользователя в качестве администратора Trac, используя trac-admin лайк

$> trac-admin /home/trac permission add <username> TRAC_ADMIN

Замените имя пользователя на свое, и, как обычно, у вас должен быть хотя бы другой пользователь с обычными разрешениями (после разрешений входа в систему аутентифицированный группа применить).