Я пытаюсь создать установку 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
Замените имя пользователя на свое, и, как обычно, у вас должен быть хотя бы другой пользователь с обычными разрешениями (после разрешений входа в систему аутентифицированный группа применить).