`

svn安装部署(Linux+SubVersion+Apache)

阅读更多
[size=medium]1. 在网上找了很多安装svn版本库的资源,有的有很多的不同。自己按照好几个方法试着做都有点晕了。后来找到这个学习资料,发现这个是最全最好的。下面就是我找到的学习资料,希望对很多人有用。 

一.  安装apr依赖库(Apache Portable Runtime[/size] Module) 

http://http://apr.apache.org/download.cgi
./configure 
make 
make install 

http://download.chinaunix.net/download.php?id=25796&ResourceID=472
./configure --with-apr=/usr/local/apr 
make 
make install 

二. 重新编译httpd 

检查已安装的 Apache2 是否已经安装了 mod_dav . 

如 果已经成功安装了Apache,使用 httpd -M 来查看有没有安装 dav_module,如果没有的话 必须附加 ‘–enable-dav’ ‘–enable-dav-fs’ 两个参数重新编译 Apache,否则即使编译通过了svn,apache也会启动不起来. 

http://httpd.apache.org/download.cgi
./configure --enable-dav --enable-dav-fs 
make 
make install 

三. 安装subversion 

最新的版本 Subversion 可以在这里找到 :http://subversion.tigris.org/project_packages.html 
http://subversion.tigris.org/downloads/subversion-1.6.17.tar.gz 

下载neon库,使svn支持webdav, https加密的链接. 
下载之后放到subversion安装目录下,并重命名即可, subversion会自动监测并配置, 目前只支持 0.25.5. 

;cd subversion-SVN-LAST-VERSION-DIR 
cd subversion-1.4.5 
wget http://www.webdav.org/neon/neon-0.25.5.tar.gz 
tar xzf neon-0.25.5.tar.gz 
mv neon-0.25.5 neon 

./configure --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/home/chenmin/apr-1.2.11 --with-apr-util=/home/chenmin/apr-util-1.2.10 --with-ssl 

由于没有安装Berkeley DB,所以使用FSFS 
make 
sudo make install 

四.  配置subversion和apache 

拷贝svn模块到apache模块目录下 
cp /data/subversion-1.4.5/subversion/mod_dav_svn/.libs/mod_dav_svn.so /usr/local/apache2/modules/ 
cp /data/subversion-1.4.5/subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/local/apache2/modules/ 

编辑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 /data/svn 
</Location> 

运行htpasswd添加用户和密码 
/usr/local/apache2/bin/htpasswd -cm /data/svn/svn-auth-file chenmin (此为第一次需要创建用户)
/usr/local/apache2/bin/htpasswd -m /data/svn/svn-auth-file admin (此为往创建的文件里添加用户)

再次编辑httpd.conf 
<Location /svn> 
DAV svn 
SVNParentPath /home/svn  (这里如果这样配置,我svn的会出问题,我配的是: SVNPath /home/svn/repos)
AuthType Basic 
AuthName "Subversion repository" 
AuthUserFile /home/svn/svn-auth-file 
Require valid-user 
AuthzSVNAccessFile /home/svn/svn-access-file 
</Location> 

其中svn-auth-file是认证文件,存储用户名和密码,svn-access-file是访问权限文件,规定各个目录的访问者的权限, 示例的权限分配的文件的格式如下。 
[groups] 
admin = john, kate 
devteam1 = john, rachel, sally 
devteam2 = kate, peter, mark 
docs = bob, jane, mike 
training = zak 
# Default access rule for ALL repositories 
# Everyone can read, admins can write, Dan German is excluded. 
[/] 
* = r 
@admin = rw 
dangerman = 
# Allow developers complete access to their project repos 
[proj1:/] 
@devteam1 = rw 
[proj2:/] 
@devteam2 = rw 
[bigproj:/] 
@devteam1 = rw 
@devteam2 = rw 
trevor = rw 
# Give the doc people write access to all the docs folders 
[/trunk/doc] 
@docs = rw 
# Give trainees write access in the training repository only 
[TrainingRepos:/] 
@training = rw 
权限配置文件中,关键的几个概念是:目标和权限,也就是为谁分配什么样的权限。读为r,写为w,如果没有权限那么什么也不写即可。 

=====================================================================================
apache的编译指令 
cd /usr/local/src/httpd-2.2.19 
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr1/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config --enable-so --enable-dav --enable-dav-fs --enable-maintainer-mode --enable-rewrite 

=====================================================================================
subversion的编译指令 
./configure --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr1/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config --with-ssl --enable-shared --prefix=/usr/local/subversion 
#--enable-shared 64位系统下需要添加 

=====================================================================================
需要特别注意的就是权限问题: 
在conf/httpd.conf中指定了运行apache的用户和组,需要为svn所在的路径指定相应的权限,不然会出现权限(permission)问题。 

====================遇到的问题================= 
1.  编译subversion时出现少expat库 
    下载expat-2.0.0.tar.gz安装即可 
2.  在安装subversion时,make没问题,make install时出现 
    libexpat.so.1:cannot open shared object file: No such file or directory 
    意思是找不到Libexpat.so.1这个文件 

    运行whereis libexpat.so.1 
    解决:vi /etc/ld.so.conf 
    加入libexpat.so.1的目录/usr/local/lib保存退出 
    运行ldconfig 
3.  安装好了后,浏览器打开http://xxx/svn,登录出现不了页面,出现 
    <D:error><C:error><m:human-readable errcode="2">.... 
    解决:这是httpd.conf里面的<Location svn>中svnpath只想错误没指到创建的资料库。 

============================创建svn资料库====================================== 
svnadmin -h 
============================启动svn服务器==================================== 
svnserve -h


往版本库里导入项目: svn import -m "new project" yourProject http://127.0.0.1:500/repos/xxx

删除版本库中某个路径下的文件 svn delete -m "delete file" file:///root/svn/repos/xxx
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics