Linux Apache+Subversion

Linux Apache+Subversion

1.安装apache httpd-2.0.63,svn客户端通过这个协议访问svn服务端
(1) 下载
(2) 解压 tar zxvf httpd-2.0.63.tar.gz
(3) 进入解压目录,配置
./configure --prefix=/usr/local/apache2 --enable-module=so --enable-dav --enable-so --enable-maintainer-mode
(3) 编译,安装
make && make install

2.安装subversion
先确保步骤1已经完成
(1)   下载subversion-1.6.0.tar.gz  subversion-deps-1.6.0.tar.bz2
(2) 解压tar zxvf subversion-1.6.0.tar.gz
(3) 解压tar jxvf subversion-deps-1.6.0.tar.bz2
(4) 进入解压subversion-1.6.0目录,配置
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2
(3) 编译,安装
make && make install

3. 编辑/usr/local/apache2/conf/httpd.conf
(1) 建立个文件夹/home/svn_database目录下用来存放仓库
(2) 在/home/svn_database 目录下创建一个文件svnaccessfile
(3) 查看subversion两个动态库有没有安装成功
打开/usr/local/apache2/conf/httpd.conf
看到下面两个行并且有/usr/local/apache2/modules/目录下有mod_authz_svn.so和mod_dav_svn.so文件时有说明安装成功
LoadModule dav_svn_module modules/mod_dav_svn.so       #让apache加载dav模块
LoadModule authz_svn_module modules/mod_authz_svn.so   #让apache加载授权模块
如果没有,则需要手动拷贝,把svn下的mod_authz_svn.so和mod_dav_svn.so拷到/usr/local/apache2/modules/目录下
另一方面,在/usr/local/apache2/conf/httpd.conf中的# Dynamic Shared Object (DSO) Support下面增加以下两行
LoadModule   dav_svn_module modules/mod_dav_svn.so       #让apache加载dav模块
LoadModule   authz_svn_module modules/mod_authz_svn.so   #让apache加载授权模块
注:mod_authz_svn.so和mod_dav_svn.so是由SVN编译产生,可以通过搜索安装的源目录或Linux文件系统把到。
(4) 去掉/usr/local/apache2/conf/httpd.conf中#ServerName localhost:80的注解,实际上给它一个IP如:
ServerName 192.168.1.40:80
(5) 在/usr/local/apache2/conf/httpd.conf文件结尾加入
<Location /svn>
DAV svn
SVNParentPath /home/svn_database
AuthzSVNAccessFile /home/svn_database/svnaccessfile
Require valid-user
AuthType Basic
AuthName "Subversion SVN"
AuthUserFile /home/svn_database/svnpasswd
</Location>

4.在Linux系统上创建用户
useradd kosttodd
passwd kosttodd

5.创建svn密码文件svnpasswd同时为kosttodd帐号增加SVN的密码,(kosttodd用户密码和上面的要一样)
先进入/home/svn_database目录
htpasswd -c svnpasswd kosttodd

6.创建库
在/home/svn_database目录下
svnadmin create myapp
chmod 777 myapp -R
增加其库的访问权限
编辑svnaccessfile
在文件尾加入
[myapp:/]
kosttodd=rw

7.运行httpd
如果系统已经安装了apache,那么先停止先前的
/etc/init.d/httpd stop
之后直接运行新的apache
/usr/local/apache2/bin/apachectl start
在客户端访问可以SVN中检出,地址是http:/192.168.1.40/svn/myapp  (假设服务器IP为192.168.1.40)

8.搭建原理:
apache通过webdav模块来与svn联系
<Location /svn>指明apache配置文件httpd.conf定义:80/svn为SVN存放地
客户端对库的操作权限首先客户帐号是Linux用户,另一方面该用户对库目录本身具有访问权限,例如执行chmod 777 myapp  -R
subversion-deps-1.6.0.tar.bz2包是解决subversion所依赖的库文件,安装所必需的,安装过程是先安装httpd,后安装再subversion是因为subversion会检查
apache是否已安装。

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyjxsz.html