centos7 安装svn +(if.svnadmin+apache)并ldap安装配置

创建目录下载安装所需程序

yum -y install httpd yum -y install subversion yum -y install php yum -y install mod_dav_svn

创建代码仓库
svnadmin create /home/svn/product chown -R apache:apache /home/svn/product/ cd /home/svn && cp -a product/conf/* ./ #修改 /var/www 的权限为apache,后续都要使用apache的权限,否则权限会失败 rm -rf passwd && touch passwd #多仓库,把product下面的配置文件移动到svn目录来实现 htpasswd /home/svn/passwd admin

设置admin的密码()
vi /home/svn/authz admin = admin [/] @admin = rw [product:/] @admin = rw * = r #修改访问控制的配置文件 #原始文件的`21 行`用于设置用户组,要求在`/var/www/svn/passswd`文件内必须有此用户,每两个用户之间用`英文逗号`隔开。可以设置多个用户组,同一用户尽量不要在多个组中。 #原始文件`25 行`用户设置根路径权限: #`*` 为`所有用户`, #`@XXX`为`用户组`, #`XXX`为`单个用户`。 #**“=”后** #`空`代表`不可读写` #`r` 代表`只读`, #`rw` 代表`读写`。 cp /etc/httpd/conf.modules.d/10-subversion.conf /etc/httpd/conf.d/subversion.conf

installl iF.SVNAdmin
cd /resource &&wget http://sourceforge.net/projects/ifsvnadmin/files/svnadmin-1.6.2.zip/download unzip download #下载解压,iF.SVNAdmin应用程序是您的Subversion授权文件的基于Web的GUI #这个是php写的,所以前面安装了php cp -r iF.SVNAdmin-stable-1.6.2/ /var/www/html/svnadmin #将iF.SVNAdmin拷贝到Apache目录 chmod -R 777 /var/www/html/svnadmin/data/ chown -R apache:apache /var/www/html/svnadmin/ chown -R apache:apache /home/svn/ yum -y install php-ldap yum -y install mod_ldap #ldap需要这两个模块的支持 systemctl restart httpd

subversion.conf
[root@prometheus-work-beijing ~]# cat /etc/httpd/conf.d/subversion.conf LoadModule dav_module modules/mod_dav.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.soLoadModule ldap_module modules/mod_ldap.so LoadModule authnz_ldap_module modules/mod_authnz_ldap.soLoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authz_user_module moduels/mod_authz_user.so DAV svn SVNParentPath /home/svn SVNListParentPath on AuthBasicProvider ldap AuthType Basic AuthName "Subversion repository" AuthLDAPURL "ldap://10.3x.14x.1x:389/OU=xxxxngshu-sh,DC=xxxongshu,DC=sh?sAMAccountName?sub?(objectClass=*)" AuthzSVNAccessFile /home/svn/authz AuthLDAPBindDN "CN=it_ldap,OU=ServiceAccount,DC=xxxxxxxhu,DC=sh" AuthLDAPBindPassword "xxx" Require valid-user #systemctl restart httpd

赋权限,重启配置生效
http://10.3x.1xx.x8/svnadmin/...
登录配置此处配置ldap
Subversion 授权文件: /home/svn/authz
centos7 安装svn +(if.svnadmin+apache)并ldap安装配置
文章图片

centos7 安装svn +(if.svnadmin+apache)并ldap安装配置
文章图片

#重启配置生效 svnserve -d -r /home/svn #svn的启动命令,没写端口默认3690,-r写svn路径, #svnserve -d -r /home/svn--listen-port=3690 --log-file /tmp/svn.log & #重启需要ps -aux |grep svn #然后手动kill

centos7 安装svn +(if.svnadmin+apache)并ldap安装配置
文章图片

centos7 安装svn +(if.svnadmin+apache)并ldap安装配置
文章图片

centos7 安装svn +(if.svnadmin+apache)并ldap安装配置
文章图片

svn 配置ldap 安装sasl yum -y install sasl
修改认证方式 vim /etc/sysconfig/saslauthd #很多人发现自己机器没有这个文件,你就写着三行就够了
将MECH=pam 修改成MECH=ldap
[root@prometheus-work-beijing ~]# cat /etc/sysconfig/saslauthd SOCKETDIR=/run/saslauthd MECH=ldap FLAGS=

创建/etc/saslauthd.conf 文件,写入以下内容
[root@prometheus-work-beijing ~]# cat /etc/saslauthd.conf ldap_servers: ldap://10.x1.14x.1x:389 ldap_bind_dn: CN=it_ldap,OU=ServiceAccount,DC=xxxu,DC=sh ldap_bind_pw: xxxxxx ldap_search_base: OU=xixxxhu-sh,DC=xixaxxshu,DC=sh #ldap_filter: sAMAccountName=%s ldap_filter: sAMAccountName=%u ldap_password_attr: userPassword [root@prometheus-work-beijing ~]#

创建/etc/sasl2/svn.conf文件,写入以下内容
vim /etc/sasl2/svn.conf pwcheck_method: saslauthd mech_list: PLAIN LOGIN

[root@prometheus-work-beijing ~]# cat /home/svn/svnserve.conf [general] anon-access = none #匿名访问的权限,可以是read,write,none,默认为read auth-access = write #使授权用户有写权限 password-db = passwd #密码数据库的路径 authz-db = authz #访问控制文件 realm = repo [sasl] use-sasl = true

修改SVN svnserve.conf 配置文件 我的SVN仓库地址为/opt/svn/repo,所以服务器配置文件路径为/home/svn/code/conf/svnserve.conf
启用如下配置
vim /home/svn/code/conf/svnserve.conf
use-sasl = true
重启saslauthd服务
systemctl restart saslauthd
【centos7 安装svn +(if.svnadmin+apache)并ldap安装配置】centos7 安装svn +(if.svnadmin+apache)并ldap安装配置
文章图片

    推荐阅读