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