在开发中,直接使用SVN管理代码,但是对于SVN服务器的搭建,以http访问以及svn的可视化管理不太了解。所以此次尝试搭建。在搭建的过程,遇到了一些问题,在网上找了一些资源,发现有些还是跟自己遇到的不一样,所以记录下遇到的问题以及解决方法。
一、安装Linux虚拟机
安装包:
VirtualBox-4.3.6-91406-Win.exe
CentOS-6.5-x86_64-bin-DVD1to2
安装过程略,装完后,发现使用SSH(SecureCRT)连接不上,可以相互ping通,修改虚拟机网络连接方式为桥接网卡 可解决
以下安装都是在Linux虚拟机上执行
二、Apache安装
依赖安装包:
apr-1.5.0.tar.gz
apr-util-1.5.3.tar.gz
pcre-8.33.tar.gz
(注: zlib,openssl 未安装,可根据需要安装)
安装包:
httpd-2.4.7.tar.gz
#安装apr
tar -zxvf apr-1.5.0.tar.gz
./configure --prefix=/usr/local/apr --指定安装位置
make && make install
#安装apr-util
tar -zxvf apr-util-1.5.3.tar.gz
cd apr-util-1.5.3
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
#安装pcre
tar -zxvf pcre-8.33.tar.gz
cd pcre-8.33
./configure --prefix=/usr/local/pcre
make && make install
#安装apache
tar -zxvf httpd-2.4.7.tar.gz
cd httpd-2.4.7
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-module=so --enable-dav --enable-so
make & make install
安装完成之后需修改配置文件
vi /usr/local/apache2/conf/httpd.conf
#找到 User 和 Group 并修改成 User apache 和 Group apache
#找到 ServerName 并修改成ServerName localhost:80
保存并退出
启动并测试
cd /usr/local/apache2/bin
./apachectl start
也可在 /etc/init.d/ 编写shell脚本,这样就可以使用 service httpd start 启动了
浏览器访问IP,出现 It Works! 则安装成功。
三、安装subversion
依赖包:
apr-1.5.0.tar.gz
apr-util-1.5.3.tar.gz
sqlite-autoconf-3080100.tar.gz
安装包:
subversion-1.8.5.tar.gz
apr与apr-util已经安装。
#安装sqlite
tar -zxvf sqlite-autoconf-3080100.tar.gz
cd sqlite-autoconf-3080100
./configure --prefix=/usr/local/sqlite
make && make install
#安装SVN
cd subversion-1.8.5
./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-sqlite=/usr/local/sqlite/ --with-apxs=/usr/local/apache2/bin/apxs
make && make install
SVN_HOME=/usr/local/svn
export SVN_HOME
PATH=$PATH:$SVN_HOME/bin
export PATH
make -p /svn/
svnadmin create /svn/project1
#修改配置文件
vi /svn/project1/conf/svnserve.conf
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = project1
vim /svn/project1/conf/authz
[project1:/]
test1=rw
*=r
[project1:/trunk]
test2=rw
*=r
vim /svn/project1/conf/passwd
[users]
test1=123
test2=123
四、整合subversion和Apache,即使用http进行访问
使用http访问需重新生成账号、密码文件,因为是密码是加密的。
使用 /usr/local/apache2/bin/htpasswd -mc passwdfile test1
输入密码, 在当前目录下会生成一个 passwdfile文件。
在安装好的svn目录中(/usr/local/svn/libexec/)将 mod_authz_svn.so、mod_dav_svn.so 两个文件拷贝到apache目录中(/usr/local/apache2/modules/),然后修改apache的配置文件http.conf。
vim /usr/local/apache2/conf/httpd.conf
#添加如下三行
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule dav_module modules/mod_dav.so
#<span style="color:#ff0000;">在网上找的资料,一般都只说要加第一二行,没第三行</span>
#添加svn
<Location /svn>
DAV svn
SVNParentPath /svn
SVNListParentPath on
AuthType Basic
AuthName "Welcome"
AuthUserFile /usr/local/apache2/bin/passwdfile
AuthzSVNAccessFile /svn/project1/conf/authz
Require valid-user
</Location>
<span style="color:#ff0000;">#此处SVNParentPath 的路径不是 /svn/project1,如果要使用这个路径,则设置SVNPath这个参数,一般使用前者,便于对多个仓库进行管理</span>
重启Apache,就可以通过浏览器访问代码文件了。http://IP/svn/project1
五、安装php
安装包:
php-5.6.1.tar.gz
tar -zxvf php-5.6.1.tar.gz
cd php-5.6.1
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/lib
make & make install
六、IF.Svnamdin安装
安装包:
svnadmin-1.6.2.zip
这个解压就行了,同样也放在 /usr/local/svnadmin 下 chown -R apache.apache svnadmin/
七、整合Apache、php、IF.Svnadmin
主要是修改Apache的配置文件就行了
vim /usr/local/apache2/conf/httpd.conf
#确保下面代码,是去掉注释的,没有的补充添加上
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php .phtml .php3 .inc
#保存并退出
#找到Alias添加下面代码
Alias /svnadmin /usr/local/svnadmin
#添加module
LoadModule php5_module modules/libphp5.so
#找到DocumentRoot下的Directory标签,修改成如下
<Directory "/urs/local/svnadmin">
重启Apache,网页访问 http://IP/svnadmin,会出现设置页面。恭喜,大功告成。
另外,如果在网页里设置的 授权访问文件和身份验证文件 目录不一样,需要在httpd.conf中的Location中修改
参考资料:
http://wxb-j2ee.iteye.com/blog/2028806
http://blog.csdn.net/axu_beijing/article/details/22666981
这是在完全搭建完成之后再整理的,难免有疏漏和错误!!!