在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  
  2.  

建立版本庫(Repository):

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

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

  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  
  11.  

接下來就是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 "subversion@tokyo"  
  9. AuthUserFile /var/lib/subversion/passwords  
  10. Require valid-user  
  11.  

然後要配置SVN的密碼:

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

最後重啓HTTPD服務:

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章