天天看點

在CentOS上架設Nginx+Apache+Subversion 在CentOS上架設Nginx+Apache+Subversion

在CentOS上架設Nginx+Apache+Subversion

在CentOS上架設Nginx+Apache+Subversion 在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安裝:

  1. $ sudo yum install httpd subversion mod_dav_svn  

建立版本庫(Repository):

  1. $ sudo mkdir -p /var/lib/subversion/repositories  
  2. $ sudo chown -R apache:apache /var/lib/subversion  

如果版本庫的增改次數很頻繁,可以寫一個簡單的腳本來實作快速調用:

  1. #!/bin/sh  
  2. if [ $# -ne 1 ]; then  
  3. echo 1>&2 Usage: $0 repository_name  
  4. exit 127  
  5. fi  
  6. echo "Sudoing...";  
  7. sudo svnadmin create --fs-type fsfs /var/lib/subversion/repositories/${1}  
  8. sudo chown -R apache:apache /var/lib/subversion/repositories/${1}  
  9. sudo chmod -R g+w /var/lib/subversion/repositories/${1}  
  10. sudo chmod g+s /var/lib/subversion/repositories/${1}/db  

接下來就是apache的配置了,這裡要保證兩個子產品都已經正确放到子產品目錄中:

  1. LoadModule dav_svn_module modules/mod_dav_svn.so  
  2. LoadModule authz_svn_module modules/mod_authz_svn.so  
  3. DAV svn  
  4. SVNParentPath /var/lib/subversion/repositories  
  5. SVNListParentPath on  
  6. SVNPathAuthz off  
  7. AuthType Basic  
  8. AuthName "[email protected]"  
  9. AuthUserFile /var/lib/subversion/passwords  
  10. Require valid-user  

然後要配置SVN的密碼:

  1. $ sudo htpasswd -c /var/lib/subversion/passwords new-user-name  

最後重新開機HTTPD服務:

  1. $ sudo /etc/init.d/httpd restart  

下面要做的就是Apache和Nginx配置,然後實作Nginx的代理過程,就有待下次介紹了。

繼續閱讀