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.conftouch 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.conftouch 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 – имя пользователя
После ввода этой команды вам будет предложено ввести два раза пароль для вашего пользователя.
Читайте также: