在CentOS上架设Nginx+Apache+Subversion

本文来自尘缘的博客,原文标题为《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服务:

相关推荐