如果要协同工作,代码版本的控制就显得非常重要,
是一个不错的选择.
本文针对使用自己编译apache作为网页服务器软件,且有在线浏览项目的的情况,
以下所有均在网页服务器可以正常运作的情况下进行,
没有apache的请先编译安装apache,本文不适于apt-get安装的apache.
对于apt-get安装的apache,网上方法较多,在此不谈.
声明:文中的代码不能直接使用,请根据自身情况作出修改!
下面开始,
首先至Subversion的下载页面,下载最新的版本,格式由于本机是debian,故选择.tar.gz
存至所需位置,例如/usr/local/src,
也可在命令行中输入:
wget -c http://labs.renren.com/apache-mirror/subversion/subversion-1.7.1.tar.gz /usr/local/src
(选择人人源,-c表示续传,至2011.12.03最新版为1.7.1)
下载好后执行命令解包:
tar -zxvf subversion-1.7.1.tar.gz -C /usr/local/src
(.tar.gz使用-z,.tar.bz2使用-j)
进入源码目录然后运行命令进行编译:<
./configure –prefix=/usr/local/subversion –with-apxs=/usr/local/apache2/bin/apxs –with-ssl –enable-maintainer-mode –enable-dav –enable-dav-fs –enable-dav-lock
结果提示错误configure: error: Subversion requires SQLite
到网上查了一下,新版的Subversion是要求SQLite来存数据的,
为此网上还有一个系统管理员的咆哮,感觉挺搞笑的,地址在这
解决办法:
wget -c http://www.sqlite.org/sqlite-autoconf-3070900.tar.gz
然后解包
tar -xvzf sqlite-autoconf-3070900.tar.gz -C /usr/local/src/
把里面的sqlite3.c复制到subversion的sqlite-amalgamation目录下,没有的自己mkdir
mkdir sqlite-amalgamation
cp ../sqlite-autoconf-3070900/sqlite3.c sqlite-amalgamation/
重新运行编译命令:
./configure –prefix=/usr/local/subversion –with-apxs=/usr/local/apache2/bin/apxs –with-ssl –enable-maintainer-mode –enable-dav –enable-dav-fs –enable-dav-lock
如果最后出现下面WARNING,我们直接忽略即可,因为不使用BDB存储.
configure: WARNING: we have configured without BDB filesystem support
You don’t seem to have Berkeley DB version 4.0.14 or newer
installed and linked to APR-UTIL. We have created Makefiles which
will build without the Berkeley DB back-end; your repositories will
use FSFS as the default back-end. You can find the latest version of
Berkeley DB here:
http://www.sleepycat.com/download/index.shtml
下面安装命令:
make && make install
安装完毕测试是否安装成功:
/usr/local/svn/bin/svnserve –version
如果出现如下提示则说明安装成功:
svnserve, version 1.7.1 (r1186859)
compiled Dec 3 2011, 08:07:10
Copyright (C) 2011 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.
下面配置svn服务器,
首先生成一个项目的目录(自定):
mkdir /var/www/html/svn/project1
然后生成项目的配置文件:
svnadmin create /var/www/html/svn/project1
修改配置:
vi /var/www/html/svn/project1/conf/svnserve.conf
将其中的如下4项去掉注释并修改:
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
注意:对用户配置文件的修改立即生效,不必重启svn.
然后设置项目的帐号密码:
vim /var/www/html/svn/project1/conf/passwd
在下面添加用户和密码,每行一组 username = password 保存.
待续…
脑袋晕了,太多问题了,刚刚检查了一下apache载入的模块,发现根本没有svn,
手动把
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
写入httpd.conf立马报错:undefined symbol: dav_register_provider
网上说是apache当初编译的时候没启用davweb支持,而这个是svn必需的,
只好重新编译apache……
./configure –prefix=/usr/local/apache2 –enable-dav –enable-so –enable-maintainer-mode –enable-rewrite
然后make && make install
在按回车的瞬间意识到,我没备份!!!
试了一下网站果然上不去了,赶紧看配置文件,还好都在……
结果又出问题了:module rewrite_module is built-in and can’t be loaded
rewrite模块是我后来单独编译的,apache的原始安装是没有的,
就多了一句:LoadModule rewrite_module modules/mod_rewrite.so
在上网查,原来是重新编译的时候,rewrite已经内嵌了,就不用再载入rewrite模块,
加#注释掉/apachectl start,好了.
他妹子的,我再休息一下….
既然重新编译了apache,Subversion还是也重新编译一下吧,
方法上面有,
然后再httpd.conf最后加上:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /var/www/html/svn/project1 //svn父目录
AuthzSVNAccessFile /svn/porject1/conf/passwd //权限配置文件
AuthType Basic //连接类型设置
AuthName “Subversion.zoneyump” //连接框提示
AuthUserFile /svn/porject1/conf/authz //用户配置文件
Require valid-user //采用何种认证
</Location>
重启apache然后登录http://域名/svn,
出现了用户密码的登录框,
输入用户密码可以登录进去,不过是500错误,
应该是没有权限,接下来设置……
待续…
果然文章一断就续不起来了,这篇文章实在写不下去了,
准备再次投入到svn的时候,发现了git,决定一试,
至于svn权限设置网上有很多,就不折腾了.