设为首页 收藏本站
查看: 972|回复: 0

[经验分享] 一步一步搭建Svn+Apache环境

[复制链接]

尚未签到

发表于 2018-11-21 09:20:05 | 显示全部楼层 |阅读模式
  一步一步搭建Svn+Apache环境(附源码包)
  看了很多网上的搭建方法,但是因为配置的svn和Apache的版本问题和网上写的教程的不完整等原因,阻碍了很多想要学习的朋友!!今天亲手搭建了一下Svn+Apache环境,并且详细记录了每一步搭建的细节,送给需要的朋友们!
  软件版本:
  redhat6.4(64位)
  apr-1.5.1.tar.gz
  apr-util-1.5.3.tar.gz
  httpd-2.2.27.tar.gz
  sqlite-amalgamation-3.6.17.tar.gz
  sqlite-amalgamation-3071501.zip
  subversion-1.8.10.tar.gz
  TortoiseSVN_1.8.6.25419_x64_XiaZaiBa.zip(windows客户端)
  点击 下载所有源码包(免费下载,送给需要的朋友们)
  SVN介绍
  SVN是一个版本控制工具,Subversion的版本库(repository),就是位于服务器,统一管理和储存数据的地方。
  题外话,搭建SVN服务器apache是必须的吗?
  Subversion(SVN)作为一个单独的版本管理软件是不具备网页浏览功能的。就是说,你可以用版本管理的客户端比如:TotoriseSVN来和 SVN服务器进行连接。这样如果你的电脑没有安装SVN客户端就不能使用SVN服务器提供的服务了。为了实现请客户端的目标,就想通过网页来进行访问浏 览。所以就将网页浏览的功能通过Apache服务器来实现。而通过Apache的插件来和SVN进行连接后,用户可以通过浏览 器:IE,Firefox,NetScape等,访问SVN服务器。这样很方便了。现在有不少的SVN服务器软件直接提供网页功能,而且支持图形界面。我 个人使用的是VisualSVN,感觉不错,很容易管理,图形化的界面。你可以尝试下,至于SVN客户端你可以用TotoriseSVN。 NetBeans,Eclipse等开发IDE都内置了SVN插件,很容易用的。
  SVN数据存储方式
  在Subversion中,版本库的数据存储有两种方式:一种是在Berkeley DB数据库中存放数据;另一种是普通文件,采用自定义的格式来存储,称为FSFS。
  SVN搭建
  1、关闭iptables、selinux
service iptables stop #关闭防火墙  
setenforce 0 #临时关闭selinux
  
vi /etc/selinux/config   #永久关闭,要重启
  
将SELINUX=enforcing改为SELINUX=disabled
  2、创建管理用户
groupadd sinova  
mkdir /app
  
useradd -d /app/sinova -g sinova sinova
  
echo "sinova" | passwd --stdinsinova
  3、修改/etc/hosts
vi /etc/hosts 追加  
192.168.8.88 svn
  4、安装软件包
  4.1安装apache
tar zxf httpd-2.2.27.tar.gz  
cd httpd-2.2.27
  
./configure --prefix=/app/sinova/apache--enable-dav --enable-so --enable-modules=most
  
make
  
make install
  4.2 安装apr、apr-util
tar zxf apr-1.5.1.tar.gz  
cd apr-1.5.1
  
./buildconf   #验证系统是否已经安装python、autoconf、libtool,如果没有安装,使用yum或rpm方式安装相应包即可。
  验证正确的如下:
DSC0000.jpg

./configure --prefix=/app/sinova/apr  
make
  
make install
tar zxf apr-util-1.5.3.tar.gz  
cd apr-util-1.5.3
  
./configure --prefix=/app/sinova/apr-util--with-apr=/app/sinova/apr
  
make && make install
  4.3 安装sqlite
tar zxf sqlite-amalgamation-3.6.17.tar.gz  
cd sqlite-3.6.17/
  
./configure --prefix=/app/sinova/sqlite
  
make
  
make install
  4.4 安装svn
tar zxf subversion-1.8.10.tar.gz  
cd subversion-1.8.10
  
./configure --prefix=/app/sinova/svn --with-apxs=/app/sinova/apache/bin/apxs \
  
--with-apr=/app/sinova/apr/bin/apr-1-config \
  
--with-apr-util=/app/sinova/apr-util/bin/apu-1-config \
  
--with-sqlite=/app/sinova/sqlite/ --with-openssl \
  
--with-zlib--enable-maintainer-mod
  
make
  
make install
  configure时遇到错误:
  get the sqlite 3.7.15.1amalgamation from:
  http://www.sqlite.org/sqlite-amalgamation-3071501.zip
  unpack the archive usingunzip and rename the resulting
  directory to:
  /app/soft/subversion-1.8.10/sqlite-amalgamation
  configure: error:Subversion requires SQLite
  解决办法:
  如果服务器不能联网,下载http://www.sqlite.org/sqlite-amalgamation-3071501.zip,然后上传至服务器。解压
unzip sqlite-amalgamation-3071501.zip  
cp  sqlite-amalgamation-3071501/* sqlite-3.6.17
  配置SVN与apache 然后重新安装sqlite后再configure。
  1、创建svn项目仓库
chmod 777 /app [使用root用户操作]  
mkdir -p /app/svnroot/ltzb    #创建svn根目录
  
/app/sinova/svn/bin/svnadmin create /app/svnroot/ltzb/test
  2、创建权限配置文件
vi /app/svnroot/ltzb/authz.conf  #添加如下内容  
[/]
  
* = r  #表示对所有的用户开放读的权限
  
[test:/]
  
lipengfei= rw  #表示用户liyizhen对仓库test有读写权限。
  3、创建用户认证文件
/app/sinova/apache/bin/htpasswd -c/app/svnroot/ltzb/authfile lipengfei  4、加载模块
  svn安装完成后,会在/app/sinova/svn/libexec目录下产生mod_authz_svn.so和mod_dav_svn.so这两个模块,将这两个模块文件拷到apache模块目录下。
DSC0001.jpg

cp /app/sinova/svn/libexec/* /app/sinova/apache/modules/  5、编辑apache配置文件 #设置到权限问题使用root用户来操作,然后赋权给相应用户。
vi /app/sinova/apache/conf/httpd.conf文件,修改如下内容:  
User sinova     #修改  【66行】
  
Group sinova    #修改  【67行】
  
ServerName www.example.com:80    #去掉本行前面的注释
  
# LoadModule foo_module modules/mod_foo.so 添加
  
LoadModule dav_svn_module     modules/mod_dav_svn.so   #添加
  
LoadModule authz_svn_module   modules/mod_authz_svn.so  #添加
  以下内容在最后添加:
  
    DAV svn
  
    SVNParentPath "/app/svnroot/ltzb"
  
    AuthzSVNAccessFile"/app/svnroot/ltzb/authz.conf"
  
    AuthType Basic
  
    AuthName "Subversion.zoneyump"
  
    AuthUserFile"/app/svnroot/ltzb/authfile"
  
    Require valid-user
  

  6、启动apache[使用root用户,1024以下的端口全要有root权限启动]
/app/sinova/apache/bin/apachectlstart  使用SVN客户端测试
  1、通过浏览器访问svn,在地址栏中输入http://192.168.0.105/ltzb/test
DSC0002.jpg

  2、通过windows下的TortoiseSVN客户端checkout下载操作
  在E盘新建一个目录test(名称自定),进入该目录,鼠标右键选择SVN checkout...
DSC0003.jpg

DSC0004.jpg

  3、通过windows下的TortoiseSVN客户端commit上传操作
  鼠标右键 E盘test目录,选择SVN Commit...
DSC0005.jpg

DSC0006.jpg

  4、在windows下的D盘新建lipengfei目录,并checkout测试第3步测试成功否
  在D盘新建一个目录lipengfei(名称自定),进入该目录,鼠标右键选择SVN checkout...
DSC0007.jpg

DSC0008.jpg

  可以看出第3步在E盘test目录上传的1.txt是成功的,我在D盘新建lipengfei目录可以成功checkout下载出来!
  5、在windows下的D盘新建lipengfei目录,增加2.txt,测试E盘test目录的SVN update
  在D盘lipengfei目录增加2.txt,鼠标右键该目录选择SVN Commit...
DSC0009.jpg

DSC00010.jpg

DSC00011.jpg

  进入E盘,鼠标右键test目录选择SVN Update...
DSC00012.jpg

DSC00013.jpg

  可以看出在D盘lipengfei目录上传的2.txt是成功的,我在E盘test目录可以成功update出来!
  在Linux环境下安装好SVN服务器后,在Linux环境下可以正常地检出、提交,在Windows PC上把已有的Repository检出后,结果在提交的时候出现以下错误:
  svn: Can’t open file ‘/home/svn/db/txn-current-lock’: Permission denied
  出现这种问题的原因在于搭建SVN服务器,包括创建Repository目录/home/svn目录下的一切子目录和文件都是在root用户下进行的,所以在root用户下检出、提交都没有问题。可在Windows PC上从客户端访问就有问题了,因为是只有拥有管理器权限的人才能对Repository目录进行完全控制,而在Windows从客户端访问的话,因为是Users用户组的,对Repository没有修改权限,所以不能提交。
  解决办法:在服务器上把Users对Repository的完全控制权限加上就可以了,执行如下命令对/app/svnroot/ltzb目录下的所有文件和子目录添加Users的读写权限
chmod -R o+rw /app/svnroot/ltzb/test  现在可以正常地从Windows客户端下面进行检出和提交了。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-637604-1-1.html 上篇帖子: 我的Apache安全加固 下篇帖子: PHP使用Apache 中的ab 测试网站的压力性能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表