在CentOS上架設Nginx+Apache+Subversion

Nginx和Apache是兩種常用的Web伺服器,各有各的優勢。由于Nginx短期内不會支援Subversion Server,要架設的話,可以通過一個Apache與Nginx共存的伺服器實作。本文介紹CentOS上相關軟體包的安裝與初步配置。
本文來自塵緣的部落格,原文标題為《CentOS下的Nginx+Apache+Subversion Server安裝筆記》。
我的Linux伺服器均為CentOS,這兩天剛剛折騰完LNMP的配置,接下來繼續折騰SVN的環境配置。
在編譯SVN時,發現Nginx尚不支援Subversion,查了相關資料,發現隻有Apache可以支援SVN,無可奈何,看來隻能做一個Apache與Nginx共存的伺服器,用Nginx proxy把發向Nginx的SVN請求轉到Apache上去。
如何安裝Nginx,可以去參考張宴的Nginx教程,這應該是國内最早最全最詳細的Nginx教程了,至于如何安裝Apache,估計也挺簡單的,我這裡已經配置好了一個Nginx+Apache的伺服器了。
按買醉的說法,nginx處理靜态頁的效率是apache的N倍,但在動态程式,特别是Java和PHP的處理上,Apache具有相當的優勢。
這按Nginx官方的說法,短期内不會有可能支援SVN,至于兩者之間的權衡,各位看官可得留意了。
說一下,Subversion Server并沒有專門針對CentOS的版本,下載下傳編譯的話,用RHEL的即可。
我剛剛也找到了下載下傳位址:http://www.collab.net/downloads/subversion/redhat.html
現在開始CentOS的安裝過程。
除了下載下傳軟體包以外,還可以使用YUM安裝:
- $ sudo yum install httpd subversion mod_dav_svn
建立版本庫(Repository):
- $ sudo mkdir -p /var/lib/subversion/repositories
- $ sudo chown -R apache:apache /var/lib/subversion
如果版本庫的增改次數很頻繁,可以寫一個簡單的腳本來實作快速調用:
- #!/bin/sh
- if [ $# -ne 1 ]; then
- echo 1>&2 Usage: $0 repository_name
- exit 127
- fi
- echo "Sudoing...";
- sudo svnadmin create --fs-type fsfs /var/lib/subversion/repositories/${1}
- sudo chown -R apache:apache /var/lib/subversion/repositories/${1}
- sudo chmod -R g+w /var/lib/subversion/repositories/${1}
- sudo chmod g+s /var/lib/subversion/repositories/${1}/db
接下來就是apache的配置了,這裡要保證兩個子產品都已經正确放到子產品目錄中:
- LoadModule dav_svn_module modules/mod_dav_svn.so
- LoadModule authz_svn_module modules/mod_authz_svn.so
- DAV svn
- SVNParentPath /var/lib/subversion/repositories
- SVNListParentPath on
- SVNPathAuthz off
- AuthType Basic
- AuthName "[email protected]"
- AuthUserFile /var/lib/subversion/passwords
- Require valid-user
然後要配置SVN的密碼:
- $ sudo htpasswd -c /var/lib/subversion/passwords new-user-name
最後重新開機HTTPD服務:
- $ sudo /etc/init.d/httpd restart
下面要做的就是Apache和Nginx配置,然後實作Nginx的代理過程,就有待下次介紹了。