创立目录下载安装所需程序
yum -y install httpdyum -y install subversionyum -y install phpyum -y install mod_dav_svn
创立代码仓库
svnadmin create /home/svn/productchown -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/downloadunzip download#下载解压,iF.SVNAdmin应用程序是您的Subversion受权文件的基于Web的GUI#这个是php写的,所以后面装置了phpcp -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-ldapyum -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.soLoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.soLoadModule ldap_module modules/mod_ldap.soLoadModule authnz_ldap_module modules/mod_authnz_ldap.soLoadModule auth_basic_module modules/mod_auth_basic.soLoadModule authn_file_module modules/mod_authn_file.soLoadModule authz_user_module moduels/mod_authz_user.so<Location /svn/> 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</Location>#systemctl restart httpd
赋权限,重启配置失效
http://10.3x.1xx.x8/svnadmin/...
登录配置此处配置ldap
Subversion 受权文件: /home/svn/authz
#重启配置失效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
svn 配置ldap
装置sasl
yum -y install sasl
批改认证形式
vim /etc/sysconfig/saslauthd #很多人发现自己机器没有这个文件,你就写着三行就够了
将MECH=pam 批改成MECH=ldap
[root@prometheus-work-beijing ~]# cat /etc/sysconfig/saslauthdSOCKETDIR=/run/saslauthdMECH=ldapFLAGS=
创立/etc/saslauthd.conf 文件,写入以下内容
[root@prometheus-work-beijing ~]# cat /etc/saslauthd.confldap_servers: ldap://10.x1.14x.1x:389ldap_bind_dn: CN=it_ldap,OU=ServiceAccount,DC=xxxu,DC=shldap_bind_pw: xxxxxxldap_search_base: OU=xixxxhu-sh,DC=xixaxxshu,DC=sh#ldap_filter: sAMAccountName=%sldap_filter: sAMAccountName=%uldap_password_attr: userPassword[root@prometheus-work-beijing ~]#
创立/etc/sasl2/svn.conf文件,写入以下内容
vim /etc/sasl2/svn.confpwcheck_method: saslauthdmech_list: PLAIN LOGIN
[root@prometheus-work-beijing ~]# cat /home/svn/svnserve.conf [general]anon-access = none #匿名拜访的权限,能够是read,write,none,默认为readauth-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