Предлагаю рассмотреть развертывание сервера контроля версий Subversion с доступом по http/https и консолью управления USVN (User-friendly SVN сайт http://www.usvn.info/).
Про установку и настройку данных программ на базе FreeBSD читайте в материале «Удаленное управление репозиторием SVN через Web-интерфейс»
В результате должны получить:
- Интерфейс управления репозиториями доступен по адресу http://svn.myhost.org
- Репозитории доступны по адресу http://svn.myhost.org/projects
1. Установка необходимых пакетов
Web-сервер Apache и Mysql-сервер у меня уже установлен, инструкция по установке LAMP (Apache + MySQL + PHP) «Ubuntu LAMP»
sudo apt-get install subversion libapache2-mod-svn
2. Создание и настройка виртуального хоста в Apache
mkdir /var/www/svn
mkdir /var/www/svn/public
mkdir /var/www/svn/projects
Подключать модули Apache я предпочитаю в конфигурации виртуального хоста
Создаем файл конфигурации /etc/apache2/sites-available/svn.conf со следующим содержанием:
<VirtualHost *:80>
ServerAdmin svn@myhost.org
DocumentRoot "/var/www/svn/public/public"
ServerName svn.myhost.org
ServerAlias www.svn.myhost.org
ErrorLog "/var/log/apache2/svn.error_log"
CustomLog "/var/log/apache2/svn.access_log" common
LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
<Directory "/var/www/svn/public/">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
Order allow,deny
Allow from all
</Directory>
Redirect 404 /favicon.ico
<Location /favicon.ico>
ErrorDocument 404 "favicon does not exist"
</Location>
<location /projects>
DAV svn
# разрешает выдавать перечень всех доступных хранилищ в папке SVNParentPath
SVNListParentPath on
SVNParentPath /var/www/svn/projects/svn
# включения базовой аутентификации, т.е. имя_пользователя/пароль
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /var/www/svn/svn-passwd
AuthzSVNAccessFile /var/www/svn/svn-access
Require valid-user
</location>
</VirtualHost>
И активируем наш виртуальный хост
sudo a2ensite svn
sudo a2enmod rewrite
sudo service apache2 reload
3. Установка USVN
Скачиваем с оф. сайта http://www.usvn.info/download.html и распаковываем в директорию /var/www/svn/public/
cd ~
wget https://github.com/usvn/usvn/archive/1.0.7.tar.gz
tar xvf 1.0.7.tar.gz -C /var/www/svn/public --strip 1
chown -R www-data:www-data /var/www/svn/
Подключаемся к БД MySQL и создаем пользователя и базу данных
# mysql -u admin_user -p
mysql> create database usvn;
Query OK, 1 row affected (0,00 sec)
mysql> create user usvn_user@localhost identified by 'usvn_passwor';
Query OK, 0 rows affected (0,00 sec)
mysql> grant all on usvn.* to usvn_user@localhost;
Query OK, 0 rows affected (0,00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0,01 sec)
mysql> exit
В файле создания базы данных допущена ошибка. Файл находится /var/www/svn/public/app/install/sql/mysql.sql
Для устранения ошибки во время установки находим в конце файла строки
ALTER TABLE `usvn_groups` CHANGE `groups_id` `groups_id` INT( 11 ) NOT NULL AUTO_INCREMENT ;
ALTER TABLE `usvn_projects` CHANGE `projects_id` `projects_id` INT( 11 ) NOT NULL AUTO_INCREMENT ;
ALTER TABLE `usvn_users` CHANGE `users_id` `users_id` INT( 11 ) NOT NULL AUTO_INCREMENT ;
ALTER TABLE `usvn_files_rights` CHANGE `files_rights_id` `files_rights_id` INT( 11 ) NOT NULL AUTO_INCREMENT ;
И перемещаем их сразу после
create index usvn_users_to_projects2_fk on usvn_users_to_projects
(
users_id
);
Должно получиться:
…
create index usvn_users_to_projects2_fk on usvn_users_to_projects
(
users_id
);
ALTER TABLE `usvn_groups` CHANGE `groups_id` `groups_id` INT( 11 ) NOT NULL AUTO_INCREMENT ;
ALTER TABLE `usvn_projects` CHANGE `projects_id` `projects_id` INT( 11 ) NOT NULL AUTO_INCREMENT ;
ALTER TABLE `usvn_users` CHANGE `users_id` `users_id` INT( 11 ) NOT NULL AUTO_INCREMENT ;
ALTER TABLE `usvn_files_rights` CHANGE `files_rights_id` `files_rights_id` INT( 11 ) NOT NULL AUTO_INCREMENT ;
alter table usvn_files_rights add constraint fk_usvn_file_rights foreign key (projects_id)
references usvn_projects (projects_id) on delete restrict on update restrict;
…
Открываем браузер и переходим http://svn.myhost.org/install.php
Устанавливаем согласно инструкции (русский язык присутствует)
На 4-м шаге нам предложат внести данные относительно того, где будут храниться файлы
Репозитарий Subversion: /var/www/svn/projects
Subversion password file: /var/www/svn/svn-passwd
Файл прав доступа к Subversion: /var/www/svn/svn-access
Ссылка Subversion: http://svn.myhost.org/projects
Обратите внимание, что "Репозиторий Subversion" и "Ссылка Subversion" не могут заканчиваться project, иначе USVN будет работать не корректно.
Шаг 5 Database Installation
Вводим данные пользователя MySQL, которого мы создавали в начале и выбираем
Тип базы данных: MySqli
После завершения установки Вам будет доступна панель управления репозиториями по адресу http://svn.myhost.org/ и сами репозитории http://svn.myhost.org/projects/ . При входе у Вас будет запрошена авторизация по логину/паролю.
Вопросы задавайте в коментариях.
Комментариев нет:
Отправить комментарий