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的版本,下载编译的话,用RH的即可。
我刚刚也找到了下载地址: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的代理过程,明天继续。

发表评论

电子邮件地址不会被公开。