一、安装前的准备工作
1.下载 subversion-1.6.0.tar.gz: http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz
subversion-deps-1.6.0.tar.gz: http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz
httpd-2.2.11.tar.gz: http://apache.freelamp.com/httpd/httpd-2.2.11.tar.gz
apr-1.3.3.tar,gz: http://apache.freelamp.com/apr/apr-1.3.3.tar.gz
apr-util-1.3.4.tar.gz: http://apache.freelamp.com/apr/apr-util-1.3.4.tar.gz
zlib-1.2.3.tar.gz: http://www.zlib.net/zlib-1.2.3.tar.gz
Berkeley DB 4.7.25.tar.gz
2.rpm -qa|grep httpd apr subversion ,如果有的话,全部卸载.
二、开始安装
1.安装apr
cd apr
./configure --prefix=/usr/local/apr
make
make install
2.安装apr-util
cd apr-util
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
make
make install
3.安装zlib
cd zlib
./configure
make
make install
4.安装httpd
tar zxvf httpd-2.2.11.tar.gz
cd httpd-2.2.11
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config --enable-so --enable-dav --enable-maintainer-mode --enable-rewrite
make
make install
5.解压subversion
tar zxvf subversion-1.6.1.tar.gz
tar zxvf subversion-deps-1.6.1.tar.gz (这个解压后会自动放到前面一个解压的目录里的)
安装serf
cd subversion-1.6.1/serf
./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/
make
make install
安装 neon
cd subversion-1.6.1/neon
./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/
make
make install
安装 sqlite
cd subversion-1.6.1/sqlite-amalgamation
./configure --prefix=/usr/local/sqlite3
make
make install
6.安装subversion
cd subversion-1.6.1
./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config --with-sqlite=/usr/local/sqlite3 --with-ssl --with-zlib=/usr/lib --enable-maintainer-mode
make
make install
注意:configure时会警告要DBD的支持,可以忽略,但我们还是把它装上
7.安装db-4.7.25.tar.gz
tar -zxvf db-4.7.25.tar.gz
cd db-4.7.25/dist
./configure(我执行这一步的时候 报错说该文件目录下不可以 然后建议我换到../build_unix下重新执行,然后照做 OK)
make
make install
vi /etc/ld.so.conf 加入下面一行
/usr/local/BerkeleyDB.4.7/lib #保存
ldconfig
(一下两个命令提示我要覆盖某些文件么 然后我执行覆盖)
cp /usr/local/BerkeleyDB.4.7/include/* /usr/include
cp /usr/local/BerkeleyDB.4.7/lib/* /usr/lib
重新执行安装 (没搞明白这里的重新执行安装是指的安装什么 然后只是安装了这个db-4.7.25.tar.gz)
三、配置
1.vi /usr/local/apache/conf/httpd.conf 查看是否有如下2行,有就对了
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
2.建立版本库
mkdir /code (代码的根目录,根据自己情况)
/usr/local/svn/bin/svnadmin create /code/test (建一个test项目)
ls /code/test 里面多了些文件就对了(刚刚执行到这里的时候 文件里面没有dav 当时以为做错了什么然后硬着头皮到最后 完全搞定的时候 再次查看 就有了dav文件夹了)
//这条语句将把路径/home/wordspace下找到的文件导入到你创建的Subversion 仓库中去,
//提交后的修订版为1。(随便找一个文件目录 就可以的)
# ./svn import /home/wordspace file:///code/test –m "注释"
//不让其他人有该目录的权限
# chmod 700 /code/test //这句话(也许不是)有时导致客户端不能访问:
svn: 提交失败(细节如下):
svn: Can't create directory '/code/test/db/transactions/1-2.txn': Permission denied
这样就可以了:
chown -R daemon /code/test
chmod -R 755 /code/test
3.配置Apache来支持SVN
vi /usr/local/apache/conf/httpd.conf
在末尾加上如下内容:
<Location /svn>
DAV svn
SVNParentPath /code #svn父目录
AuthzSVNAccessFile /code/test/conf/authz #权限配置文件
AuthType Basic #连接类型设置
AuthName "Subversion" #连接框提示
AuthUserFile /code/test/conf/passwd #用户配置文件
Require valid-user #采用何种认证
</Location>
保存退出
4.启动 apache
cd /usr/local/apache2/bin
./apachectl start
打开IE,输入:http://IP/svn/test 或 http://localhost/svn/test
会弹出一个输用户和密码的框就对了
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
#vi /usr/local/apache2/conf/httpd.conf
找到#ServerName www.example.com:80 把#去掉,再重启apache即可没事了。
5.创建用户配置文件
htpasswd -c /code/test/conf/passwd user1 //必须要这样创建.
回车输入密码 (-c是第一次要创建文件)
htpasswd /code/test/conf/passwd user2
回车输入密码
.
.等
6.创建权限配置文件
vi /code/test/conf/authz
[test:/]
user1 = rw
user2 = r
保存退出
注:
[test:/] //这表示,仓库test的根目录下的访问权限
user1 = rw //test仓库user1用户具有读和写权限
user2 = r //test仓库user2用户具有读权限
[test2:/] //test2仓库根目录下的访问权限
user1 = r //user1用户在test2仓库根目录下只有读权限
user2 = //user2用户在 test2仓库根目录下无任何权限
[/] //这个表示在所有仓库的根目录下
* = r //这个表示对所有的用户都具有读权限
#[groups] //这个表示群组设置
#svn1-developers = user1, user2 //这个表示某群组里的成员
#svn2-developers = user1
#[svn1:/]
#@svn1-developers = rw //如果在前面加上@符号,则表示这是个群组权限设置
7.重启Apache
cd /usr/local/apache2/bin
./apachectl restart
打开IE,输入:http://IP/svn/test 或 http://localhost/svn/test
会弹出一个输用户和密码的框
输入你的添加的用户和密码就ok了