开发者社区> 技术小阿哥> 正文

Linux SVN 和 apache的整合

简介:
+关注继续查看

需要软件包:

apr-1.5.2.tar.gz

apr-util-1.5.4.tar.gz

httpd-2.4.23.tar.gz

openssl-1.0.1.tar.gz

sqlite-autoconf-3140100.tar.gz

subversion-1.9.4.tar.gz

zlib-1.2.8.tar.gz


一.安装apr和apr-uti

#mkdir -p /app/3rd

#mkdir -p /data/software

#wget http://mirror.bit.edu.cn/apache//apr/apr-1.5.2.tar.gz

#tar zxvf apr-1.5.2.tar.gz  

#cd apr-1.5.1 

#./configure --prefix=/usr/local/apr(如果报错rm: cannot remove `libtoolT': Nosuch file or directory,直接打开 configure,把 $RM “$cfgfile” 30145行删除掉,重新再运行 ./configure 就可以了。)  

#make && make install  


验证:
#/usr/local/apr/bin/apr-1-config --version
1.5.1

 

#cd /data/software

#wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.5.4.tar.gz

#tar zxvf apr-util-1.5.4.tar.gz  

#cd apr-util-1.5.4 

#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/  

#make && make install  


验证:
#/usr/local/apr-util/bin/apu-1-config --version
1.5.4 


二.安装sqlite3

#wget http://www.sqlite.org/2013/sqlite-autoconf-3080000.tar.gz

#tar zxvf sqlite-autoconf-3080000.tar.gz  

#cd sqlite-autoconf-3080000  

#./configure   

#make && make install  



三.安装openssl

#wget http://www.openssl.org/source/openssl-1.0.1.tar.gz

#tar xzvf openssl-1.0.1.tar.gz  

#cd openssl-1.0.1  

#./config-fPIC--prefix=/usr/local/openssl/enable-shared

#make && make install  



四.安装apachehttp server 和ssl model

#wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.29.tar.gz

#tar zxvf httpd-2.2.29.tar.gz  

#export LDFLAGS=-ldl  

#cd httpd-2.2.29 

#./configure --prefix=/usr/local/apache --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 --enable-ssl --with-ssl=/usr/local/openssl  

#make && make install  


设置开机启动 

#cp  /usr/local/apache/bin/apachectl /etc/init.d/httpd  

#编辑/etc/init.d/httpd,在第二行增加如下内容  

#chkconfig: 2345 85 35  

#chkconfig httpd on  



通过service httpd start启动服务,正常情况下会提示启动成功,通过在其他电脑上打开浏览器浏览这台服务器IP的80端口服务,如果出现Itworks 字样,恭喜您,安装成功

如果出现
httpd: Could not reliably determine the server’s fullyqualified domain name
只需要编辑httpd.conf 将里面的
#ServerName www.example.com:80
注释去掉即可,,并改成ServerName 127.0.0.1:80

如果出现
Cannot load modules/mod_ssl.so into server:libssl.so.1.0.0:

执行:

# cp/usr/local/openssl/lib/libssl.so.1.0.0 /usr/lib64/

# cp/usr/local/openssl/lib/libcrypto.so.1.0.0 /usr/lib64/
五.安装zlib

#wget  http://jaist.dl.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz

#tar -xvzf zlib-1.2.8.tar.gz  

#cd zlib-1.2.8  

#./configure  

#make && make install  

六.安装subversion1.8.10

#wget http://mirror.esocc.com/apache/subversion/subversion-1.8.10.tar.gz 

#tar zxvf subversion-1.8.10.tar.gz  

#mkdir -p ./subversion-1.8.10/sqlite-amalgamation  

#cp ./sqlite-autoconf-3080000/sqlite3.c ./subversion-1.8.10/sqlite-amalgamation  

#cd subversion-1.8.10 

#./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config  --with-zlib --enable-maintainer-mode  

#make && make install  


验证:
#/usr/local/subversion/bin/svnserve --version
svnserve, version 1.8.10 (r1534716)


七、整合Apache
拷贝模块

#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/  


编辑http.conf文件
#vim /usr/local/apache/conf/httpd.conf
在最后面增加如下内容

#加载整合svn所需so文件  

################for svn#################3

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /svn>

  DAV svn

  #svn父目录

  SVNParentPath /data/zpy/svn

  #权限配置文件

  AuthzSVNAccessFile /data/zpy/svn/authz

  #连接类型设置

  AuthType Basic

  #连接框提示

  AuthName "Subversion.zoneyump"

  #用户配置文件

  AuthUserFile /data/zpy/svn/passwd

  #采用何种认证

  Require valid-user

</Location>



八、配置Subversion
1)建立svn版本库目录

#mkdir -p /data/zpy/svn/{its,ism}

#touch authz

#touch passwd


可以多建版本库目录,这里我的目录是its,ism

2)建立svn版本库

#svnadmin create /data/zpy/svn/ism   

#svnadmin create /data/zpy/svn/its


因为apache的线程使用的用户是apache

#chown -R apache.apache /data/zpy/svn  

#chmod -R 755 /data/zpy/svn   



3)建立本地访问控制文件

#/usr/local/apache/bin/htpasswd -cm  /data/zpy/svn/passwd  user1 

注意:如果没有文件就创建它并且给予755的权限。
然后输入密码即可,默认是MD5加密的
添加新用户

#/usr/local/apache/bin/htpasswd  /data/zpy/svn/passwd user2   



4)建立本地项目控制文件
#vim/data/zpy/svn/authz
本例authz内容为:

[groups]

admin = user01

dev3-web = user01,user02

[/]

@admin = rw

@dev3-web = r

[/ism]

@dev3-web = rw

[/its]

@dev3-web = rw

    



测试连接
1)启动apache

#service httpd start

#svnserve -d --listen-port 7200 -r /data/zpy/svn/ism/

#svnserve -d --listen-port 7201 -r /data/zpy/svn/its


对于报错:

svn: E170000: Unrecognized URL scheme for 'http://172.16.67.211/svn/cg-test'

解决方法:

# tar zxvf scons-2.3.3.tar.gz

# cd scons-2.3.3

# python setup.py install


# tar xvf serf-1.3.8.tar.bz2

# cd serf-1.3.8

# cp /usr/local/apr/bin/apr-1-config /usr/bin/

# cp /usr/local/apr-util/bin/apu-1-config /usr/bin/

# scons PREFIX=/usr/local/serf


# ln -s /usr/local/serf/lib/libserf-1.so.1 lib/libserf-1.so.1


2)再浏览器访问http://192.168.1.100/svn/its

在本机上通过svn客户端访问不能用svn://192.168.1.100/svn/its

只能用checkouthttp://192.168.1.100/svn/ism
     #本例服务器ip是192.168.1.100
    使用刚才创建的权限用户名与密码登录即可访问


客户端操作

#mkdir /data/svncheck

#cd /data/svncheck

#svn checkout http://10.0.70.242/svn/ism  --username=user01 --password=123456

#cd ism/

#touch ism.txt

#svn add ism.txt      add把新增的文件添加进去

#svn commit --force-log -m "ism.txt"   commit正式提交

#svn update ism.txt    更新

#svn lock -m "lock test file" ism.txt   加锁

#svn unlock ism.txt   解锁

#svn info ism.txt    查看信息

#svn update -r 1 ism.txt   更新到1版本

#svn update     如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

#svn update ism.txt    更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件然后清除svn resolved,最后再提交commit)

#svn delete ism.txt

#svn ci -m 'delete test file'     删除文件

#svn log ism.txt     查看日志


实现https、安装Neon(可以不需要。上面serf已实现)

neon并非必要软件,但如果需要通过http或者https协议访问版本库,那就必须安装。我们知道,SVN有ra_dav(http,https)、ra_svn(svn原生协议)、ra_local(本地路径)三种存取模块,系统为我们默认安装了ra_svn和ra_local,我们自己安装neon库,从而让svn支持ra_dav存储模块。


配置apache、创建证书。

# cd /etc/pki/tls/private/

# openssl genrsa -out my.key 1024

# openssl  req  -new  -key  my.key  -out  my.csr

# cd /etc/pki/tls/certs/

# openssl  x509  -req  -days  365  -in  /etc/pki/tls/private/my.csr  -signkey  /etc/pki/tls/private/my.key  -out  my.crt

# vim /usr/local/apache/conf/extra/httpd-ssl.conf

ServerName 172.16.67.213:443

SSLCertificateFile "/etc/pki/tls/certs/my.crt"

SSLCertificateKeyFile "/etc/pki/tls/private/my.key"


vim /usr/local/apache/conf/httpd.conf

ServerName 172.16.67.213:80

<Directory />

    Options FollowSymLinks

    AllowOverride None

    SSLRequireSSL

    Order deny,allow

    Deny from all

</Directory>

Include conf/extra/httpd-ssl.conf

<Location /svn>

  DAV svn

  #svn父目录

  SVNParentPath /data/cg/svn

  #权限配置文件

  AuthzSVNAccessFile /data/cg/svn/authz

  #连接类型设置

  AuthType Basic

  #连接框提示

  AuthName "Subversion.zoneyump"

  #用户配置文件

  AuthUserFile /data/cg/svn/passwd

  #采用何种认证

  Require valid-user

  SSLRequireSSL

</Location>


# yum install -y mod_ssl

# cp /usr/lib64/httpd/modules/mod_ssl.so /usr/local/apache/modules/

# /usr/local/apache/bin/httpd

# svn checkout https://172.16.67.213/svn/op-test --username=user1 --password=123456



本文转自 周新宇1991 51CTO博客,原文链接:http://blog.51cto.com/zhouxinyu1991/1847321,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
19805 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
29143 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
13572 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
22538 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
16434 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20693 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
14898 0
13689
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载