文章标签 ‘subversion’
实在厌倦了apache的臃肿,打算彻底投奔nginx的怀抱了。
编译,安装,迁移,一切都很顺利 ,最后一步在迁移svn的时候卡住了。
把nginx作为subversion的前端webserver居然目前没有解决方案……
搞了一个晚上,最终还是采取了proxy的办法,把发向nginx的svn请求转到apache上去了 ,哎。
为啥nginx没有这方面的解决方案,也大概查了个水落石出。因为这方面中文资料实在是少,让我费了颇多的周折,
现在就明明白白的说一下吧。
在nginx.net的Mailing list里,nginx的作者Igor Sysoev说了,支持SVN需要有三个东西
1) full WebDAV support,
2) DeltaV support,
3) SVN repo format support.
而在nginx里的NginxHttpDavModule,仅仅对以上三项中的第一项WebDAV有了初步的支持(目前来看Igor Sysoev并没有升级的想法),对于几个高级的WebDAV操作(比如OPTIONS、PROPFIND)并不支持,而这些操作,恰恰是SVN所必须的。而剩下的两项,更是一点支持都没。
所以,就目前来说,想单纯的nginx+subversion,基本上是不可能的。
在刚开始研究这个问题的时候,并不知道除了WebDAV还必须要有其他两个东西。所以满世界找nginx上WebDAV的解决方案,以为搞定这个,就万事大吉了。别说,还真让我在一个老外的博客上给找着一个。这家伙的方法很巧妙,他用通过查阅WebDAV的RFC文档,将绝大多数NginxHttpDavModule不支持的操作用PHP代码实现了,并且通过配置nginx,根据header信息把这些请求重定向到了这个PHP程序。这是这篇博客的地址,有志于自己动手解决这个问题的人,可以参考一下:)
最后感叹一下,为什么计算机方面的问题,总是能在国外的网站和MaillingList找到答案呢?是中国人都不会么?还是这些问题只有我这一个中国人遇到了?
1,Install Apache,APR and APR-util(http://apr.apache.org/)
#tar -zxf apr-1.3.3.tar.gz
#cd apr-1.3.3
#./configure
#make
#make install
#tar -zxf apr-util-1.3.4.tar.gz
#cd apr-util-1.3.4
#./configure –with-apr=/usr/local/apr/
#make
#make install
编译apache,加如下参数
–enable-dav –with-apr=/usr/local/apr/bin/apr-1-config –with-apr-util=/usr/local/apr/bin/apu-1-config
2. Install Neon(http://www.webdav.org/neon/)
neon is an HTTP and WebDAV client library, with a C interface.
#tar -zxf neon-0.28.3.tar.gz
#cd neon-0.28.3
#./configure –prefix=/usr/local/neon
#make
#make install
3. Install Subversion (http://subversion.tigris.org/)
#tar -zxf subversion-1.5.2.tar.gz
#cd subversion-1.5.2
#./configure –prefix=/usr/local/subversion –with-apxs=/usr/local/apache2/bin/apxs –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr –with-neon=/usr/local/neon
#make
#make install
编译过程中,发生如下错误
/usr/bin/ld: cannot find -lexpat
collect2: ld returned [...]
