Pull to refresh

Устанавливаем и настраиваем LAMP и Trac+SVN на Ubuntu

Reading time4 min
Views16K
Прочитав эту статью, я осознал, что Trac+SVN очень помогут в работе и решил настроить эту связку у себя на машине.

С недавних пор я использую Убунту линукс, потому установка и настройка проходили с учетом особенностей данной системы. LAMP у меня уже был установлен ранее, так же как и inadyn. В итоге я получил достаточно гибкую и удобную систему управления своими проэктами, к которой есть доступ по сети. Интересно, как сделать? (в конце ждет бонус ;)

Новичкам советую пройти Семь Шагов от mdevils

Установка Apache+PHP+MySQL


Открываем консоль и пишем:

sudo aptitude update
sudo aptitude install apache2 php5 php5-mysql mysql-server

Теперь у вас установлен веб-сервер Apache, PHP и MySQL, а также модуль для работы с базами. Если вам нужны дополительные модули для PHP, то их установить достаточно легко, например:

sudo aptitude install php5-gd php5-imagick php5-xsl — устанавливает библиотеки GD, Imagick, XSL.

mysqladmin -u root password ваш_пароль_для_root — устанавливает пароль администраторской учетной записи для доступа к БД.

Настройка


Для управления модулями Apache и виртуальными хостами существуют команды: a2enmod (включает модуль), a2ensite (включает хост), a2dismod и a2dissite (выключают модуль и хост).

sudo a2enmod php5 — включаем модуль PHP

sudo /etc/init.d/apache2 force-reload — перезагружаем апач

Alt+F2 gksu gedit /var/www/phpinfo.php

там пишем знакомое <?php phpinfo() ?>, сохраняем и закрываем.
Открываем браузер:
http://localhost — для проверки работы апача
http://localhost/phpinfo.php — для проверки PHP

Наш любимый mod_rewrite


sudo a2enmod rewrite — активируем сам модуль

Alt+F2 gksu gedit /etc/apache2/sites-available/default
Меняем AllowOverride None на AllowOverride All, вот так:
<Directory />
        Options FollowSymLinks
        AllowOverride All
</Directory>

sudo /etc/init.d/apache2 force-reload — да, сервер нужно перезапускать после внесения изменений в настройках :)

Вам надо SSL? Пожалуйста


sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/apache.pem — создаем сертификат

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl — копируем настройки для будущего хоста

Alt+F2 gksu gedit /etc/apache2/sites-available/default
меняем первые две строки на:
NameVirtualHost *:80
<VirtualHost *:80>


Теперь к нему доступ будет происходить только по 80-му порту.

Alt+F2 gksu gedit /etc/apache2/sites-available/ssl
NameVirtualHost *:443
<VirtualHost *:443>
        …
        DocumentRoot …
        SSLEngine on
        SSLCertificateFile /etc/apache2/apache.pem

А тут по 443, порту SSL

a2enmod ssl — включаем SSL модуль
a2ensite ssl — включаем хост

sudo /etc/init.d/apache2 force-reload — уже пора запомнить, перезагружаем апач.

https://localhost — проверяем (скорее всего скажет, что неправильный сертификат)

А для того, чтобы апач не ругался при перезагрузке:
Alt+F2 gksu gedit /etc/apache2/httpd.conf

ServerName localhost

Итак, у нас теперь есть готовый веб-сервер с PHP и MySQL.

А как же насчет Trac и SVN?


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

Subversion


sudo apt-get install trac libapache2-svn subversion python-subversion libapache2-mod-python — устанавливаем необходимые компоненты

sudo a2enmod mod_python — включаем модуль для работы с Python’ом

sudo groupadd svn — создаем группу для работу с SVN
sudo usermod -a -G svn имя_вашего_пользователя — добавляем вашего пользователя в созданную группу
sudo usermod -a -G svn www-data — добавляем пользователя Apache в группу

sudo mkdir /var/svn — папка для будущего репозитория
sudo svnadmin create /var/svn — создаем сам репозиторий
sudo chown -R www-data:svn /var/svn — меняем права папке для доступа пользователям из группы SVN
sudo chmod -R g+ws /var/svn
sudo htpasswd -c -m /etc/apache2/svn.htpasswd имя_вашего_пользователя — создайте пароль, который будет в последствии использоваться в Apache для доступа к папке
Теперь создадим правило для Apache:

Alt+F2 gksu gedit /etc/apache2/conf.d/svn
<Location "/svn">
        DAV svn
        SVNPath /var/svn
        AuthType Basic
        AuthName "SVN Repositories"
        AuthUserFile /etc/apache2/svn.htpasswd
        Require valid-user
</Location>

Trac


Повторяем практически идентичные операции, только для Trac

sudo mkdir /var/trac
sudo trac-admin /var/trac initenv
sudo chown -R www-data:svn /var/trac
sudo chmod -R g+ws /var/trac
sudo htpasswd -c -m /etc/apache2/trac.htpasswd имя_вашего_пользователя

Alt+F2 gksu gedit /etc/apache2/conf.d/trac
<LocationMatch "/trac/login">
        AuthType Basic
        AuthName "Projects"
        AuthUserFile /etc/apache2/trac.htpasswd
        Require valid-user
</LocationMatch>
<Location /trac>
        SetHandler mod_python
        PythonInterpreter main_interpreter
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnv /var/trac
        PythonOption TracUriRoot /trac                                           
</Location>


Вот и все. По-моему ничего не забыл :)
Итого:
http://localhost — обычный доступ
https://localhost — безопасный доступ
http://localhost/svn — SVN, требует авторизации
http://localhost/trac — сам Trac
http://localhost/trac/login — вход в Trac, требует авторизации

Обещанный бонус


У многих из нас есть широкополосный интернет, для доступа к вашему вышенастроенному серверу можно использовать ваш айпи-адрес. Но мне, например, такое не нравится. Для подобных целей есть достаточно удобный сервис DynDNS. После регистрации вы можете создать свой домен и привязать его к вашему адресу. У меня адрес меняется динамически, каждый раз редактировать на сайте я его не хочу. Для этого существует небольшой клиент inadyn

sudo aptitude install inadyn — устанавливаем

Alt+F2 gksu gedit /etc/inadyn.conf — создаем файл настройки
--username ваше_имя_в_системе_DynDNS
--password ваш_вароль
--update_period 60000
--alias название.вашего.хоста
--background

sudo /usr/sbin/inadyn — запускаем клиент

Теперь нужно добавить его в кронтаб, чтобы запускался автоматически
export EDITOR=gedit
sudo crontab -e


добавляем строку
@reboot /usr/sbin/inadyn
сохраняем и выходим

sudo crontab -l — проверяем, записалось ли
ps -A | grep inadyn — смотрим, запущен или нет

Спасибо за внимание


в одной из следующих статей расскажу о настройке Eclipse для работы с PHP и Subverion.

ПС спасибо людям из этой темы за поднятие кармы до уровня написания постов ;)
Tags:
Hubs:
+25
Comments34

Articles