1.准备安装文件
linux下安装svn,以下是我安装所需要的所有安装包
2.安装apr和apr-util
#tar -zxvf apr-1.5.1.tar.gz
#./configure --prefix=/usr/local/apr
# make&&make install
#tar -zxvf apr-util-1.5.4.tar.gz
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
# make&&make install
3.安装Pcre 和Apache
#tar -zxf pcre-8.36.zip
#./configure --prefix=/usr/local/pcre
#tar -zxf httpd-2.4.7.tar.gz
# make&&make install
#tar zxvf http httpd-2.4.10.tar.gz
#./configure --prefix=/usr/local/apache --enable-so --enable-dav --enable-dav-fs --enable-ssl --enable-maintainer-mode --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
# make&&make install
提示:如果出现
configure: error: We require OpenSSL; try --with-openssl
解决方法:
下载openssl:http://www.openssl.org/source/openssl-1.0.1j.tar.gz
#tar -zxvf openssl- openssl-1.0.1j.tar.gz
#cd openssl- openssl-1.0.1j
#./config -fPIC --prefix=/usr/local/openssl/ enable-shared
#make&&make install
这个时候apache的配置命令要加上 --with-openssl=/usr/local/openssl
注:如果缺失--enable-dav,启动apache时会报“httpd: Syntax error on line xxx of /usr/local/apache/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”需要重新编译安装才能解决
4.安装Sqlite
#tar zxf sqlite-autoconf-3080301.tar.gz
#./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-openssl --with-zlib --enable-maintainer-mode
# make&&make install
提示:configure配置SVN时可能提示如下错误信息:
configure: error: subversion requires zlib
错误提示需要安装zlib
下载zlb:http://zlib.net/
#tar -xvzf zlib-1.2.8.tar.gz
#cd zlib-1.2.8
#./configure
#make&&make install
5.安装Subversion
#tar zxf subversion-1.8.<span style="font-family:宋体;">10</span>.tar.gz
#./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-openssl=/usr/local/openssl --with-zlib=/usr/local/zlib --with-sqlite=/usr/local/sqlite --enable-maintainer-mode
# make&&make instal
提示:在以上编译过程中可能会出现 configure: error: Subversion requires SQLite
可以wget http://www.sqlite.org/sqlite-amalgamation-3071501.zip
安装Sqlite
unzip sqlite-amalgamation-3071501.zip
进入文件夹sqlite-amalgamation找到sqlite3.c
将其复制到 sqlite-autoconf-3080301 /sqlite3.c
重新执行上面的./configure 及make、make install
6.查看apache和苏北version是否安装成功
查看apache是否安装成功
启动apache
/usr/local/apache/bin/apachectl start
在浏览器输入http://serverIP,显示it works就说明apache安装成功
查看subversion是否安装成功
/usr/local/subversion/bin/svnserve --version
出现subversion的版本号,就表面安装成功
7.配置subversion通过apache访问
7.1配置subversion
#vi /usr/local/apache/conf/httpd.conf
查看httpd.conf文件里面是否有
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
没有的话,就在里面加上
拷贝相关库
#cp /usr/local/subversion/libexec/mod_authz_svn.so /usr/local/apache/modules/
#cp /usr/local/subversion/libexec/mod_dav_svn.so /usr/local/apache/modules/
注:这个很重要,不然subversion不能通过apache访问的。
7.2添加svn的验证文件svn-auth.conf
#/usr/local/apache/bin/htpasswd -cm /usr/local/subversion/svn/auth.conf getprod
#New password:
#Re-type new password:
#Adding password for user getprod
注:getprod就是用户名,只有第一次需要加-c参数,后期再添加用戶千万不能加-c,否则会将原文件覆盖,如下:
#/usr/local/apache/bin/htpasswd -m /subversion/svn/auth.conf getprodone
#New password:
#Re-type new password:
#Adding password for user getprodone
7.3 配置svn权限控制文件/usr/local/subversion/svn/svn-access.conf
[groups]
rd = user1,user2 #passwd文件中存在的用户,rd代表用户组,在组上赋权限
[/] #对svn库repo的根目录赋权,但随svn启动命令不同,写的不同
@rd = rw #对rd组赋读写权限
注:如果少了字符如[group],则用浏览器登录时,只能看到“Collection of Repositories
SVN权限控制请参考:http://blog.csdn.net/kobi521/article/details/87320497.4配置apache
打开apache配置文件
#vi /usr/local/apache/conf/httpd.conf
在最后面追加
<Location /svn>
DAV svn
SVNParentPath /mnt/svn/repository(此处配置你的版本库根目录)
AuthType Basic(连接类型设置 基本验证)
AuthName "Hello welcome to here"(此处字符串内容修改为提示对话框标题)
AuthUserFile /mnt/svn/repository/auth.conf(此处修改为访问版本库用户的文件,用apache的htpasswd命令生成)
AuthzSVNAccessFile /mnt/svn/repository/svn-access.conf(此处修改为访问版本库权限的文件)
Require valid-user("Requirevalid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,则只能第一个用户可以访问新建库)
</location>
修改apache的ip和端口
apche的默认端口是80,修改方法是打开apache配置文件
#vi /usr/local/apache/conf/httpd.conf
在里面搜索 80,将Listen 80 中的80改为你想要的端口
如果电脑有多个网卡,可以设置apache使用哪个网卡的ip,修改方法是打开apache配置文件
#vi /usr/local/apache/conf/httpd.conf
在里面搜索ServerName,在#ServerName www.example.com:80的下面追加一行
ServerName 192.168.1.1
最后保存httpd.conf文件
7.5 新建第一个SVN库
添加文件加:mkdir -p /data/svn/repo
#chmod 777 -R /data/svn/repo (给svn库赋予权限,否则svn提交的是否会提示:Permission denied)
# svnadmin create /data/svn/repo
7.6启动和关闭Subversion和Apache:
启动Subversion:/usr/local/subversion/bin/svnserve -d -r /mnt/svn/repository
启动Apache:/usr/local/apache/bin/apachectl start
关闭Subversion: killall svnserve
关闭Apache:/usr/local/apache/bin/apachectl stop
提示: 如果报“httpd: Syntax error on line xxx of /usr/local/apache/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”
可打开httpd.conf
vi /usr/local/apache/conf/httpd.conf
将#LoadModule dav_module modules/mod_dav.so前面的#去掉即可
在浏览器地址栏中输入http://svnserverIP:svnserverPort/svn
参考网址:
http://blog.sina.com.cn/s/blog_6870d1e00100jbox.html
http://blog.csdn.net/kobi521/article/details/8732049