Pull to refresh

Настройка Apache2.2+Nginx+eAccelerator+SVN+Trac на медленном VDS — часть вторая

Reading time 3 min
Views 1.6K
Первая часть

Сразу хочу заметить, что статья эта не претендует на авторитетность — делал всё в первый раз на удалённой машине с Линуксом. Соответственно, прошу особо не пинать, а лучше высказывать замечания — как что-то можно было сделать по-другому, или советы по настройке. Всё нижеперечисленное было сделано по мануалам из гугла.


С Subversion и Trac пришлось помучаться — здесь напишу финальный, заработавший вариант.

UPD: Рекомендуется сначала попробовать поставить из репозитория, указав соответствующий источник

apt-get install subversion


Subversion — руководствовался в основном этим.


apt-get install apache2-threaded-dev # ставим apxs2
apt-get install libapache2-svn python-subversion libapache2-mod-python
a2enmod mod_python # заготовка на будущее, под трак - включаем Питон


Качаем и ставим Subversion — свеженький

cd /tmp
wget subversion.tigris.org/downloads/subversion-1.5.0.tar.bz2
bunzip subversion-1.5.0.tar.bz2
tar -xvf subversion-1.5.0.tar.bz2
cd subversion-1.5.0
./configure --with-apxs=/usr/bin/apxs2
make
make check # самая долгая операция
make install


На этом установка Subversion заканчивается (да-да, всё очень просто), и начинается его настройка.

При установке svn должен был ругнуться, что не будет ничего писать в httpd.conf — это и к лучшему.
Сделаем всё сами, ручками.

cd /etc/apache2/mods-available
echo "LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so" > dav_svn.load
echo "LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so" > authz_svn.load


Проверьте — закинул ли svn при установке такие модули. Если нет — они лежат в папке /tmp/subversion-1.5.0/subversion/ — в соответствующих каталогах.

Разрешаем их в Апаче

cd ../mods-enabled
ln -s ../mods-available/dav.load
ln -s ../mods-available/dav_svn.load


Затем идём в apache2.conf и вставляем туда (в конец) следующее:

<VirtualHost *>
ServerName svn.yourdomain.com

DocumentRoot /var/svn
ServerAdmin svn@youdomain.com
ErrorLog /var/log/apache2/svn-error.log
CustomLog /var/log/apache2/svn-access.log combined

<Location />
DAV svn
SVNPath /var/svn
SVNIndexXSLT "/svnindex.xsl"

AuthType Basic
AuthName "Your Domain's Subversion Repository"
AuthUserFile /etc/apache2/svn.htpasswd
Require valid-user




Потом идём в /etc/nginx/nginx.conf и там прописываем секцию для созданного субдомена — как это делать — описано в предыдущей статье. Из файловых исключений можно убрать всё — иначе не будут показываться исходные тексты файлов.

Осталось создать сам репозиторий.

mkdir /var/svn
svnadmin create /var/svn
chown -R www-data:www-data /var/svn


И пароль!

cd /etc/apache2/
htpasswd -c svn.htpasswd yourname
/etc/init.d/apache2 reload


Вуаля, — если при заходе на svn.чтовытампрописали — вы можете залогиниться и видите SVN — то всё прошло успешно!

Единственное, что я не сумел побороть — это

cd /tmp/subversion-1.5.0/tools/xslt
svn import svnindex.xsl svn.yourdomain.com/svnindex.xsl -m "Improved web interface."
svn import svnindex.css svn.yourdomain.com/svnindex.css -m "Improved web interface."


Писал, что неверный протокол — тут, как я понял, на уровне ядра заморочка. Если кто-то поможет — буду очень рад.

Мне пришлось делать

cd /tmp/subversion-1.5.0/tools/xslt
svn import svnindex.xsl file:///var/svn/svnindex.xsl -m "Improved web interface."
svn import svnindex.css file:///var/svn/svnindex.xsl -m "Improved web interface."


SVN заработал!

Осталось настроить Trac!

Я не стал особо морочиться и пошёл по инструкции.

apt-get install build-essential # для easy=install
easy-install Trac


Как вариант — можно сделать так

cd /tmp
wget ftp.edgewall.com/pub/trac/Trac-0.11.tar.gz
tar -xvf Trac-0.11.tar.gz
cd Trac-0.11
python ./setup.py install


Трак установился, теперь создадим для него папку и базу.

Создаём MySQL-базу «trac». Затем

mkdir /var/trac
trac-admin /var/trac initenv

Что касается MySQL — то указываем вместо sqlite —
mysql://user:pass@host:port/trac

База trac должна быть пустой.

На вопрос про путь к svn — отвечаем — /var/svn

Если вы всё сделали правильно — то Trac нам об этом сразу скажет.

Настроим авторизацию Траку

htdigest -c .htauth realm username # где realm - название проекта английскими буквами, username - ваше имя пользователя для трака
# введите пароль
trac-admin /var/trac
# в запущенном trac-admin ввести
permission add username TRAC_ADMIN


Остаётся только запустить trac!

tracd -p 8000 --auth=*,/var/trac/.htauth,realm /var/trac -s

Где realm — то, что вы указали при создании пароля, -s — сингл-проект, -p — порт 8000, звёздочка — что любой трак-проект. Вроде так.

Теперь при заходе

your.ip.is.here:8000 — вуаля — перед нами Трак!

Уф, вроде всё. Мог забыть какие-то возникшие косяки — экспериментировал немного — пишите, постараюсь ответить и дополнить.
Tags:
Hubs:
+11
Comments 9
Comments Comments 9

Articles