subversion mysql_Subversion使用MySQL作密码验证配置

安装Apache及Subversion服务

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# yum install httpd subversion mod_dav_svn mariadb-server mariadb apr-util-mysql

Installed:

apr-util-mysql.x86_64 0:1.5.2-6.el7 httpd.x86_64 0:2.4.6-93.el7.centos

mariadb.x86_64 1:5.5.65-1.el7 mariadb-server.x86_64 1:5.5.65-1.el7

mod_dav_svn.x86_64 0:1.7.14-14.el7 subversion.x86_64 0:1.7.14-14.el7

Dependency Installed:

apr.x86_64 0:1.4.8-5.el7 apr-util.x86_64 0:1.5.2-6.el7

centos-logos.noarch 0:70.0.6-3.el7.centos gnutls.x86_64 0:3.3.29-9.el7_6

httpd-tools.x86_64 0:2.4.6-93.el7.centos libaio.x86_64 0:0.3.109-13.el7

libmodman.x86_64 0:2.0.1-8.el7 libproxy.x86_64 0:0.4.11-11.el7

mailcap.noarch 0:2.1.41-2.el7 neon.x86_64 0:0.30.0-4.el7

nettle.x86_64 0:2.7.1-8.el7 pakchois.x86_64 0:0.4-10.el7

perl.x86_64 4:5.16.3-295.el7 perl-Carp.noarch 0:1.26-244.el7

perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7

perl-DBD-MySQL.x86_64 0:4.023-6.el7 perl-DBI.x86_64 0:1.627-4.el7

perl-Data-Dumper.x86_64 0:2.145-3.el7 perl-Encode.x86_64 0:2.51-7.el7

perl-Exporter.noarch 0:5.68-3.el7 perl-File-Path.noarch 0:2.09-2.el7

perl-File-Temp.noarch 0:0.23.01-3.el7 perl-Filter.x86_64 0:1.49-3.el7

perl-Getopt-Long.noarch 0:2.40-3.el7 perl-HTTP-Tiny.noarch 0:0.033-3.el7

perl-IO-Compress.noarch 0:2.061-2.el7 perl-Net-Daemon.noarch 0:0.48-5.el7

perl-PathTools.x86_64 0:3.40-5.el7 perl-PlRPC.noarch 0:0.2020-14.el7

perl-Pod-Escapes.noarch 1:1.04-295.el7 perl-Pod-Perldoc.noarch 0:3.20-4.el7

perl-Pod-Simple.noarch 1:3.28-4.el7 perl-Pod-Usage.noarch 0:1.63-3.el7

perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 perl-Socket.x86_64 0:2.010-5.el7

perl-Storable.x86_64 0:2.45-3.el7 perl-Text-ParseWords.noarch 0:3.29-4.el7

perl-Time-HiRes.x86_64 4:1.9725-3.el7 perl-Time-Local.noarch 0:1.2300-2.el7

perl-constant.noarch 0:1.27-2.el7 perl-libs.x86_64 4:5.16.3-295.el7

perl-macros.x86_64 4:5.16.3-295.el7 perl-parent.noarch 1:0.225-244.el7

perl-podlators.noarch 0:2.5.1-3.el7 perl-threads.x86_64 0:1.87-4.el7

perl-threads-shared.x86_64 0:1.43-6.el7 subversion-libs.x86_64 0:1.7.14-14.el7

trousers.x86_64 0:0.3.14-2.el7

Dependency Updated:

mariadb-libs.x86_64 1:5.5.65-1.el7

查看DBD MySQL驱动模块信息

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# yum info apr-util-mysql

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirror.keystealth.org

* extras: repos-lax.psychz.net

* updates: mirrors.xtom.com

Installed Packages

Name : apr-util-mysql

Arch : x86_64

Version : 1.5.2

Release : 6.el7

Size : 24 k

Repo : installed

From repo : base

Summary : APR utility library MySQL DBD driver

URL : http://apr.apache.org/

License : ASL 2.0

Description : This package provides the MySQL driver for the apr-util DBD

: (database abstraction) interface.

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# rpm -lq apr-util-mysql

/usr/lib64/apr-util-1/apr_dbd_mysql-1.so

/usr/lib64/apr-util-1/apr_dbd_mysql.so

[root@centos-s-1vcpu-1gb-sfo3-01 ~]#

配置MySQL服务并新建数据库及表

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# systemctl enable mariadb

Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# systemctl start mariadb

[root@centos-s-1vcpu-1gb-sfo3-01 ~]#

建库

MariaDB [(none)]> create database subversion;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant SELECT, INSERT, UPDATE, DELETE on subversion.* to apache@localhost;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> set password for apache@localhost=password('apachepwd');

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]>

建表

MariaDB [(none)]> use subversion;

Database changed

MariaDB [subversion]> use subversion;

Database changed

MariaDB [subversion]> create table authn (

-> username varchar(255) not null,

-> password varchar(255),

-> status varchar(255),

-> primary key (username)

-> );

Query OK, 0 rows affected (0.01 sec)

MariaDB [subversion]>

写入测试数据

生成密码(可指定密码加密函数)

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# htpasswd -nb user1 123456

user1:$apr1$hyGT4jgm$xCWktYtKdOZ.y59Zo.t7C1

[root@centos-s-1vcpu-1gb-sfo3-01 ~]#

MariaDB [subversion]> INSERT INTO `authn` (`username`, `password`, `status`)

-> VALUES('user1', '$apr1$hyGT4jgm$xCWktYtKdOZ.y59Zo.t7C1', 'ok');

Query OK, 1 row affected (0.00 sec)

MariaDB [subversion]>

查看表数据

MariaDB [subversion]> select * from authn;

+----------+---------------------------------------+--------+

| username | password | status |

+----------+---------------------------------------+--------+

| user1 | $apr1$hyGT4jgm$xCWktYtKdOZ.y59Zo.t7C1 | ok |

+----------+---------------------------------------+--------+

1 row in set (0.00 sec)

MariaDB [subversion]>

密码加密函数参考

https://dev.mysql.com/doc/refman/5.6/en/encryption-functions.html#function_password

创建仓库

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# mkdir /var/www/svn

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# cd /var/www/svn/

[root@centos-s-1vcpu-1gb-sfo3-01 svn]# svnadmin create test

[root@centos-s-1vcpu-1gb-sfo3-01 svn]#

配置Apache环境

查看已安装相关模块

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# ls /etc/httpd/modules/ |grep dbd

mod_authn_dbd.so

mod_authz_dbd.so

mod_dbd.so

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# ls /etc/httpd/modules/ |grep socache

mod_authn_socache.so

mod_cache_socache.so

mod_socache_dbm.so

mod_socache_memcache.so

mod_socache_shmcb.so

[root@centos-s-1vcpu-1gb-sfo3-01 ~]#

模块mod_authn_dbd配置参考

http://httpd.apache.org/docs/2.4/mod/mod_authn_dbd.html

http://httpd.apache.org/docs/2.4/mod/mod_dbd.html

http://httpd.apache.org/docs/2.4/mod/mod_authn_socache.html

设置主机名

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# vi /etc/httpd/conf/httpd.conf

ServerName 64.227.106.245

新增配置文件

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# vi /etc/httpd/conf.d/repository.conf

# mod_dbd configuration

# UPDATED to include authentication caching

DBDriver mysql

DBDParams "host=localhost port=3306 dbname=subversion user=apache pass=apachepwd"

DBDMin 4

DBDKeep 8

DBDMax 20

DBDExptime 300

DAV svn

SVNParentPath /var/www/svn

# mod_authn_core and mod_auth_basic configuration

# for mod_authn_dbd

AuthType Basic

AuthName "Subversion repository"

# To cache credentials, put socache ahead of dbd here

AuthBasicProvider socache dbd

# Also required for caching: tell the cache to cache dbd lookups!

AuthnCacheProvideFor dbd

AuthnCacheContext my-server

SVNPathAuthz off

# Authorization: Authenticated users only

Require valid-user

# mod_authn_dbd SQL query to authenticate a user

AuthDBDUserPWQuery "SELECT password FROM authn WHERE username = %s"

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# apachectl -t

Syntax OK

[root@centos-s-1vcpu-1gb-sfo3-01 ~]#

启动Apache服务

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# systemctl enable httpd

Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# systemctl start httpd

[root@centos-s-1vcpu-1gb-sfo3-01 ~]#

查看端口监听

[root@centos-s-1vcpu-1gb-sfo3-01 ~]# netstat -lntp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 969/master

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1586/mysqld

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1018/sshd

tcp6 0 0 ::1:25 :::* LISTEN 969/master

tcp6 0 0 :::111 :::* LISTEN 1/systemd

tcp6 0 0 :::80 :::* LISTEN 12198/httpd

tcp6 0 0 :::22 :::* LISTEN 1018/sshd

[root@centos-s-1vcpu-1gb-sfo3-01 ~]#

使用浏览器访问仓库进行登录验证

http://64.227.106.245/repos/test

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值