現在都7.6版本了,故更新一下文檔~
1.安裝svn@[TOC](文章目錄)
yum install mod_dav_svn subversion
#安裝完成檢查
svn --version
確定存放版本庫的地址(我的地址是/data):
cd /
mkdir data
- 創建庫
cd /data
mkdir svn
#(注:此處不先建立文件夾可能會報錯)
svnadmin create /data/svn/test
這個一步操作完成就能在/data/svn下面找到test這個庫,進入test,能看到conf,等等一些文件夾。
現在我們不用管這些文件及配置,因爲這裏面的配置只針對svn://訪問的,所以不用管。
#啓動:
svnserve -d -r /data/svn
#關閉:
ps -ef | grep svnserve
#查詢svnserve的端口,查兩個,kill掉上面一個就行
kill -9 ****(此處爲端口號)
要實現https訪問svn庫,所以繼續下面的操作!
2.安裝apache
yum install httpd httpd-devel
安裝過svn,現在繼續安裝apache這樣就能通過http訪問了,同樣的,如果有提示是否安裝,直接同意。
其實剛纔安裝svn的時候應該就已經裝了apache。
這個一步驟有可能提示nothing to do啥的,(意思你是裝過了)不用理會,繼續下面的步驟
我們需要創建一個存放密碼的文件,此密碼文件裏面的密碼是亂碼的。
我的密碼及配置文件存放在/usr/local/svn/conf這個文件夾下面的:
先通過mkdir建立相關的文件夾,然後執行下面命令
#此處必須是詳細地址,否則會報錯
htpasswd –c /usr/local/svn/conf/passwd admin
#後面的admin表示用戶名是admin
然後會讓你輸入密碼,輸入兩次密碼即可,-c的意思是創建這個文件,以後你要添加用戶可以這樣:
#htpasswd –mb /usr/local/svn/conf/passwd zhagnsan zhangsan123
意思是創建用戶名:zhagnsan,密碼:zhagnsan123的用戶,這個命令要好一些,因爲不用輸入兩次密碼了
而且兩次密碼很容易輸錯的,因爲你看不到你輸入的東西。
cd /usr/local/svn/conf
vim authz
[aliases]
[groups]
Admins = admin
[/]
@Admins = rw
* =
就這幾句話就可以了,稍微解釋一下:
groups表示組,設置一個名字爲Admins的組,組裏有一個用戶名爲admin,設置Admins這個組對[/]所有庫都有讀寫權限rw
[/]表示所有
[project:/]表示project這個庫
r表示讀,w表示寫
*= 表示其他匿名用戶沒有權限
設置組名的時候不用@,但是使用這個組的使用必須加上@。
也可以設置獨立的用戶對這個庫有權限如下:
[project:/]
zhangsan = rw
lisi = r
*=
這個表示zhangsan有讀寫,lisi只有讀,匿名沒有權限。
最後保存一下:wq搞定
#修改10-subversion.conf
cd /etc/httpd/conf.modules.d
vi 10-subversion.conf
在最後面添加如下內容:(快捷鍵:vi 進去後shift+g 跳到最後一行 按o編輯即可)
<Location /svn>
DAV svn
SVNParentPath /usr/local/svn/data
SVNListParentPath on
AuthType Basic
AuthName "Welcome ~"
AuthUserFile /usr/local/svn/conf/passwd
AuthzSVNAccessFile /usr/local/svn/conf/authz
Require valid-user
#SSLRequireSSL
</Location>
都配置完成了啓動httpd
systemctl start httpd.service
httpd的重啓命令和停止命令如下:
#重啓or停止
systemctl restart httpd.service
systemctl stop httpd.service
配置完這些還需要設置svn那個文件夾的權限,命令如下:
chmod -R 775 /data/svn
可能還會報錯500 操作如下:
cd /data/svn
chown -R apache.apache test
#chcon -R -t httpd_sys_content_t test
完成這幾步操作可以在瀏覽器上輸入http://ip/svn/test就可以訪問了
3.安裝openssl
yum install mod_ssl openssl
如果你使用自己申請的證書請按照這個步驟操作{
複製自己的個人公鑰複製到 /etc/pki/tls/certs/*.crt
私鑰複製到 /etc/pki/tls/private/*.key
and
cd /etc/httpd/conf.d
vi ssl.conf
SSLCertificateFile /etc/pki/tls/certs/*.crt
SSLCertificateKeyFile /etc/pki/tls/private/*.key
#改爲自己的內容後
vi /etc/httpd/conf.modules.d/10-subversion.conf
將倒數第二行內容註釋放開 SSLRequireSSL
#重啓httpd,搞定~
}
#此步驟新建一個證書~(有證書請跳過)
#步驟稍微麻煩一些,直接複製即可:
cd /etc/pki/tls/private
openssl genrsa -out my.key 1024
openssl req -new -key my.key -out my.csr
創建這個文件my.key
會讓你輸入以下東西:
Country Name (2letter code) [XX]:CH
State or Province Name (full name) []:Shanghai
Locality Name (eg, city) [Default City]: Shanghai
Organization Name (eg, company) [Default Company Ltd]:w*****.com
Organizational Unit Name (eg, section) []:CS
Common Name (eg, your name or your server's hostname) []:***
Email Address []:6******@qq.com
後面還有兩個,直接輸入回車就行了,不用填寫
cd /etc/pki/tls/certs
openssl x509 -req -days 3650 -in /etc/pki/tls/private/my.csr -signkey /etc/pki/tls/private/my.key -out my.crt
3650的意思是設置許可證爲10年
然後修改/etc/httpd/conf.d/ssl.conf
找到這兩個地方改動一下並保存。修改這兩個值:SSLCertificateFile 和SSLCertificateKeyFile
SSLCertificateFile /etc/pki/tls/certs/my.crt
SSLCertificateKeyFile /etc/pki/tls/private/my.key
去到剛纔修改的那個文件裏面
vi /etc/httpd/conf.modules.d/10-subversion.conf
#將倒數第二行內容取消註釋
SSLRequireSSL
大功告成,重啓httpd
systemctl restart httpd.service
==============補充======================
後續如果需要加用戶直接:
htpasswd –mb /usr/local/svn/conf/passwd zhangsan ahang123456
如果要加庫:
svnadmin create data/svn/kukuku
如果要改動配置文件,添加權限啥的,修改authz這個文件
vim /usr/local/svn/conf/authz
有可能你們會遇到一些問題,確認防火牆是否關閉,確定httpd是否啓動。
各位有興趣的可以關注下,有問題可以評論提問,謝謝觀看