Svn server debian настройка

Обновлено: 03.07.2024

И на всякий случай уточню, что sudo означает, что команда запускается с права root’а. Вы можете в консоли предвариетльно просто написать su, ввести пароль и потом выполнять эту и последующие аналогичные команды без приставки sudo.

Теперь добавляем нового пользователя и группу SVN

sudo groupadd svn

sudo useradd -m -d /srv/svn/ -g svn svn

Тут первой строкой мы создали группу svn. А второй строкой мы создали пользователя svn и сразу добавили его в группу svn. Поясню про флаги команды useradd:

su – svn

mkdir /srv/svn/repositories/

mkdir /srv/svn/repositories/firstproject/

svnadmin create /srv/svn/repositories/firstproject/

Первой строкой мы перелогинились под пользователя svn. Затем создаём папку repositories. В этой папке будут храниться наши репозитории. Далее создали папку для нашего первого проекта. И наконец командой svnadmin create /srv/svn/repositories/firstproject/ мы создаём новый пустой репозиторий для нашего проекта по указанному пути.

Теперь создаём конфиги для нашего SVN сервера.

su – svn

mkdir /srv/svn/conf/
cd /srv/svn/conf/
touch apache.conf

touch users-access-file

При помощи команды touch мы просто создаём новый пустой файл.

Теперь содержимое этих файлов:

/srv/svn/conf/apache.conf

Вкратце по директивам.

  • SVNParentPath /srv/svn/repositories/ – указываем путь к репозиториям
  • AuthzSVNAccessFile /srv/svn/conf/users-access-file – путь к файлу, в котором указывается какого пользователя к какому проекту и с какими правами пускать (ниже будет чуть подробнее)
  • AuthUserFile /srv/svn/conf/passwd – в этом файле хранятся зашифрованные пароли пользователей. Этот файл мы чуть ниже создадим при помощи утилитки htpasswd.

/srv/svn/conf/users-access-file

Первыми двумя строками мы запрещаем доступ анонимам к репозиториям. Т.е. мы как быговорим: «всем (*) доступ к корню репозиториев ([/]) пустой (т.к. после знака равно мы ничего не указали. А если бы там было r, то это означает чтение; w – запись)».

А затем мы даём для пользователя yas доступ на чтение и запись к репозиторию.Подробнее про то, как можно задавать различные права для разных пользователей и как создавать для удобства группы пользователей читайте тут

Идём дальше. Чтобы пользователь yas получил туда доступ, ему будети предложено авторизоваться. Для этого надо установить для него пароль. А для этого мы создадим файл /srv/svn/passwd (мы указывали этот файл в apache.conf для авторизации) при помощи утилиты htpasswd

Создаём /srv/svn/conf/passwd

su svn

htpasswd -c -m /srv/svn/conf/passwd yas

  • -m – метод криптования будт использован MD5
  • -c – означает, что файл надо создать. Используйте этот флагш только для того, чтобы создать этот файл впервые. Далее для добавления пользхователей используйте команду

htpasswd -m /srv/svn/conf/passwd newusername

  • /srv/svn/conf/passwd – путь к файлу, куда сохранять пароль
  • yas – имя пользователя

После ввода этой команды вам будет предложено ввести два раза пароль для вашего пользователя.

Web → Установка и настройка Subversion, Apache, WebSvn в Debian / Ubuntu

Subversion — централизованная система управления версиями, распространяемая в исходных кодах. Так же иногда называется svn, по названию клиентской программы, входящей в стандартный дистрибутив Subversion. Разрабатывалась, как альтернатива системе CVS, обладающая всеми основными функциями CVS и свободная от ряда её недостатков.

WebSvn — онлайн subversion клиент. По сути, есть не что иное, как набор PHP скриптов, предоставляющий удаленный доступ к репозиториям Subversion. Поддерживается работа с несколькими репозитариями, допускается редактирование шаблонов интерфейса, поддерживется опция Apache MultiViews и предоставляется возможность экспорта в RSS.

Установка Subversion

Следующим шагом необходимо создать группу для subversion, и добавить в нее необходимых пользователей:


Создание репозитария в Subversion
После того, как Subversion установлен, можно создавать репозитарии:


Установка и настройка Apache, WebDAV для доступа к Subversion
Необходимо установить не только apache2, но и модуль svn-сервера для apache:


Далее, необходимо включить модули для работы с WebDAV:


Следующим шагом, необходимо настроить политику доступа к репозитариям subversion через apache. Для этого необходимо отредактировать следующий файл конгурации apache:


По умолчанию, в файле все закомментировано. Необходимо расскомментировать необходимые строки, чтобы в результате получилось что-то похожее на следующее:


Далее, необходимо задать пользователей, которым разрешен доступ к subversion через apache:


В заключении, необходимо перестартовать apache, чтобы все изменения вступили в силу:


Проверка доступа к Subversion

Первым шагом, необходимо создать типовую структуру проекта в subversion и импортировать её:


В конце проверяем, что хранилище доступно на чтение и структура проекта совпадает с той, что импортировалась ранее:

Установка и настройка WebSvn
Установка WebSvn достаточно проста:


Пакет enscript необходим для подстветки синтаксиса.

В процессе установки будут заданы несколько вопросов, в частности:

— для какого типа сервера настраивается WebSvn — необходимо просто нажать enter
— родительская директория для subversion репозитариев — необходимо задать: "/var/svn-repos". Таким образом, все репозитории, которые появятся в этой директории, будут доступны для просмотра через WebSvn.
— путь к конкретному репозитарию — необходимо оставить пустым, если нет необходимости ограничивать выбор только конкретными репозиториями. В противном случае, необходимо указать полные пути к репозиториям.

Результат настройки будет сохранен в файле/etc/websvn/svn_deb_conf.inc. Сразу после установки, все репозитории будут доступны по адресу: localhost/websvn/ .

Настройка WebSvn: ограничение доступна

Однако полный доступ к репозитариям — это не всегда хорошо. В случае, если репозитарий не публичный, необходимо ограничить доступ к WebSvn только для конкретных пользователей. Для этого необходимо отредактировать файл /etc/apache2/conf.d/websvn:


Результируйющие файл конфигурации должен иметь приблизительно следующий вид:

Настройка WebSvn: редактирование шаблона

WebSvn из коробки поддерживает русский язык. Поэтому минимум необходимых настроек — это корректировка шаблона для вывода приемлимого описания проектов на главной странице WebSvn. По умолчанию, оно на английском языке и о чем не говорит пользователю, работающему с webSVN. Поэтому необходимо отредактировать следующий файл (по умолчанию используется шаблон calm):


Очевидно, что можно отредактировать весь шаблон по своему усмотрению, но для того, чтобы скорректировать описание достаточно уделить внимание лишь следующему фрагменту:


Результат, например, может иметь следующий вид:


Более подробно о правилах редактирования шаблонов WebSvn можно узнать из документации:


Сервер Apache широко используется для работы серверов и сайтов в Интернете. Если у вас есть распределенный сервер, на котором многие администраторы работают вместе над одним проектом, вы, вероятно, столкнетесь с проблемами при ведении записей о том, кто внес изменения на сервере. А вот и сервер Apache SVN, который вы можете установить на свой Linux-компьютер, чтобы вести журнал активности и изменений вашего сервера. Он может поддерживать данные для входа в систему, данные документации, исходный код и другие версии.

Система Subversion Apache позволяет пользователям и участникам вносить изменения, добавлять функции, пересматривать и модифицировать репозиторий с сохранением записей об изменениях. Вы также можете создавать резервные копии, восстанавливать, переопределять, обновлять репозиторий и удалять версии с помощью инструмента Apache SVN.

Сервер Apache SVN в Linux

Поскольку Linux работает, большинство мировых серверов, использующих Apache Subversion (SVN) в Linux, может помочь вам вести учет разработки вашего программного обеспечения, изменений и исправлений метаданных. Apache SVN является бесплатным и открытым исходным кодом под лицензией Apache. Используя систему SVN, вы можете получить собственный репозиторий для хранения, мониторинга и внесения изменений в вашу серверную систему. Apache SVN совместим как с Linux, так и с Windows. Даже это позволяет вам удаленно управлять своим сервером или сервером вашего клиента. Здесь мы увидим, как установить и начать работу с Apache SVN в системе Linux.

1. Установите сервер Apache SVN в Debian / Ubuntu Linux.

Для установки Apache SVN в Debian / Ubuntu Linux требуются права root и базовые знания команд терминала Linux. Подрывная версия Apache доступна в официальном репозитории Linux. Этот метод поможет вам установить и настроить подрывную версию Apache в системе Debian.

Шаг 1. Установите Apache в Ubuntu / Debian

Поскольку мы собираемся установить Apache SVN под сервером Apache, убедитесь, что в вашей системе установлен сервер Apache. Если у вас его нет, вы можете запустить следующие команды в оболочке терминала, чтобы установить сервер Apache PHP. Вначале вам может потребоваться обновить репозиторий Linux.


Шаг 2: Установите SVN Server в Ubuntu / Debian

Когда сервер PHP готов, вы можете запустить следующую команду aptitude в оболочке терминала, чтобы установить подрывную версию Apache и несколько библиотечных функций в вашей системе. Я должен отметить, что следующая команда обновит ваши существующие серверные модули PHP, MySQL, XML и другие службы LAMP. Если в вашей системе установлен Postfix, он также может обновить Postfix.


По завершении установки Apache SVN выполните следующие команды в оболочке терминала, чтобы включить и перезапустить подрывную версию в вашей системе Linux.

Шаг 3. Создайте репозиторий SVN в Linux

После установки Apache SVN и включения его в вашей системе вы можете создать новый каталог для хранения файлов журнала Subversion и файлов входа в систему. Выполните следующую команду mkdir и команды svnadmin в оболочке терминала, чтобы создать новый каталог репозитория.

Теперь, чтобы избежать ошибок прав доступа, выполните следующие команды chown в своей оболочке Linux.


Шаг 4: Создайте пользователей для Subversion

Поскольку Apache SVN записывает файлы журналов и секретные документы, вам необходимо создать учетную запись администратора для входа в систему Apache SVN. Сначала запустите следующую сенсорную команду в оболочке терминала, чтобы создать файл журнала паролей. Затем запустите команду htpasswd, чтобы сохранить учетные данные пользователя и пароль.

Здесь я использовал ubuntupit в качестве имени администратора, вы можете заменить его своим именем пользователя. После создания основной учетной записи администратора вы также можете добавить других пользователей в свою подрывную систему Apache.

После создания репозитория и добавления пользователя-администратора теперь вы можете настроить параметры Apache SVN в своей системе Linux. Вы можете запустить следующую команду в оболочке терминала, чтобы отредактировать файл dav_svn.conf.

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


После редактирования сценария конфигурации SVN сохраните файл и выйдите из него. Затем перезапустите службы Apache на вашем компьютере с Linux.

2. Установите Apache SVN в Red Hat / Fedora Linux.

Если у вас есть рабочая станция Fedora, вы можете установить Apache SVN в своей системе для мониторинга и изменения репозитория вашего сервера. Это не сильно отличается от установки SVN в системе Debian. Здесь я расскажу, как установить и настроить Apache Subversion в Fedora или другой системе Linux на базе Red Hat.

Шаг 1. Установка SVN на рабочую станцию ​​Fedora


Теперь, если в вашей системе установлен Linux с усиленной безопасностью, вам может потребоваться отключить его для установки службы SVN. Вы можете запустить следующую команду в оболочке терминала, чтобы открыть сценарий SELINUX.

Когда скрипт откроется, найдите следующий синтаксис SELINUX и отключите значение. Затем сохраните и выйдите из файла.

После обновления и редактирования сценария SELINUX теперь вы можете запустить следующую команду YUM в оболочке терминала, чтобы установить сервер Apache SVN на Fedora Linux.


Шаг 2: Создайте и настройте репозиторий SVN

После установки сервера SVN вам может потребоваться создать репозиторий для службы Subversion. Вы можете выполнить следующие команды соответственно в оболочке вашего терминала, чтобы создать каталог SVN, создать репозиторий в вашей файловой системе.

После создания репозитория SVN запустите приведенную ниже команду chown, чтобы предоставить ему права root.

Шаг 3: Создание администратора для сервера SVN

Чтобы создать учетную запись администратора для сервера SVN, вы можете запустить следующую команду в оболочке терминала с привилегиями root. Команда попросит вас ввести новый пароль для учетной записи. Вы можете записать имя пользователя и пароль для использования в будущем.


Шаг 4: Настройте сервер Subversion в Fedora

После установки сервера SVN и добавления пользователя с правами администратора вы можете запустить следующую команду для редактирования файла конфигурации SVN в Fedora / Red Hat Linux.

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

Начало работы с Apache SVN Server

До сих пор мы видели процедуру установки и настройки Apache SVN в системах Debian и Fedora Linux. Пришло время протестировать систему Subversion в нашей системе. Чтобы загрузить «Репозиторий Subversion». Чтобы загрузить SVN в свой браузер, введите IP-адрес своего сервера и добавьте / svn / repo2 /, затем нажмите кнопку Enter.


Когда репозиторий Subversion загрузится, он запросит ваше имя пользователя и пароль. Введите ваше имя пользователя и пароль, которые мы создали ранее, для входа на ваш сервер SVN. После успешного входа в систему вы увидите сервер SVN в своем веб-браузере.


Выводы

Изначально Apache SVN был разработан для разработчиков программного обеспечения, но вы можете использовать его в личных целях. Во всем посте я описал методы установки, настройки и начала работы сервера Apache SVN в системе Linux. Если вы думаете об использовании Subversion с сервером Nginx, в этом случае я должен сказать, что вы все еще можете не найти никаких способов использовать SVN с Nginx без установки Apache в той же системе.

И на всякий случай уточню, что sudo означает, что команда запускается с права root’а. Вы можете в консоли предвариетльно просто написать su, ввести пароль и потом выполнять эту и последующие аналогичные команды без приставки sudo.

Теперь добавляем нового пользователя и группу SVN

sudo groupadd svn

sudo useradd -m -d /srv/svn/ -g svn svn

Тут первой строкой мы создали группу svn. А второй строкой мы создали пользователя svn и сразу добавили его в группу svn. Поясню про флаги команды useradd:

su – svn

mkdir /srv/svn/repositories/

mkdir /srv/svn/repositories/firstproject/

svnadmin create /srv/svn/repositories/firstproject/

Первой строкой мы перелогинились под пользователя svn. Затем создаём папку repositories. В этой папке будут храниться наши репозитории. Далее создали папку для нашего первого проекта. И наконец командой svnadmin create /srv/svn/repositories/firstproject/ мы создаём новый пустой репозиторий для нашего проекта по указанному пути.

Теперь создаём конфиги для нашего SVN сервера.

su – svn

mkdir /srv/svn/conf/
cd /srv/svn/conf/
touch apache.conf

touch users-access-file

При помощи команды touch мы просто создаём новый пустой файл.

Теперь содержимое этих файлов:

/srv/svn/conf/apache.conf

Вкратце по директивам.

  • SVNParentPath /srv/svn/repositories/ – указываем путь к репозиториям
  • AuthzSVNAccessFile /srv/svn/conf/users-access-file – путь к файлу, в котором указывается какого пользователя к какому проекту и с какими правами пускать (ниже будет чуть подробнее)
  • AuthUserFile /srv/svn/conf/passwd – в этом файле хранятся зашифрованные пароли пользователей. Этот файл мы чуть ниже создадим при помощи утилитки htpasswd.

/srv/svn/conf/users-access-file

Первыми двумя строками мы запрещаем доступ анонимам к репозиториям. Т.е. мы как быговорим: «всем (*) доступ к корню репозиториев ([/]) пустой (т.к. после знака равно мы ничего не указали. А если бы там было r, то это означает чтение; w – запись)».

А затем мы даём для пользователя yas доступ на чтение и запись к репозиторию.Подробнее про то, как можно задавать различные права для разных пользователей и как создавать для удобства группы пользователей читайте тут

Идём дальше. Чтобы пользователь yas получил туда доступ, ему будети предложено авторизоваться. Для этого надо установить для него пароль. А для этого мы создадим файл /srv/svn/passwd (мы указывали этот файл в apache.conf для авторизации) при помощи утилиты htpasswd

Создаём /srv/svn/conf/passwd

su svn

htpasswd -c -m /srv/svn/conf/passwd yas

  • -m – метод криптования будт использован MD5
  • -c – означает, что файл надо создать. Используйте этот флагш только для того, чтобы создать этот файл впервые. Далее для добавления пользхователей используйте команду

htpasswd -m /srv/svn/conf/passwd newusername

  • /srv/svn/conf/passwd – путь к файлу, куда сохранять пароль
  • yas – имя пользователя

После ввода этой команды вам будет предложено ввести два раза пароль для вашего пользователя.

Читайте также: