CentOS安装SVN服务器并配置HTTPS连接
在CentOS6.3 64位機器上配置SVN服務器,并設置只允許HTTPS連接,可以配置多個repos源,每個源都擁有自己的組和成員,用于權限控制。
安裝相關軟件
Apache
yum install httpd httpd-devel
Subversion
SSL
yum ?install mod_ssl ?openssl
創建版本庫
[plain]view plaincopy#mkdir /var/svn ?
#cd /var/svn ?
#svnadmin create myapp ?
#chown -R apache.apache myapp ?
#chcon -R -t httpd_sys_content_t myapp ? ? ? ? ? //selinux相關 ?
相似的,我添加了另一個版本庫myapp2
修改配置文件/etc/httpd/conf.d/subversion.conf,添加如下內容
<Location /repos> ?
? DAV svn ?
? SVNParentPath /var/svn ?
? AuthType Basic ?
? AuthName "Authorization Realm" ?
? AuthUserFile /var/svn/passwd ? ? ? ? ? ? ? ? ? //用戶文件 ?
? AuthzSVNAccessFile /var/svn/authz ? ? ? ? ? ? ?//用戶權限控制文件 ?
? Require valid-user ?
</Location> ?
此處需要注意添加/var/svn/passwd文件的相關權限,否則可能出想權限錯誤。相關日志文件為/var/log/httpd/error_log 遇到問題要查看錯誤日志。
用戶文件passwd的內容只能通過htpasswd命令添加
如添加用戶leon
#htpasswd -c /var/svn/passwd leon ? ? ? ? ? ? ? ? //-c 表示新建一個文件,以后就不需要加了 ?
相似的我添加了其他用戶hailong,gao,wang
用戶權限控制文件authz
[groups] ?
myapp = leon,hailong ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//myapp項目有兩個成員leon和hailong ?
myapp2 = wang, gao ?
[myapp:/] ?
@myapp = rw ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //myapp組擁有myapp項目的讀寫權限,其他人無權限 ?
[myapp2:/] ?
@myapp2 = rw ?
這樣就做到權限控制。
可能遇到的問題
1.權限問題
通過查看錯誤日志,添加相關權限。重點注意SeLinux引起的權限問題,可以暫時關閉SeLinux,方法:setenforce 0,SeLinux的管理方法參考CSDN網站http://blog.csdn.net/haiong0707/article/details/8137633
2.防火墻問題
關閉防火墻或者打開相關端口
通過上面的配置,SVN服務器通過HTTP訪問基本就沒有問題了,接著配置HTTPS訪問
#cd ?/etc/pki/tls/private ?
#openssl ?genrsa ?-out ?my.key ?1024 ? ?
#openssl ?req ?-new ?-key ?my.key ?-out ?my.csr ?
#cd ?/etc/pki/tls/certs ?
#openssl ?x509 ?-req ?-days ?365 ?-in ?/etc/pki/tls/private/my.csr ?-signkey ?/etc/pki/tls/private/my.key ?-out ?my.crt ?
以上步驟必須在相關文件夾下產生所需的文件,保證輸入命令正確,保證產生文件所在文件夾正確,否則后面將可能發生錯誤
修改/etc/httpd/conf.d/ssl.conf文件
SSLCertificateFile /etc/pki/tls/certs/my.crt ?
SSLCertificateKeyFile /etc/pki/tls/private/my.key ?
修改/etc/httpd/conf/httpd.conf文件
<Directory /> ?
? ?Options FollowSymLinks ?
? ?AllowOverride None ?
? ?SSLRequireSSL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //添加此行 ?
</Directory> ?
重啟httpd
#service httpd restart ?
如此SVN就只可以通過HTTPS訪問了,并且能夠對多個項目分配人員和權限。
可能遇到的問題
1.SVN開啟HTTPS加密后,所有的WEB訪問都變成HTTPS,例如,localhost將無法訪問,需要訪問https://localhost,這個應該是可以在https.conf文件中配置區分的,暫時不做處理,故建議此服務器不再當作WEB服務器。
----------------------------------------------------------------------------------------------------------------
localhost需要https的解決方法
不在httpd.conf添加 SSLRequireSSL ,添加到subversion.conf
<Location /repos> ?
? DAV svn ?
? SVNParentPath /var/svn ?
? AuthType Basic ?
? AuthName "Authorization Realm" ?
? AuthUserFile /var/svn/passwd ? ? ? ? ? ? ? ? ? //用戶文件 ?
? AuthzSVNAccessFile /var/svn/authz ? ? ? ? ? ? ?//用戶權限控制文件 ?
? Require valid-user ?
? SSLRequireSSL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//需要https加密訪問 ?
</Location> ?
這樣,只有/repos目錄需要https加密訪問,不影響httpd做web服務器
轉載自:http://blog.csdn.net/haiong0707/article/details/8259235
Linux 下svn恢復到某一版本經常由于坑爹的需求,功能要切回到之前的某一個版本。有兩種方法可以實現: 方法1: 用svn merge1) 先 svn up,保證更新到最新的版本,如20;2) 然后用 svn log ,查看歷史修改,找出要恢復的版本,如10 。如果想要更詳細的了解情況,可以使用svn diff -r 10:20 [文件或目錄];3) 回滾到版本號10:svn merge -r 20:10 [文件或目錄],注意版本號之間的順序,這個叫反向合并;4) 查看當前工作版本中的文件,如test.cpp和版本號10中文件的差別:svn diff -r 10 test.cpp, 有差別則手動改之;5) 若無差別,則提交:svn ci -m“back to r 10,xxxxx” [文件或目錄]。這時svn庫中會生成新的版本,如21。方法2: 用svn up前2步如方法1,然后直接 svn up -r 10。當前的工作版本就是版本10了。但是注意,這時svn庫中會并不會生成新的版本,下次在本地svn up之后,還是會回到之前的版本。
來源: <Linux 下svn恢復到某一版本 - Kingc's Time的日志 - 網易博客>
總結
以上是生活随笔為你收集整理的CentOS安装SVN服务器并配置HTTPS连接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Eclipse Juno在ubuntud
- 下一篇: Grunt 入门指南5:项目脚手架