Назад | Перейти на главную страницу

Установка SVN на Centos 7

Я теряю голову над этим, я нахожусь в процессе миграции веб-сайта и сервера SVN на новый хост Centos, последние несколько дней я безрезультатно пытался заставить SVN работать.

Мне удалось получить его для аутентификации, но он возвращается после входа в систему в 404.

Сегодня утром для теста я сделал новую установку Centos 7, отключил selinux и IPV6.

и выполнил следующие команды

yum install httpd subversion mod_dav_svn

vi /etc/httpd/conf.modules.d/10-subversion.conf

Alias /svn /var/www/svn
<Location /svn>
DAV svn
SVNParentPath /var/www/svn/
AuthType Basic
AuthName "SVN Repository"
AuthUserFile /etc/svn-auth-accounts
Require valid-user
</Location>

htpasswd -cm /etc/svn-auth-accounts testuser
New password:
Re-type new password:
Adding password for user testuser

mkdir /var/www/svn
cd /var/www/svn/
svnadmin create repo
chown apache.apache repo/

systemctl restart httpd.service
systemctl enable httpd.service

Теперь это должно настроить базовое репо на ipaddress / svn / repo, но я не получаю ничего, только страницу 404.

Я пробовал следовать руководству svn http://svnbook.red-bean.com/en/1.7/svn.serverconfig.httpd.html Я уменьшил конфигурацию сервера до минимально возможной сборки

<Location /repos>
  DAV svn
  SVNPath /var/www/svn/repo
</Location>

Он по-прежнему возвращает ошибку 404.

Я попытался поместить конфигурацию для svn в conf.d в файл с именем svn.conf, но безрезультатно.

systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2019-06-28 14:08:46 AEST; 4s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 6272 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─6272 /usr/sbin/httpd -DFOREGROUND
           ├─6273 /usr/sbin/httpd -DFOREGROUND
           ├─6274 /usr/sbin/httpd -DFOREGROUND
           ├─6275 /usr/sbin/httpd -DFOREGROUND
           ├─6276 /usr/sbin/httpd -DFOREGROUND
           └─6277 /usr/sbin/httpd -DFOREGROUND

sestatus
SELinux status:                 disabled

Я знаю, что в Ubuntu вам нужно включить моды для Apache, чтобы они работали, я не могу найти нигде, где говорится, что это также необходимо сделать для Centos.

Может ли кто-нибудь пролить свет на то, что здесь происходит, я действительно потерялся, показывает httpd error.log

[Fri Jun 28 14:21:49.153012 2019] [auth_digest:notice] [pid 6260] AH01757: generating secret for digest authentication ...
[Fri Jun 28 14:21:49.153800 2019] [lbmethod_heartbeat:notice] [pid 6260] AH02282: No slotmem from mod_heartmonitor
[Fri Jun 28 14:21:49.156392 2019] [mpm_prefork:notice] [pid 6260] AH00163: Apache/2.4.6 (CentOS) SVN/1.7.14 configured -- resuming normal operations
[Fri Jun 28 14:21:49.156430 2019] [core:notice] [pid 6260] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'

Насколько я могу судить, ленивцы - это обычная проблема, которую нельзя игнорировать https://stackoverflow.com/questions/10612242/lbmethod-heartbeatnotice-no-slotmem-from-mod-heartmonitor-error-after-insta#17451995 https://stackoverflow.com/questions/10612242/lbmethod-heartbeatnotice-no-slotmem-from-mod-heartmonitor-error-after-insta

Server version: Apache/2.4.6 (CentOS)
Server built:   Apr 24 2019 13:45:48

svn, version 1.7.14 (r1542130)
   compiled Apr 11 2018, 02:40:28

Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme

mod_dav_svn-1.7.14-14.el7.x86_64 already installed and latest version

Дай мне знать если тебе нужно что-нибудь еще

Спасибо, чуть меньше волос

Ты почти там. Устанавливать SvnPath к /var/www/svn и перейти к http: // локальный / репозиторий / репо.

Дальнейшие шаги:

  • повторно включить SELinux
  • настроить метки с помощью semanage fcontext если нужно. Скорее всего semanage fcontext -a '/var/www/svn(/.*)?' -t httpd_sys_rw_content_t -u system_u -r object_r для вашего варианта использования. Смотря на httpd_selinux (8), это уже должно быть.
  • запустите restorecon, чтобы изменить метку, например restorecon -Rv /var/www
  • включить TLS (Установить и настроить mod_ssl, видеть этот для подробностей. Немного самоуверенный, но полный)