linux下SVN的借助apache安装

1.下载subversion和apache的最新src包
http://subversion.apache.org/download/下载subversion-1.6.17.tar.gz
http://httpd.apache.org/download.cgi#apache22下载: httpd-2.2.20.tar.gz
http://www.oschina.net/news/18474/subversion-1-6-17
http://subversion.tigris.org/servlets/ProjectDocumentList?collapseFolder=254&folderID=260

2.新建一个用户:svnroot ,以下操作非特别说明皆为root用户操作

groupadd svn
useradd svnroot -g svn
passwd svn

3.解压apache2安装包(此处要指出安装包所在的路径)

tar xvzf httpd-2.2.20.tar.gz
cd httpd-2.2.20
./configure --enable-dav --enable-so --prefix=/usr/local/apache2/
make
make install

4.启动apache服务

/usr/local/apache2/bin/apachectl start

//打开浏览器http://localhost/如果有测试页"It works!"出现则证明已经安装成功。
注:httpd服务的默认端口是80,此处若发现80端口已被占用,在httpd.conf文件中修改listen 80为listen 81(或其他未被占用的端口),修改完成后要重启apache服务。

*************************************************开始***********************************************************
执行命令的时候出现:
error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
解决办法如下:
1.在/etc/ld.so.conf中加一行/usr/local/lib,
2.然后运行/sbin/ldconfig

httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
解决办法非常简单:
#vim /usr/local/apache2/conf/httpd.conf (在这里/web/apahce是我安装apache的目录,你默认安装的话应该是/usr/local/apache2/icons)
找到#ServerName www.example.com:80   把#去掉,再重启apache即可没事了。
*************************************************结束***********************************************************

安装Subversion

tar xvzf Subversion-1.6.17.tar.gz
cd Subversion-1.6.17
./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl --with-zlib --enable-maintainer-mode --enable-dav --enable-so
make
make install

****************************************************开始*******************************************************
* configure可能存在的问题及解决方法
1. configure: error: could not find library containing RSA_new
o yum install openssl-devel
2. configure: error: no XML parser was found: expat or libxml 2.x required
o yum install expat-devel
3. configure: error: --with-zlib requires an argument.
o 去掉此选项。

* httpd: Syntax error on line 54 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/apache2/modules/mod_dav_svn.so: undefined symbol: dav_register_provider
o make sure you have your apache compiled with the dav options:
--enable-dav --enable-dav-fs --enable-dav-lock

在make的时候,.configure之后,进行make,出现如下问题
/usr/bin/ld: cannot find -lexpat
collect2: ld returned 1 exit status
make: *** [subversion/svn/svn] Error 1

应该是缺少-lexpat库文件。
解决方法:
yum install expat expat-devel
安装了之后,svn的make就过了
***************************************************结束*******************************************************

#创建库文件所在的目录(svnroot用户进行下面的操作)
mkdir /home/svnroot/repository
#创建仓库"test"
/usr/local/subversion/bin/svnadmin create /home/svnroot/repository/test
#查看svn是否安装成功
/usr/local/subversion/bin/svnadmin --version
#不让其他人有该目录的权限
chmod 700 /home/svnroot/repository
#(svnroot用户操作结束)

修改Apache配置文件

vi /usr/local/apache2/conf/httpd.conf
#找到下列语句,如果没有则自行添加
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
#在后面添加
<Location /svn>
DAV svn
#svn父目录
SVNParentPath /home/svnroot/repository/
#权限配置文件
AuthzSVNAccessFile /home/svnroot/repository/authz.conf
#连接类型设置
AuthType Basic
#连接框提示
AuthName "Subversion.zoneyump"
#用户配置文件
AuthUserFile /home/svnroot/repository/authfile
#采用何种认证
Require valid-user
</Location>

重启apache

/usr/local/apache2/bin/apachectl restart

打开浏览器访问http://localhost/svn/test/,如果有东西显示就说明成功。

权限管理

#增加用户
htpasswd -c /home/svnroot/repository/authfile 用户名
#第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
htpasswd /home/svnroot/repository/authfile 用户名(加入新的用户,就不用-c了)
#权限分配
vi /home/svnroot/repository/authz.conf

[groups]
admin=useradmin
#这里定义了一个用户组
devteamcs = useradmin,user1,user2
#对所有的项目,所有的用户都有读权限,admin用户有读写权限
[/]
@admin = rw
* = r
#对test项目
[test:/]
@devteamcs = rw

在/usr/local/apache2/conf/httpd.conf文件中配置,找到文件中的这两行:
User daemon
Group daemon

将daemon改为svnroot,组也做相应更改,让apache进程以svnroot的身份运行
改完后是这个样子
User svnroot
Group svn

重启apache
/usr/local/apache2/bin/apachectl restart

访问http://localhost/svn/test提示输入用户名密码,输入创建的用户名和密码登录进去看到“Revision 0: /”之类的就表示成功啦!至此apache+svn配置完成。

posted on 2011-12-02 17:47  kudosharry  阅读(1791)  评论(0编辑  收藏  举报

导航