使用CollabNetSubversionEdge 界面很好,很赞
<code>https:</code><code>/</code><code>/</code><code>downloads</code><code>-</code><code>guests.</code><code>open</code><code>.collab.net</code><code>/</code><code>files</code><code>/</code><code>documents</code><code>/</code><code>61</code><code>/</code><code>17071</code><code>/</code><code>CollabNetSubversionEdge</code><code>-</code><code>5.2</code><code>.</code><code>0_linux</code><code>-</code><code>x86_64.tar.gz</code>
<code>useradd </code><code>-</code><code>d </code><code>/</code><code>opt</code><code>/</code><code>svnuser svnuser</code>
<code>echo </code><code>"xx"</code> <code>|passwd </code><code>-</code><code>-</code><code>stdin svnuser</code>
<code>groupadd svn</code>
<code>usermod </code><code>-</code><code>G svn svnuser</code>
<code>mkdir </code><code>/</code><code>svn</code>
<code>chown svnuser.svnuser </code><code>/</code><code>svn </code><code>-</code><code>R</code>
<code>visudo</code>
<code>## Allow root to run any commands anywhere</code>
<code>root </code><code>ALL</code><code>=</code><code>(</code><code>ALL</code><code>) </code><code>ALL</code>
<code>svnuser </code><code>ALL</code><code>=</code><code>(</code><code>ALL</code><code>) </code><code>ALL</code>
<code>su </code><code>-</code> <code>svnuser</code>
<code>cd </code><code>/</code><code>svn</code><code>/</code>
<code>tar xf CollabNetSubversionEdge</code><code>-</code><code>5.1</code><code>.</code><code>3_linux</code><code>-</code><code>x86_64.tar.gz </code>
<code>cd csvn</code><code>/</code>
<code>bin</code><code>/</code><code>csvn start</code>
<code>http:</code><code>/</code><code>/</code><code>192.168</code><code>.</code><code>85.130</code><code>:</code><code>3343</code><code>/</code><code>csvn</code><code>/</code><code>login</code><code>/</code><code>auth </code>
<code>用户名、密码都是admin</code>
<code>svn是Subversion Edge执行用户svnuser所在的组</code>
<code>[root@vm2 svn]</code><code># chown root:svn /svn/csvn/lib/httpd_bind/httpd_bind</code>
<code>[root@vm2 svn]</code><code># chmod u+s /svn/csvn/lib/httpd_bind/httpd_bind</code>
<code>sudo </code><code>-</code><code>E </code><code>bin</code><code>/</code><code>csvn install</code>
<code>如果本机没有X桌面,就需要通过网络访问。需要将localhost更改为Subversion Edge服务器的IP地址,同时设置防火墙来保证能够访问到。</code>
以下用原始方法,svn+apache+ldap手动搭建
基本安装
使用web方式访问svn
svn集成ldap,先参照git集成ldap(这个之前做过)
<code>基本安装</code>
<code>svn版本</code><code>1.6</code>
<code>yum </code><code>-</code><code>y install subversion</code>
<code>mkdir </code><code>-</code><code>p </code><code>/</code><code>application</code><code>/</code><code>svndata</code>
<code>mkdir </code><code>-</code><code>p </code><code>/</code><code>application</code><code>/</code><code>svnpasswd</code>
<code>svnserve </code><code>-</code><code>d </code><code>-</code><code>r </code><code>/</code><code>application</code><code>/</code><code>svndata</code><code>/</code> <code>启动</code>
<code>lsof </code><code>-</code><code>i tcp:</code><code>3690</code>
<code>svnadmin create </code><code>/</code><code>application</code><code>/</code><code>svndata</code><code>/</code><code>sadoc</code>
<code>ll </code><code>/</code><code>application</code><code>/</code><code>svndata</code><code>/</code><code>sadoc</code><code>/</code>
<code>配置允许用户solin读写访问</code>
<code>cd </code><code>/</code><code>application</code><code>/</code><code>svndata</code><code>/</code><code>sadoc</code><code>/</code><code>conf</code><code>/</code>
<code>/</code><code>bin</code><code>/</code><code>cp svnserve.conf svnserve.conf.solin$(date </code><code>+</code><code>%</code><code>F)</code>
<code>egrep </code><code>"\-access|\-db ="</code> <code>svnserve.conf</code>
<code># anon-access = read</code>
<code># auth-access = write</code>
<code># password-db = passwd</code>
<code># authz-db = authz</code>
<code>[root@node</code><code>-</code><code>005</code> <code>conf]</code><code># egrep "\-access|\-db =" svnserve.conf</code>
<code># anon-access = none #不允许匿名访问</code>
<code># auth-access = write #允许可写</code>
<code># password-db = /application/svnpasswd/passwd #密码数据库,存放SVN吗</code>
<code># authz-db = /application/svnpasswd/authz #控制权限的数据库</code>
<code>anon</code><code>-</code><code>access </code><code>=</code> <code>none</code>
<code>auth</code><code>-</code><code>access </code><code>=</code> <code>write</code>
<code>password</code><code>-</code><code>db </code><code>=</code> <code>/</code><code>application</code><code>/</code><code>svnpasswd</code><code>/</code><code>passwd</code>
<code>authz</code><code>-</code><code>db </code><code>=</code> <code>/</code><code>application</code><code>/</code><code>svnpasswd</code><code>/</code><code>authz</code>
<code>[root@node</code><code>-</code><code>005</code> <code>conf]</code><code># diff svnserve.conf.solin2017-04-20 svnserve.conf</code>
<code>12a13</code>
<code>> anon</code><code>-</code><code>access </code><code>=</code> <code>none</code>
<code>13a15</code>
<code>> auth</code><code>-</code><code>access </code><code>=</code> <code>write</code>
<code>20a23</code>
<code>> password</code><code>-</code><code>db </code><code>=</code> <code>/</code><code>application</code><code>/</code><code>svnpasswd</code><code>/</code><code>passwd</code>
<code>27a31</code>
<code>> authz</code><code>-</code><code>db </code><code>=</code> <code>/</code><code>application</code><code>/</code><code>svnpasswd</code><code>/</code><code>authz</code>
<code>配置authz、passwd证书文件</code>
<code>[root@node</code><code>-</code><code>005</code> <code>conf]</code><code># cp authz passwd /application/svnpasswd/</code>
<code>[root@node</code><code>-</code><code>005</code> <code>conf]</code><code># ll /application/svnpasswd/</code>
<code>总用量 </code><code>8</code>
<code>-</code><code>rw</code><code>-</code><code>r</code><code>-</code><code>-</code><code>r</code><code>-</code><code>-</code> <code>1</code> <code>root root </code><code>1080</code> <code>4</code><code>月 </code><code>20</code> <code>17</code><code>:</code><code>22</code> <code>authz</code>
<code>-</code><code>rw</code><code>-</code><code>r</code><code>-</code><code>-</code><code>r</code><code>-</code><code>-</code> <code>1</code> <code>root root </code><code>309</code> <code>4</code><code>月 </code><code>20</code> <code>17</code><code>:</code><code>22</code> <code>passwd</code>
<code>[root@node</code><code>-</code><code>005</code> <code>conf]</code><code># chmod 700 /application/svnpasswd/*</code>
<code>-</code><code>rwx</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code> <code>1</code> <code>root root </code><code>1080</code> <code>4</code><code>月 </code><code>20</code> <code>17</code><code>:</code><code>22</code> <code>authz</code>
<code>-</code><code>rwx</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code> <code>1</code> <code>root root </code><code>309</code> <code>4</code><code>月 </code><code>20</code> <code>17</code><code>:</code><code>22</code> <code>passwd</code>
<code>vi </code><code>/</code><code>application</code><code>/</code><code>svnpasswd</code><code>/</code><code>authz</code>
<code>添加如下:</code>
<code>[groups]</code>
<code>bd_sa </code><code>=</code> <code>solin,test</code>
<code># [/foo/bar]</code>
<code>[sadoc:</code><code>/</code><code>]</code>
<code># [repository:/baz/fuz]</code>
<code>@bd_sa</code> <code>=</code> <code>rw</code>
<code>test1 </code><code>=</code> <code>r</code>
<code>vi </code><code>/</code><code>application</code><code>/</code><code>svnpasswd</code><code>/</code><code>passwd</code>
<code>[users]</code>
<code>solin </code><code>=</code> <code>bdyun</code>
<code>test </code><code>=</code> <code>bdyun</code>
<code>pkill svnserve</code>
<code>svnserve </code><code>-</code><code>d </code><code>-</code><code>r </code><code>/</code><code>application</code><code>/</code><code>svndata</code><code>/</code>
<code>使用web方式访问svn</code>
<code>yum </code><code>-</code><code>y install httpd httpd</code><code>-</code><code>devel</code>
<code>yum </code><code>-</code><code>y install mod_dav_svn mod_auth_mysql </code>
<code>vim </code><code>/</code><code>etc</code><code>/</code><code>httpd</code><code>/</code><code>conf</code><code>/</code><code>httpd.conf</code>
<code>LoadModule dav_svn_module modules</code><code>/</code><code>mod_dav_svn.so</code>
<code>LoadModule authz_svn_module modules</code><code>/</code><code>mod_authz_svn.so</code>
<code><Location </code><code>/</code><code>home></code>
<code> </code><code>DAV svn</code>
<code> </code><code>SVNPath </code><code>/</code><code>var</code><code>/</code><code>www</code><code>/</code><code>html</code><code>/</code><code>svna</code><code>/</code><code>home</code>
<code><</code><code>/</code><code>Location></code>
<code>权限控制</code>
<code>htpasswd </code><code>-</code><code>c </code><code>/</code><code>etc</code><code>/</code><code>svnpwd</code><code>/</code><code>svnpwdfile svnpwduser01</code>
<code>mkdir </code><code>/</code><code>etc</code><code>/</code><code>svnpwd</code>
<code>AuthType Basic</code>
<code>AuthName </code><code>"svn repos"</code>
<code>AuthUserFile </code><code>/</code><code>etc</code><code>/</code><code>svnpwd</code><code>/</code><code>svnpwdfile</code>
<code>Require valid</code><code>-</code><code>user</code>
svn集成ldap
我的svn是单独一台机器的,ldap一台机器
先参考以前git做的
cd /opt/git/gitlab/config
<code>cat gitlab.yml|grep </code><code>-</code><code>v </code><code>"#"</code>
<code>production: &base</code>
<code> </code><code>gitlab:</code>
<code> </code><code>host: 内部域名</code>
<code> </code><code>email_from: [email protected]</code>
<code> </code><code>email_display_name: GitLab</code>
<code> </code><code>email_reply_to: [email protected]</code>
<code> </code><code>default_projects_features:</code>
<code> </code><code>issues: true</code>
<code> </code><code>merge_requests: true</code>
<code> </code><code>wiki: true</code>
<code> </code><code>snippets: false</code>
<code> </code><code>incoming_email:</code>
<code> </code><code>enabled: false</code>
<code> </code><code>address: </code><code>"incoming+%{key}@gitlab.example.com"</code>
<code> </code><code>gravatar:</code>
<code> </code><code>gitlab_ci:</code>
<code> </code><code>ldap:</code>
<code> </code><code>enabled: true</code>
<code> </code><code>servers:</code>
<code> </code><code>label: </code><code>'LDAP'</code>
<code> </code><code>host: </code><code>'ldap ip'</code>
<code> </code><code>port: </code><code>389</code>
<code> </code><code>uid: </code><code>'uid'</code>
<code> </code><code>bind_dn: </code><code>'cn=gitlab,ou=People,dc=xx,dc=com'</code>
<code> </code><code>password: </code><code>'gitlab密码'</code>
<code> </code>
<code> </code><code>active_directory: false</code>
<code> </code><code>allow_username_or_email_login: true</code>
<code> </code><code>block_auto_created_users: false</code>
<code> </code><code>base: </code><code>'dc=xx,dc=com'</code>
<code> </code><code>user_filter: ''</code>
<code> </code><code>attributes:</code>
<code> </code><code>username: [</code><code>'uid'</code><code>, </code><code>'userid'</code><code>, </code><code>'sAMAccountName'</code><code>]</code>
<code> </code><code>email: [</code><code>'mail'</code><code>, </code><code>'email'</code><code>, </code><code>'userPrincipalName'</code><code>]</code>
<code> </code><code>name: </code><code>'cn'</code>
<code> </code><code>first_name: </code><code>'givenName'</code>
<code> </code><code>last_name: </code><code>'sn'</code>
<code> </code><code>omniauth:</code>
<code> </code><code>allow_single_sign_on: false</code>
<code> </code><code>block_auto_created_users: true</code>
<code> </code><code>auto_link_ldap_user: false</code>
<code> </code><code>providers:</code>
<code> </code><code>satellites:</code>
<code> </code><code>path: </code><code>/</code><code>opt</code><code>/</code><code>git</code><code>/</code><code>gitlab</code><code>-</code><code>satellites</code><code>/</code>
<code> </code><code>timeout: </code><code>30</code>
<code> </code><code>backup:</code>
<code> </code><code>gitlab_shell:</code>
<code> </code><code>path: </code><code>/</code><code>opt</code><code>/</code><code>git</code><code>/</code><code>gitlab</code><code>-</code><code>shell</code><code>/</code>
<code> </code><code>repos_path: </code><code>/</code><code>opt</code><code>/</code><code>git</code><code>/</code><code>repositories</code><code>/</code>
<code> </code><code>hooks_path: </code><code>/</code><code>opt</code><code>/</code><code>git</code><code>/</code><code>gitlab</code><code>-</code><code>shell</code><code>/</code><code>hooks</code><code>/</code>
<code> </code><code>secret_file: </code><code>/</code><code>opt</code><code>/</code><code>git</code><code>/</code><code>gitlab</code><code>/</code><code>.gitlab_shell_secret</code>
<code> </code><code>upload_pack: true</code>
<code> </code><code>receive_pack: true</code>
<code> </code><code>git:</code>
<code> </code><code>bin_path: </code><code>/</code><code>opt</code><code>/</code><code>soft</code><code>/</code><code>git</code><code>/</code><code>bin</code><code>/</code><code>git</code>
<code> </code><code>timeout: </code><code>100</code>
<code> </code><code>extra:</code>
<code> </code><code>rack_attack:</code>
<code> </code><code>git_basic_auth:</code>
<code>development:</code>
<code> </code><code><<: </code><code>*</code><code>base</code>
<code>test:</code>
<code> </code><code>port: </code><code>80</code>
<code> </code><code>path: tmp</code><code>/</code><code>tests</code><code>/</code><code>gitlab</code><code>-</code><code>satellites</code><code>/</code>
<code> </code><code>path: tmp</code><code>/</code><code>tests</code><code>/</code><code>backups</code>
<code> </code><code>path: tmp</code><code>/</code><code>tests</code><code>/</code><code>gitlab</code><code>-</code><code>shell</code><code>/</code>
<code> </code><code>repos_path: tmp</code><code>/</code><code>tests</code><code>/</code><code>repositories</code><code>/</code>
<code> </code><code>hooks_path: tmp</code><code>/</code><code>tests</code><code>/</code><code>gitlab</code><code>-</code><code>shell</code><code>/</code><code>hooks</code><code>/</code>
<code> </code><code>issues_tracker:</code>
<code> </code><code>redmine:</code>
<code> </code><code>title: </code><code>"Redmine"</code>
<code> </code><code>project_url: </code><code>"http://redmine/projects/:issues_tracker_id"</code>
<code> </code><code>issues_url: </code><code>"http://redmine/:project_id/:issues_tracker_id/:id"</code>
<code> </code><code>new_issue_url: </code><code>"http://redmine/projects/:issues_tracker_id/issues/new"</code>
<code> </code><code>main:</code>
<code> </code><code>label: ldap</code>
<code> </code><code>host: ldap ip</code>
<code> </code><code>bind_dn: </code><code>'cn=xx,ou=People,dc=xx,dc=com'</code>
<code> </code><code>password: </code><code>'xx密码'</code>
<code> </code><code>admin_group: ''</code>
<code> </code><code>sync_ssh_keys: false</code>
<code>staging:</code>
apache配置
<code>[root@cm1 conf.d]</code><code># cat subversion.conf |grep -v "#"</code>
<code>LoadModule dav_svn_module modules</code><code>/</code><code>mod_dav_svn.so</code>
<code>LoadModule authz_svn_module modules</code><code>/</code><code>mod_authz_svn.so</code>
<code><Location </code><code>/</code><code>svn</code><code>/</code><code>></code>
<code> </code><code>DAV svn</code>
<code> </code><code>SVNListParentPath on</code>
<code> </code><code>SVNParentPath </code><code>/</code><code>application</code><code>/</code><code>svndata</code>
<code> </code><code>AuthBasicAuthoritative on</code>
<code> </code><code>AuthType Basic</code>
<code> </code><code>AuthName </code><code>"svn"</code>
<code> </code><code>AuthBasicProvider ldap</code>
<code> </code><code>AuthzLDAPAuthoritative off</code>
<code> </code><code>AuthLDAPURL </code><code>"ldap://ldap ip:389/ou=People,dc=xx,dc=com?uid?sub?(objectClass=*)"</code>
<code> </code><code>AuthLDAPBindDN </code><code>"cn=xx,ou=People,dc=xx,dc=com"</code>
<code> </code><code>AuthLDAPBindPassword </code><code>"xx密码"</code> <code>#xx在ldap服务器上有本地用户</code>
<code> </code><code>AuthzSVNAccessFile </code><code>/</code><code>etc</code><code>/</code><code>httpd</code><code>/</code><code>conf</code><code>/</code><code>svnauthz.conf</code>
<code> </code><code>Require valid</code><code>-</code><code>user</code>
<code>cat </code><code>/</code><code>etc</code><code>/</code><code>httpd</code><code>/</code><code>conf</code><code>/</code><code>svnauthz.conf</code>
<code>admin </code><code>=</code> <code>one</code>
<code>[</code><code>/</code><code>]</code>
<code>@admin</code> <code>=</code> <code>rw</code>
<code>#[test:/]</code>
<code>two </code><code>=</code> <code>r</code>
最后权限的问题,不知道是否需要chown -R apache.apache /application/*
本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1934847,如需转载请自行联系原作者