Создание и настройка сервера Linux svn_Как построить веб-сервер
Создание и настройка сервера Linux svn_Как построить веб-сервер

1. Установите SVN-сервер:

Проверьте, установлено ли оно

Язык кода:javascript
копировать
# rpm -qa subversion

Установить SVN-сервер

Язык кода:javascript
копировать
# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql

Проверка установки

Язык кода:javascript
копировать
# cd /etc/httpd/modules
# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so

Посмотреть версию

Язык кода:javascript
копировать
# svnserve --version

2. Создание кодовой базы:

После завершения установки вам необходимо создать библиотеку SVN.

Язык кода:javascript
копировать
# mkdir -p /opt/svn/repositories
# svnadmin create /opt/svn/repositories

После выполнения автоматически создается библиотека репозиториев. Убедитесь, что папка /opt/svn/repositories содержит файлы conf, db, format, Hooks, Locks, README.txt и другие файлы, указывающие на создание библиотеки SVN.

3. Настройте репозиторий:

Войдите в папку conf выше и настройте:

а. Конфигурация пароля пользователя:

Язык кода:javascript
копировать
# vi + passwd  //+ означает, что курсор находится внизу файла

Измените пароль следующим образом:

Язык кода:javascript
копировать
[users]
# harry = harryssecret
# sally = sallyssecret
zhoulf=123456

б. Конфигурация аутентификации управления разрешениями:

Язык кода:javascript
копировать
# vi + authz

Чтобы указать, какие пользователи могут иметь доступ к каким каталогам, добавьте в файл authz следующее содержимое:

Язык кода:javascript
копировать
[/]
zhoulf=rw  //Предоставляем этому пользователю разрешение на доступ ко всем библиотекам
 или
[repositories:/project]  //Разрешения корневого каталога библиотеки репозитория
zhoulf=rw

/ означает корневой каталог и ниже. Корневой каталог указывается при запуске svnserve. Мы указываем /opt/svn; это означает, что у него есть разрешения для всех репозиториев.

репозитории:/ означает установку разрешений для корневого каталога репозиториев библиотек.

PS:

* Имена пользователей, отображаемые в профилях разрешений, уже должны быть определены в профиле пользователя.

* Изменения в файле конфигурации разрешений вступают в силу немедленно без перезапуска svn.

в. Конфигурация службы svnserve.conf:

Язык кода:javascript
копировать
# vi + svnserve.conf

Добавьте немного контента:

Язык кода:javascript
копировать
[general]
#Разрешения анонимного доступа: чтение, запись, нет, по умолчанию — чтение.
anon-access=none
#Разрешить авторизованным пользователям иметь права на запись
auth-access=write
#Путь к базе паролей
password-db=passwd
#Файл контроля доступа
authz-db=authz
#Пространство имен аутентификации, Subversion будет отображаться в приглашении аутентификации и использоваться в качестве ключевого слова для кэша учетных данных.
realm=/opt/svn/repositories

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

г. Настройте порты брандмауэра (при необходимости):

Не всем нужно его настраивать. Вы можете сначала протестировать его, а затем посмотреть, нужно ли вам открывать порт.

Язык кода:javascript
копировать
# vi /etc/sysconfig/iptables

Добавьте немного контента:

Язык кода:javascript
копировать
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

Сохраните и перезапустите брандмауэр.

Язык кода:javascript
копировать
# service iptables restart

4. Просмотр:

а. Запустите СВН.

Язык кода:javascript
копировать
# svnserve -d -r /opt/svn/repositories

б. Проверьте процесс SVN.

Язык кода:javascript
копировать
# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories

в. Обнаружение порта SVN.

Язык кода:javascript
копировать
# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN

5. Остановите и перезапустите SVN:

Язык кода:javascript
копировать
# killall svnserve //останавливаться
# svnserve -d -r /opt/svn/repositories // запускать

6. Проверьте соединение:

Тестирование с использованием TortoiseSVN:

1. После запуска службы SVN необходимо использовать клиент для проверки соединения:

Адрес подключения клиента: svn://192.168.15.231, затем введите логин и пароль (если этот шаг недоступен, проверьте правильность установки authz, passwd и svnserve.conf);

2. Создайте новую папку, то есть папку локальной библиотеки, щелкните правой кнопкой мыши по оформлению заказа, и вы получите скрытую папку .svn;

3. Поместите содержимое проекта в эту папку, затем щелкните правой кнопкой мыши «Зафиксировать», чтобы загрузить локальный проект.

Опубликовано с:http://www.cnblogs.com/puloieswind/p/5856326.html

Прежде чем читать это, я также прочитал:http://blog.csdn.net/niluchen/article/details/8011950

http://blog.csdn.net/dazhi_100/article/details/17143213

Я выполнил эти шаги, но не знаю, есть ли какое-либо необходимое соединение. В любом случае, в конце концов я успешно его построил (я использовал Linux-сервер Alibaba Cloud).

Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Этот сайт предоставляет только услуги по хранению информации, не имеет никаких прав собственности и не принимает на себя соответствующие юридические обязательства. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.

Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/184031.html Исходная ссылка: https://javaforall.cn

boy illustration
Java Advanced Collections TreeSet: что это такое и зачем его использовать?
boy illustration
Оказывается, у команды go build столько знаний
boy illustration
Node.js
boy illustration
Анализ исходного кода, связанный с запланированными задачами версии ruoyi-vue (7), то есть анализ модуля ruoyi-quartz.
boy illustration
Вход в систему с помощью скан-кода WeChat (1) — объяснение процесса входа в систему со скан-кодом, получение авторизованного QR-кода для входа.
boy illustration
HikariPool-1 — обнаружено отсутствие потока или скачок тактовой частоты, а также конфигурация источника данных Hikari.
boy illustration
Сравнение высокопроизводительной библиотеки JSON Go
boy illustration
Простое руководство по извлечению аудио с помощью FFmpeg
boy illustration
Подсчитайте количество строк кода в проекте
boy illustration
Spring Boot элегантно реализует многопользовательскую архитектуру: концепции и практика
boy illustration
Как интегрировать функцию оповещения корпоративного WeChat в систему планирования xxl-job
boy illustration
SpringBoot интегрирует отправку сообщений через веб-сокет в режиме реального времени
boy illustration
Краткий анализ основных библиотек журналов в Go: узнайте, как интегрировать функции вращения и резки бревен на уровне проектирования.
boy illustration
Реализация API-шлюза с нуля-Golang
boy illustration
[Разговорный сайт] Как Springboot получает значения свойств из файлов конфигурации yml или свойств
boy illustration
Spring Boot — синхронные события приложения против асинхронных событий публикации и подписки. Практический бой
boy illustration
Spring Boot использует Swagger3 для создания документов интерфейса API.
boy illustration
[1269] Использование Gunicorn для развертывания проектов flask.
boy illustration
Краткое изложение 10 способов регистрации bean-компонентов в SpringBoot
boy illustration
Flask Learning-9. 2 способа включения режима отладки (debug mode).
boy illustration
Руководство по настройке самостоятельного сервера для Eudemons Parlu
boy illustration
40 вопросов для собеседований по SpringBoot, которые необходимо задавать на собеседованиях! При необходимости ответьте на вопросы для собеседования SpringBoot [предлагаемый сборник] [легко понять]
boy illustration
Через два года JVM может быть заменен GraalVM.
boy illustration
Разрешение циклических зависимостей Spring Bean: существует ли неразрешимая циклическая ссылка?
boy illustration
Разница между промежуточным программным обеспечением ASP.NET Core и фильтрами
boy illustration
[Серия Foolish Old Man] Ноябрь 2023 г. Специальная тема Winform Control Элемент управления DataGridView Подробное объяснение
boy illustration
.NET Как загрузить файлы через HttpWebRequest
boy illustration
[Веселый проект Docker] Обновленная версия 2023 года! Создайте эксклюзивный инструмент управления паролями за 10 минут — Vaultwarden
boy illustration
Высокопроизводительная библиотека бревен Golang zap + компонент для резки бревен лесоруба подробное объяснение
boy illustration
Концепция и использование Springboot ConstraintValidator