Linux Apache+Subversion
Linux Apache+Subversion
1.安装apache httpd-2.0.63,svn客户端通过这个协议访问svn服务端
(1) 下载 http://httpd.apache.org/download.cgi
(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) http://subversion.tigris.org/ 下载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定义http://localhost:80/svn为SVN存放地
客户端对库的操作权限首先客户帐号是Linux用户,另一方面该用户对库目录本身具有访问权限,例如执行chmod 777 myapp -R
subversion-deps-1.6.0.tar.bz2包是解决subversion所依赖的库文件,安装所必需的,安装过程是先安装httpd,后安装再subversion是因为subversion会检查
apache是否已安装。