作者:yoodb 來源:https://blog.yoodb.com/yoodb/article/detail/1518
svnadmin是一個JAVA開發的管理svn服務器的項目用戶的web應用。安裝好svn服務器端把svnadmin.war部署至Tomcat,就可以通過web瀏覽器管理svn的項目,用戶以及目錄權限,使得管理配置svn簡便,之后不需要每次都到服務器上手工修改配置文件。下面具體講述一下如何在linux系統下搭建svnadmin服務,借助于Nginx,tomcat等服務。
安裝MySQL,JDK,Tomcat,Nginx
安裝Mysql — https://blog.yoodb.com/yoodb/article/detail/1517
安裝JDK — https://blog.yoodb.com/yoodb/article/detail/209
安裝Tomcat,Nginx — https://blog.yoodb.com/nikolatesla/article/detail/1439
1、安裝httpd服務
1)安裝Apache命令yum install httpd -y
2)安裝完成后可以通過如下命令查看是否安裝成功,命令httpd -version
[root@ecs-5a8d-0001 /]# httpd -version Server version: Apache/2.4.6 (centos) Server built: Nov 5 2018 01:47:09
3)修改httpd服務端口號
... # Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses. # #Listen 12.34.56.78:80 Listen 83 # # Dynamic Shared Object (DSO) Support ...
4)httpd服務啟動命令
[root@ecs-5a8d-0001 svn]# /bin/systemctl start httpd.service
5)查看是否啟動成功(訪問) http://ip:port/
能打開頁面顯示“Testing 123... ”,表示httpd服務啟動成功了。
2、安裝svn模型
1)在安裝svn模型之前先關掉httpd服務:
[root@ecs-5a8d-0001 svn]# /bin/systemctl stop httpd.service
2)安裝svn模型命令yum install mod_dav_svn subversion -y
3)查看svn模型是否安裝命令svnserve --version
[root@ecs-5a8d-0001 /]# svnserve --version svnserve, 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 back-end (FS) modules are available: * fs_base : Module for working with a Berkeley DB repository. * fs_fs : Module for working with a plain file (FSFS) repository. Cyrus SASL authentication is available.
4)查看是否多出兩個模型文件命令ls /etc/httpd/modules/ | grep svn
[root@ecs-5a8d-0001 /]# ls /etc/httpd/modules/ | grep svn mod_authz_svn.so mod_dav_svn.so
5)創建svn倉庫主目錄,并建根目錄軟連接
[root@ecs-5a8d-0001 svn]# mkdir -p /home/yoodb/svn [root@ecs-5a8d-0001 svn]# ln -s /home/yoodb/svn /
6)創建subversion.conf
[root@ecs-5a8d-0001 svn]# vi /etc/httpd/conf.d/subversion.conf
增加如下內容:
<Location /svn/> DAV svn SVNListParentPath on SVNParentPath /svn AuthType Basic AuthName "Subversion repositories" AuthUserFile /svn/passwd.http AuthzSVNAccessFile /svn/authz Require valid-user </Location> RedirectMatch ^(/svn)$ $1/
3、安裝svnadmin
svnadmin下載地址 — https://jsvnadmin.googlecode.com/files/svnadmin-3.0.5.zip ,解壓后有svnadmin.war和db數據庫文件
1)修改tomcat端口號和字符編碼(否則svn頁面操作無法輸入中文),命令vi /home/yoodb/svnadmin/conf/server.xml, URIEncoding="UTF-8"
[root@ecs-5a8d-0001 svn]# vi /home/yoodb/svnadmin/conf/server.xml ... Java AJP Connector: /docs/config/ajp.html APR (HTTP/AJP) Connector: /docs/apr.html Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 --> <Connector port="82" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <!-- A "Connector" using the shared thread pool--> <!-- <Connector executor="tomcatThreadPool" ...
2)解壓svnadmin-3.0.5.zip,將svnadmin.war包中jdbc.properties,提取到桌面,修改svnadmin的數據庫信息。
3)創建數據并導入數據mysql5.sql,en.sql
create database svnadmin default charset utf8 collate utf8_general_ci;
4、配置nginx
server { listen 81; server_name localhost; location /svnadmin { proxy_pass http://127.0.0.1:82; proxy_read_timeout 150; } location /svn { proxy_pass http://127.0.0.1:83; proxy_read_timeout 150; } }
5、分別啟動httpd服務,tomcat服務和nginx服務
1)啟動服務
[root@ecs-5a8d-0001 svn]# /bin/systemctl start httpd.service [root@ecs-5a8d-0001 svn]# /home/yoodb/svnadmin/bin/startup.sh [root@ecs-5a8d-0001 svn]# /usr/local/nginx/sbin/nginx/sbin/nginx
2)訪問地址
http://ip:port/svnadmin,如:http://192.168.0.1:81/svnadmin
第一次需要設置管理員賬號和密碼:自定義管理員賬號和密碼。
3)創建倉庫
項目:庫名自定義
類型:類型為http協議多庫
路徑:路徑相對于linux系統的目錄信息
URL:http協議訪問svn所在主機,后續為庫地址,模擬web尋址方式
描述:描述自定義
打開項目連接可能認證失敗,需要添加用戶至管理組,添加后就有權限了。
如果當前用戶還是沒有權限是因為/svn/blog目錄的權限屬于root用戶,而apache用戶組管理的apache用戶沒有操作這個目錄的權限,我們只需要將該目錄權限賦值給apache如果以后創建新庫,需要對新建的庫目錄執行相同操作即可。
[root@ecs-5a8d-0001 svn]# chown -R apache.apache blog
除了權限問題,還需要關閉SELinux(Linux的訪問控制,一定要在局域網里關閉此權限,否則非常危險,相當于裸奔),否則會和svn的目錄訪問有沖突。
[root@ecs-5a8d-0001 svn]# vim /etc/selinux/config
修改內容:SELINUX=disabled
重啟系統以及重啟httpd服務和tomcat服務,這時就有權限了。