在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 "subversion@tokyo"
- 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的代理過程,就有待下次介紹了。