首先要说明一点的是Apache并非必须安装的,若是你只用在CentOS下本地实现版本控制的话,不然你至少要选择一种服务器与SNV配合使用才能实现远程版本控制,比较推崇使用Apache,好处实在太多了,好比多种身份验证,可配置使用SSI加密等高级功能,固然,Apache也存在一些缺点,好比http自己是无状态链接的,结果是致使链接速度相对要慢一点,不过本人在实际使用过程当中感受,只要你不是发烧极别的灰骨,基本能够忽略,呵呵.
CentOS官方有资料专门介绍如何配置SVN的,不过官方都是用yum方式安装的,确实YUM有时候确实好用,不过对于初学者仍是推荐自编译安装,在这一过程当中出现的问题自已试着解决,实际上是一件很是有效的学习方法,也是很是有趣的一件事.
CentOS官方资料: http://wiki.centos.org/HowTos...
安装步骤:
一、安装Apache
二、安装subversion
三、建立版本库
Apache安装(原转载的文章感受这一块讲的不是很好,就加上了这一块.):linux
一、下载:CentOS Apacheapache
[root@localhost src]# chmod +x httpd-2.2.8.tar.gz [root@localhost src]# tar -zxvf httpd-2.2.8.tar.gz
2)CentOS Apache设置编译器的编译参数centos
[root@localhost src]# cd httpd-2.2.8 [root@localhost httpd-2.2.8]# ./configure –prefix=/usr/local/apache2 –enable-module=so
3)CentOS Apache编译和安装:浏览器
[root@localhost httpd-2.2.8]# make&&make install
四、CentOS Apache启动服务:服务器
[root@localhost httpd-2.2.8]# /usr/local/apache2/bin/apachectl start
五、CentOS Apache肯定启动状:tcp
[root@localhost apache2]# netstat -utl tcp 0 0 *:http *:* LISTEN
1、准备好安装包:svn
apr-1.3.6.tar.gz 下载地址:http://apr.apache.org/ apr-util-1.3.8.tar.gz subversion-1.6.3.tar.gz 下载地址: http://subversion.tigris.org/ subversion-deps-1.6.3.tar.gz httpd-2.2.9.tar.gz 下载地址:http://httpd.apache.org/
注意:apach的版本 与 subversion版本的兼容问题,官网都有介绍
2、开始安装:把以上安装包上传至/usr/local目录,cd /usr/local 进入该目录
一、安装apr学习
#解压包 tar zxvf apr-1.3.6.tar.gz cd apr-1.3.6 ./configure make && make install
二、安装apr-util测试
tar zxvf apr-util-1.3.8.tar.gz cd apr-util-1.3.8 ./configure --with-apr=/usr/local/apr make && make install
三、安装 apacheui
tar zxvf httpd-2.2.9.tar.gz cd httpd-2.2.9 ./configure --prefix=/usr/local/apache2.2.9 --enable-dav --enable-so --enable-maintainer-mode --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config #--prefix表示把apache安装在指定目录 make && make install
四、安装subversion
tar zxvf subversion-1.6.3.tar.gz tar zxvf subversion-deps-1.6.3.tar.gz cd subversion-1.6.3 ./configure --prefix=/opt/svn --with-apxs=/usr/local/apache2.2.9/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr make && make install
至此,安装基本完毕,再配置下就可使用了
注意:由于这些安装包须要gcc编译,因此要确保linux上装有gcc程序,不然是没办法进行安装的
3、在apache中配置SVN
vi /usr/local/apache2.2.9/conf/httpd.conf
若是你看到以下两句,说明安装是成功的
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so
若是有下面一句就用#注释掉
#LoadModule foo_module modules/mod_foo.so
定义apache访问svn配置:
<Location /svn> DAV svn # SVNPath /opt/svndata SVNParentPath /opt/svndata AuthzSVNAccessFile /opt/svn/conf/authz.conf AuthType Basic AuthName "Subversion repository" AuthUserFile /opt/svn/conf/passwd.conf Require valid-user </Location>
4、配置svn
创建svn版本库目录
mkdir -p /opt/svndata/repos #能够多建版本库目录
创建svn版本库
svnadmin create /opt/svndata/repos mkdir -p /opt/svndata/repos #能够多建版本库
创建本地访问控制文件
/usr/local/apache2.2.9/bin/htpasswd -c /opt/svn/conf/passwd.conf username
而后输入密码便可,默认是MD5加密的
/usr/local/apache2.2.9/bin/htpasswd /opt/svn/conf/passwd.conf username1 #追加用户
创建本地项目控制文件
touch /opt/svn/conf/authz.conf
本例authz.conf内容为:
[groups] #<groupname1>=<username1>,<username2> admin=username #[<versionLib>:projectName/directory] #@<groupsname>=<authorities> #<username>=<authorities> [/] @admin = rw #指定用户组成员能够读写根目录全部应用 [repos:/abc/aaa] username1= rw #指定用户username1能够读写:/abc/aaa目录的文件
至此,整个安装过程完成了!
5、测试链接
启动apache
/usr/local/apache2.2.9/bin/apachectl start
打开浏览器,输入http://192.168.1.107/svn/repos #本例服务器ip是192.168.1.107
使用刚才建立的权限用户名与密码登陆便可访问
注意:在你上传文件的时候可能会有以下权限不足的提示
Permission denied svn: Commit failed (details follow): svn: Can't create directory '/opt/svndata/repos/db/transactions/0-1.txn': Permission denied
这是由于apache在线程用户没有权限访问svn的仓库,二者分别属于不一样的用户者
本例apache属于daemon拥有者,而svn仓库属于svn拥有者
解决方法:
chown -R daemon /opt/svndata/repos chmod -R 755 /opt/svndata/repos
重启下apache:
/usr/local/apache2.2.9/bin/apachectl stop /usr/local/apache2.2.9/bin/apachectl start
“Could not open the requested SVN filesystem” errorcode=2
若是出现这个错误你就得看一下Apache的httpd.conf文件里面相关版本库路径是否是正确,请确保使用的是绝对路径.