前提:SVN已經安裝配置ok,能夠正常訪問
目前本人svn用小烏龜客戶端svn協議訪問地址爲:svn://ip:3691/opt/svn/repository,端口後面的是svn倉庫的路徑
那麼若是從svn協議走向http協議的訪問呢,請跟我走。
1.檢查是否安裝
httpd:rpm -qa|grep http
若是有顯示httpd的相關信息,則已安裝,以下本人安裝的信息,此時可略過第2步驟,不然進行第2步驟操做。
也能夠選擇卸載重裝:
yum remove httpd
2.安裝服務
yum install httpd
3.修改apache端口
vi /etc/httpd/conf/httpd.conf,大概在文件的136行的位置,也能夠搜索一下Listen關鍵字快速查找。
因爲http服務有默認端口好比80,8001,建議讀者修改端口,由於頗有可能被其餘服務佔用,好比gitlab,在此我保留了默認端口8001。
4.修改/etc/httpd/conf.d下的subversion.conf文件,在末尾處添加以下代碼
<Location /svn>
#此處/svn是代理的路徑,這樣配置後就不須要像svn協議同樣,訪問倉庫路徑,直接http://ip:port/svn就能夠訪問到SavePath存儲的倉庫了!
DAV svn
SVNPath /opt/svn/repository
#指向倉庫路徑,此處有坑,看清楚是SVNPath 並非SVNParentPath,筆者因爲是copy的配置文件代碼修改,就落坑了注意
AuthType Basic
AuthName "SVN Repository"
AuthUserFile /opt/svn/repository/conf/webpasswd
#請看5步驟講解
AuthzSVNAccessFile /opt/svn/repository/conf/authz
#對應權限控制文件絕對路徑
Require valid-user
</Location>
5.AuthUserFile 配置釋義(本來對應svn賬號密碼passwd文件)
因爲svn默認是明文密碼,而http並不支持明密碼 因此這裏須要單獨生成passwd文件 此處命名爲webpasswd,
當用svn協議訪問的時候是以passwd文件爲主,當用http協議訪問的時候是以webpasswd爲主。具體操做以下:
進入到倉庫的conf配置目錄,在此筆者
cd /opt/svn/repository/conf
htpasswd -mc webpasswd admin
#執行這句話輸入兩次密碼(此密碼會被加密),admin爲用戶名,conf下就會多出一個webpasswd 文件;
-c:建立一個加密文件;
-m:默認採用MD5算法對密碼進行加密;
-d:採用CRYPT算法對密碼進行加密;
-p:不對密碼進行進行加密,即明文密碼;
-s:採用SHA算法對密碼進行加密;
-b:在命令行中一併輸入用戶名和密碼而不是根據提示輸入密碼;
-D:刪除指定的用戶
vi webpasswd #將會看到admin用戶和加密密碼,下面是筆者的webpasswd文件內容
須要注意:第二次添加新用戶,只須要htpasswd webpasswd 用戶名就能夠了,不須要再用 -mc,不然會覆蓋原來的webpasswd文件,
致使原先建立的用戶密碼丟失
6.到此,apache配置完成,啓動http,以下兩種方式,筆者更傾向於第一種
service httpd restart
或者
/etc/init.d/httpd restart
若是在啓動的時候遇到以下問題的
1> ServerName致使
httpd: Could not reliably determine the server's fully qualified domain name
2> 或者無權限啓動監聽端口
針對1>的解決方案,修改httpd.conf文件,找到serverName,修改以下
針對2>apache沒法監聽端口解決方案
若是你能使用semanage命令,則不須要安裝下一步
yum -y install policycoreutils-python
查看http的端口:
semanage port -l|grep http
添加端口:
semanage port -a -t http_port_t -p tcp 8001
再啓動,將會看到啓動成功
7.瀏覽器或者客戶端均可以用http協議訪問(注:若是訪問不了,請看看防火牆是否添加了該端口號)