linux(CentOS4) 环境apache+svn完全配置(实际配置日记)
2012-03-31 00:00
756 查看
linux(CentOS4) 环境apache+svn完全配置(实际配置日记)
××××××终于完成了,希望看过的朋友给点意见!××××××!
一、使用前的心得
配置前,要知道自己要做什么,因为很多人是新接触svn的,对其不是很了解,甚至有同学问我,svn?是干什么的?
我这次配置要做的工作,就是要满足我们开发团队对代码的管理和共享!所以,要求搭建svn服务器。
开始的时候我很困惑,不知道为何linux下搭建svn的时候都和apache配在一起,以至于被二者的关系弄的cloud the issue!现在我终于明白:(h_oko指点的)apache+svn模式,是有利大团队远程协作,通过互联网访问的一种解决方案。也就是说要把apache服务器发不到公网上,那样才有apache的实际意义!否则。。。!!
那么,如果有了上面的了解,你就要清楚自己到底想要用什么?也就清楚如果选择apache+svn了!!
然后,对于操作系统的了解也是必要的,比如我是装在linux系统下,对于linux系统的权限问题很有必要了解。(这也是后来我解决问题的关键!)
最后,再强调一点,svn和apache可以结合,也可以单独使用!!
二、工具包准备
软件安装包,在linux系统下,要准备的都是一些.tar.gz等等类似的压缩包,有关linux的压缩问题,不清楚的再去补课!
准备的软件包如下:
httpd-2.2.3.tar.gz
subversion
-1.4.5.tar.gz
apr-1.2.x.tar.gz
apr-util-1.2.x.tar.gz
.......
实际上我就准备了这两个包,因为我的系统已经在事先更新了所有的
编译
用的最新的包,包括apr / apr-util /
mod
_
dav
_svn 这些包,如果你的系统没有的,那么就去网上找吧,找不到的来这里要!
下载
地址
我就不再重复了!
三、安装apache
安装apache没有什么特别的,跟正常编译apache基本相同,惟一要注意的一点:要注意下面的红色参数
[root@localhost soft]#./
conf
igure --prefix=/
usr
/local/apache
--enable-so
--enable-dav=share
--enable-dav-fs
--with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/
ps:其他apache参数这里不多说,多了容易昏厥!这里dav模块主要是为了加载svn的mod_dav_svn,apr和apr-util如果没有特殊安装的话,这里也不用指定!因为系统默认的apr版本如果 >=1.2 就ok了!至于特殊的地方如果需要特殊的版本的apr,再另做研究!!!
[root@localhost soft]# make
[root@localhost soft]# make install
安装完成apache后,测试一下先
[root@localhost soft]# /usr/local/apache/bin/apachectl start
http://localhost
It Work!!
别问我it work是么意思!
四、安装svn
如果你是仅仅安装svn,那么在CentOS下,完全可以这样做:
[root@localhost svn]#yum install mod_dav_svn subversion
Dependencies Resolved
=============================================================================
Package Arch Version
Repository
Size
=============================================================================
Installing:
mod_dav_svn i386 1.1.4-2.ent base 50 k
subversion i386 1.1.4-2.ent base 1.6 M
Installing for dependencies:
apr i386 0.9.4-24.5.c4.1 base 88 k
apr-util i386 0.9.4-21 base 51 k
guile i386 5:1.6.4-14 base 746 k
httpd i386 2.0.52-22.ent.centos4 base 887 k
httpd-suexec i386 2.0.52-22.ent.centos4 base 28 k
neon i386 0.24.7-4 base 86 k
perl-URI noarch 1.30-4 base 79 k
swig i386 1.3.21-6 base 1.0 M
umb-scheme i386 3.2-35 base 967 k
Transaction Summary
=============================================================================
Install 11 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 5.5 M
Is this ok [y/N]:yes
ps:但是这样安装有个缺点,就是他会和系统默认的httpd绑定!而往往我们应用apache是要自行安装的!
这样安装后,可以单独应用svn服务了
[root@localhost svn]#mkdir /opt/svn
[root@localhost svn]#
svnserve
-d --listen-port 3690 --listen-host 172.17.7.230 -r /opt/svn
[root@localhost svn]#cd /opt/svn
[root@localhost svn]#svn
admin
create test1
[root@localhost svn]#mkdir /tmp/svnproj
[root@localhost svn]#cd /tmp/svnproj
[root@localhost svnproj]#mkdir 111 123 abc
[root@localhost svnproj]#vi 111/test1.cfg
[root@localhost svnproj]#vi 222/test2.txt
......
.......
[root@localhost svn]#svn
import
/tmp/svnproj file:///opt/svn/test1
导入成功后:
[root@localhost svn]# svn import /tmp/svntest/ file:///opt/svn/zx_svn_v1.0 -m "test2"
Adding /tmp/svntest/test
Adding /tmp/svntest/111
Adding /tmp/svntest/111/test111.txt
Adding /tmp/svntest/abc
Adding /tmp/svntest/123
Adding /tmp/svntest/123/test123.cfg
Adding /tmp/svntest/svn-
commit
.tmp
Adding /tmp/svntest/svn-commit.2.tmp
Committed revision 1.
[root@localhost svn]#
修改配置
文件
:
authz
用户
权限文件
[root@localhost svn]#vi test1/conf/authz
.........
[groups]
zx_mld = mld
[test1:/]
@zx_mld = rw
* =
[test1:/111]
@zx_mld = rw
* = r
ps:有关svn的authz文件中
格式
的说明请另行探讨
用户
密码
文件
[root@localhost svn]# vi conf/passwd
[users]
mld = 123
svn配置文件
[root@localhost svn]#vi conf/svnserve.conf
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
三个配置文件修改后,
自动
生效!
PS:切忌,这三个配置文件的配置内容前面都不允许出现空格。这里尤其容易忽略的是第三个文件,
svnserve.conf中,系统默认的上面,如果你只是单纯的去掉#号后,后面是有空格的!仅一个空格符也不行!!切忌!
一切配置好后,测试svn服务的
运行
情况!
在
客户端
用tsvn链接,地址输入:svn://xxx.xxx.xxx.xxx/test1
如果你是安装apache+svn,那么在CentOS下,这样做:
#tar xzvf
#cd subversion-1.4.5.tar.gz
#./configure --prefix=/usr/local/svn
--with-apxs=/usr/local/apache/bin/apxs
--with-berkeley-db=/usr/local/db-4.3.29/ --with-
ssl
PS:以上配置中,红色的部分必须指定,这个是指定关联到你自己安装的apache。其他的,例如 --prefix --berkeley-db --with-ssl
可以根据实际情况,不用配置!
#make
#make install
安装完成后,去检查你的apache的配置文件,在apache的安装
目录
/conf/httpd.conf
看到里面有这样的两行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
PS:我看到有的文章说,如果没有这两行就手动加上,其实我个人感觉应该必然会有,如果没有,那估计是你哪步安装有问题了
继续修改配置文件,加入:
<Location /zx_svn>
DAV svn
SVNPath /opt/svn/test1
AuthzSVNAccessFile /etc/svn-acl-conf
AuthType Basic
AuthName "Subversion repos"
AuthUserFile /etc/svn-auth-conf
Require valid-user
</Location>
上面一段配置文件中,涉及到具体目录的,自己修改一下!不要盲目照搬!
#htpasswd -cm /etc/svn-auth-conf yourusername
New password:
Re-type new password:
Adding password for user yourusername
#htpasswd -m /etc/svn-auth-conf yourusername2
New password:
Re-type new password:
Adding password for user anotherusername
#/usr/local/apache/bin/apachectl
启动apache后,执行上面的建立svn
版本库
、导入的过程(此处如果和上面结合一起的话,只安装一次即可。不用重复安装!)。
完成后,在
浏览器
地址栏里输入:
http://xxx.xxx.xxx.xxx/test1
能通过浏览器看到之前导入的页面,即表示成功了!
然后根据接入版本苦的用户的权限,修改权限管理文件:/etc/svn-acl-conf
五、测试
svn 模式:
用客户端TSVN测试,在tsvn浏览的地址栏中输入:svn://xxx.xxx.xxx.xxx/你的版本库名字
apache模式:
在浏览器地址栏内输入:
http://xxx.xxx.xxx.xxx/
你的版本库名字
commit,
update
如果遇到问题,那么首先去检查权限控制文件内用户的权限,然后如果是权限控制文件的配置没有问题,那么再去检查对应的配置中目录的权限!处了这两天权限问题,如果你还不能访问,那很有可能是你服务没启动、地址输入错误、
用户名
密码错误等等低级错误了!
另外,强调一点,linux下对于端口的要求很多,svn默认的是3690,apache默认的是80,这两个端口你要是修改了的话,通过http://访问的时候,后面要加上端口号!svn的好像不用,可以测试一下,这里我懒了,没测试过svn的!
同时,如果你的linux服务器有防火墙,记着开放对应端口!
六、需要注意的地方:
1.svn和apache+svn不要混了,只是两种不同模式,两种不同服务的结合!
2.linux下面权限的问题,比如,我开始建立svn库的时候,建立在/var/目录下面,后来弄了很久,发现是这个目录下对于用户的权限要求比较严格,以至于我没有权限,而链接异常!后来我改到/opt目录下,或者/tmp目录下,都是可以了,当然,这个也不能把权限放的太宽,当你选好了一个目录后,还是要把权限限制在一定用户使用范围内的,因为这是你的仓库哦:)
3.端口、防火强问题,切忌该开的一定要开,不该开的一定才不开!
4.版本库的规划,合并
5.对于版本库的管理方面,中文乱码方面也是个问题,稍后使用中会不断总结和大家分享的!
七、心得
多实践,多动手!
八、附录--svn常用基本命令
SVN 基本
功能
:
Import: 将整个 project_directory 的资料 import 到 svn 里
svn import project_directory http://DOMAIN/svn_project
svn import project_directory file:///SVN_PATH/svn_project
Checkout: (
check
out 可简写成 co), 将资料 checkout 出来
svn co http://SVN_PATH/svn_project
svn co file:///SVN_PATH/svn_project
svn co -r 12 file:///var/lib/svn/dev/projects # checkout出第12版的 projcets code
List: (list 可简写成 ls), 列表,查看有上面有哪些资料
svn ls http://SVN_PATH/svn_project
svn ls file:///SVN_PATH/svn_project
Update: (update 简写 up), 更新
SVN_CHECKOUT_DIR$ svn up
Commit: (commit 简写 ci), 提交到svn
SVN_CHECKOUT_DIR$ svn ci
Status: (status 简写 st), 查看目前本地版本/结构跟 svn 上的有哪些不同
SVN_CHECKOUT_DIR$ svn st
Add: 新增加到 svn
SVN_CHECKOUT_DIR$ svn add filename 或 svn add directory
MV: 修改档案名,且保留此档案之前的名字
SVN_CHECKOUT_DIR$ svn mv filename new_filename
Revert: 还愿这次的修改,回到前一个状态(未 commit 前可用)
SVN_CHECKOUT_DIR$ svn revert [file | directory]
SVN 档案状态信息:
?: 此档案不存在 SVN 里面
A: 本次新增的档案
C: 此档案有人修改过,合并不成功,需要手动介入
D: 此次移除的档案
M: 此档案有修改过
U: 此档案有被更新过
××××××终于完成了,希望看过的朋友给点意见!××××××!
一、使用前的心得
配置前,要知道自己要做什么,因为很多人是新接触svn的,对其不是很了解,甚至有同学问我,svn?是干什么的?
我这次配置要做的工作,就是要满足我们开发团队对代码的管理和共享!所以,要求搭建svn服务器。
开始的时候我很困惑,不知道为何linux下搭建svn的时候都和apache配在一起,以至于被二者的关系弄的cloud the issue!现在我终于明白:(h_oko指点的)apache+svn模式,是有利大团队远程协作,通过互联网访问的一种解决方案。也就是说要把apache服务器发不到公网上,那样才有apache的实际意义!否则。。。!!
那么,如果有了上面的了解,你就要清楚自己到底想要用什么?也就清楚如果选择apache+svn了!!
然后,对于操作系统的了解也是必要的,比如我是装在linux系统下,对于linux系统的权限问题很有必要了解。(这也是后来我解决问题的关键!)
最后,再强调一点,svn和apache可以结合,也可以单独使用!!
二、工具包准备
软件安装包,在linux系统下,要准备的都是一些.tar.gz等等类似的压缩包,有关linux的压缩问题,不清楚的再去补课!
准备的软件包如下:
httpd-2.2.3.tar.gz
subversion
-1.4.5.tar.gz
apr-1.2.x.tar.gz
apr-util-1.2.x.tar.gz
.......
实际上我就准备了这两个包,因为我的系统已经在事先更新了所有的
编译
用的最新的包,包括apr / apr-util /
mod
_
dav
_svn 这些包,如果你的系统没有的,那么就去网上找吧,找不到的来这里要!
下载
地址
我就不再重复了!
三、安装apache
安装apache没有什么特别的,跟正常编译apache基本相同,惟一要注意的一点:要注意下面的红色参数
[root@localhost soft]#./
conf
igure --prefix=/
usr
/local/apache
--enable-so
--enable-dav=share
--enable-dav-fs
--with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/
ps:其他apache参数这里不多说,多了容易昏厥!这里dav模块主要是为了加载svn的mod_dav_svn,apr和apr-util如果没有特殊安装的话,这里也不用指定!因为系统默认的apr版本如果 >=1.2 就ok了!至于特殊的地方如果需要特殊的版本的apr,再另做研究!!!
[root@localhost soft]# make
[root@localhost soft]# make install
安装完成apache后,测试一下先
[root@localhost soft]# /usr/local/apache/bin/apachectl start
http://localhost
It Work!!
别问我it work是么意思!
四、安装svn
如果你是仅仅安装svn,那么在CentOS下,完全可以这样做:
[root@localhost svn]#yum install mod_dav_svn subversion
Dependencies Resolved
=============================================================================
Package Arch Version
Repository
Size
=============================================================================
Installing:
mod_dav_svn i386 1.1.4-2.ent base 50 k
subversion i386 1.1.4-2.ent base 1.6 M
Installing for dependencies:
apr i386 0.9.4-24.5.c4.1 base 88 k
apr-util i386 0.9.4-21 base 51 k
guile i386 5:1.6.4-14 base 746 k
httpd i386 2.0.52-22.ent.centos4 base 887 k
httpd-suexec i386 2.0.52-22.ent.centos4 base 28 k
neon i386 0.24.7-4 base 86 k
perl-URI noarch 1.30-4 base 79 k
swig i386 1.3.21-6 base 1.0 M
umb-scheme i386 3.2-35 base 967 k
Transaction Summary
=============================================================================
Install 11 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 5.5 M
Is this ok [y/N]:yes
ps:但是这样安装有个缺点,就是他会和系统默认的httpd绑定!而往往我们应用apache是要自行安装的!
这样安装后,可以单独应用svn服务了
[root@localhost svn]#mkdir /opt/svn
[root@localhost svn]#
svnserve
-d --listen-port 3690 --listen-host 172.17.7.230 -r /opt/svn
[root@localhost svn]#cd /opt/svn
[root@localhost svn]#svn
admin
create test1
[root@localhost svn]#mkdir /tmp/svnproj
[root@localhost svn]#cd /tmp/svnproj
[root@localhost svnproj]#mkdir 111 123 abc
[root@localhost svnproj]#vi 111/test1.cfg
[root@localhost svnproj]#vi 222/test2.txt
......
.......
[root@localhost svn]#svn
import
/tmp/svnproj file:///opt/svn/test1
导入成功后:
[root@localhost svn]# svn import /tmp/svntest/ file:///opt/svn/zx_svn_v1.0 -m "test2"
Adding /tmp/svntest/test
Adding /tmp/svntest/111
Adding /tmp/svntest/111/test111.txt
Adding /tmp/svntest/abc
Adding /tmp/svntest/123
Adding /tmp/svntest/123/test123.cfg
Adding /tmp/svntest/svn-
commit
.tmp
Adding /tmp/svntest/svn-commit.2.tmp
Committed revision 1.
[root@localhost svn]#
修改配置
文件
:
authz
用户
权限文件
[root@localhost svn]#vi test1/conf/authz
.........
[groups]
zx_mld = mld
[test1:/]
@zx_mld = rw
* =
[test1:/111]
@zx_mld = rw
* = r
ps:有关svn的authz文件中
格式
的说明请另行探讨
用户
密码
文件
[root@localhost svn]# vi conf/passwd
[users]
mld = 123
svn配置文件
[root@localhost svn]#vi conf/svnserve.conf
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
三个配置文件修改后,
自动
生效!
PS:切忌,这三个配置文件的配置内容前面都不允许出现空格。这里尤其容易忽略的是第三个文件,
svnserve.conf中,系统默认的上面,如果你只是单纯的去掉#号后,后面是有空格的!仅一个空格符也不行!!切忌!
一切配置好后,测试svn服务的
运行
情况!
在
客户端
用tsvn链接,地址输入:svn://xxx.xxx.xxx.xxx/test1
如果你是安装apache+svn,那么在CentOS下,这样做:
#tar xzvf
#cd subversion-1.4.5.tar.gz
#./configure --prefix=/usr/local/svn
--with-apxs=/usr/local/apache/bin/apxs
--with-berkeley-db=/usr/local/db-4.3.29/ --with-
ssl
PS:以上配置中,红色的部分必须指定,这个是指定关联到你自己安装的apache。其他的,例如 --prefix --berkeley-db --with-ssl
可以根据实际情况,不用配置!
#make
#make install
安装完成后,去检查你的apache的配置文件,在apache的安装
目录
/conf/httpd.conf
看到里面有这样的两行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
PS:我看到有的文章说,如果没有这两行就手动加上,其实我个人感觉应该必然会有,如果没有,那估计是你哪步安装有问题了
继续修改配置文件,加入:
<Location /zx_svn>
DAV svn
SVNPath /opt/svn/test1
AuthzSVNAccessFile /etc/svn-acl-conf
AuthType Basic
AuthName "Subversion repos"
AuthUserFile /etc/svn-auth-conf
Require valid-user
</Location>
上面一段配置文件中,涉及到具体目录的,自己修改一下!不要盲目照搬!
#htpasswd -cm /etc/svn-auth-conf yourusername
New password:
Re-type new password:
Adding password for user yourusername
#htpasswd -m /etc/svn-auth-conf yourusername2
New password:
Re-type new password:
Adding password for user anotherusername
#/usr/local/apache/bin/apachectl
启动apache后,执行上面的建立svn
版本库
、导入的过程(此处如果和上面结合一起的话,只安装一次即可。不用重复安装!)。
完成后,在
浏览器
地址栏里输入:
http://xxx.xxx.xxx.xxx/test1
能通过浏览器看到之前导入的页面,即表示成功了!
然后根据接入版本苦的用户的权限,修改权限管理文件:/etc/svn-acl-conf
五、测试
svn 模式:
用客户端TSVN测试,在tsvn浏览的地址栏中输入:svn://xxx.xxx.xxx.xxx/你的版本库名字
apache模式:
在浏览器地址栏内输入:
http://xxx.xxx.xxx.xxx/
你的版本库名字
commit,
update
如果遇到问题,那么首先去检查权限控制文件内用户的权限,然后如果是权限控制文件的配置没有问题,那么再去检查对应的配置中目录的权限!处了这两天权限问题,如果你还不能访问,那很有可能是你服务没启动、地址输入错误、
用户名
密码错误等等低级错误了!
另外,强调一点,linux下对于端口的要求很多,svn默认的是3690,apache默认的是80,这两个端口你要是修改了的话,通过http://访问的时候,后面要加上端口号!svn的好像不用,可以测试一下,这里我懒了,没测试过svn的!
同时,如果你的linux服务器有防火墙,记着开放对应端口!
六、需要注意的地方:
1.svn和apache+svn不要混了,只是两种不同模式,两种不同服务的结合!
2.linux下面权限的问题,比如,我开始建立svn库的时候,建立在/var/目录下面,后来弄了很久,发现是这个目录下对于用户的权限要求比较严格,以至于我没有权限,而链接异常!后来我改到/opt目录下,或者/tmp目录下,都是可以了,当然,这个也不能把权限放的太宽,当你选好了一个目录后,还是要把权限限制在一定用户使用范围内的,因为这是你的仓库哦:)
3.端口、防火强问题,切忌该开的一定要开,不该开的一定才不开!
4.版本库的规划,合并
5.对于版本库的管理方面,中文乱码方面也是个问题,稍后使用中会不断总结和大家分享的!
七、心得
多实践,多动手!
八、附录--svn常用基本命令
SVN 基本
功能
:
Import: 将整个 project_directory 的资料 import 到 svn 里
svn import project_directory http://DOMAIN/svn_project
svn import project_directory file:///SVN_PATH/svn_project
Checkout: (
check
out 可简写成 co), 将资料 checkout 出来
svn co http://SVN_PATH/svn_project
svn co file:///SVN_PATH/svn_project
svn co -r 12 file:///var/lib/svn/dev/projects # checkout出第12版的 projcets code
List: (list 可简写成 ls), 列表,查看有上面有哪些资料
svn ls http://SVN_PATH/svn_project
svn ls file:///SVN_PATH/svn_project
Update: (update 简写 up), 更新
SVN_CHECKOUT_DIR$ svn up
Commit: (commit 简写 ci), 提交到svn
SVN_CHECKOUT_DIR$ svn ci
Status: (status 简写 st), 查看目前本地版本/结构跟 svn 上的有哪些不同
SVN_CHECKOUT_DIR$ svn st
Add: 新增加到 svn
SVN_CHECKOUT_DIR$ svn add filename 或 svn add directory
MV: 修改档案名,且保留此档案之前的名字
SVN_CHECKOUT_DIR$ svn mv filename new_filename
Revert: 还愿这次的修改,回到前一个状态(未 commit 前可用)
SVN_CHECKOUT_DIR$ svn revert [file | directory]
SVN 档案状态信息:
?: 此档案不存在 SVN 里面
A: 本次新增的档案
C: 此档案有人修改过,合并不成功,需要手动介入
D: 此次移除的档案
M: 此档案有修改过
U: 此档案有被更新过
相关文章推荐
- Linux环境CENTOS下apache-ftpserver搭建配置及后台启动
- 阿里云服务器下安装LAMP环境(CentOS Linux 6.3) 安装与配置 Apache 服务
- Linux[Centos6.3] 源码编译安装配置 SVN+Apache
- 【centos6.5】CentOS 6.5系统安装配置LAMP(Apache+PHP5+MySQL)服务器环境(linux公社)
- centos 6.5 安装配置LAMP(linux,apache,mysql,php)环境
- centos6.6基于apache环境SVN配置
- SeLinux+CentOS+Apache+mod_fastcgi配置FastCGI环境
- (总结)CentOS Linux搭建SVN Server配置详解
- centos6.6环境下配置PHP,apache与m…
- linux(centos 7) 环境 mongodb 安装,配置,创建用户密码
- lamp环境搭建 centos5.5 +Apache2.2.9 +mysql5.1.18+php5.3.6 源码安装,【附配置环境】
- Centos Linux系统下配置网站开发环境(jdk7+mysql5.6+tomcat)
- Linux(CentOS)下配置安装Tomcat并配置JDK环境
- linux centos svn 安装配置自动同步更新web服务
- CentOS6.5安装配置SVN+Apache
- 超简单 linux centos 下修改 apache 配置 网站目录
- linux CentOS 6.5 下安装jdk1.7, tomcat7.0环境配置
- Linux/Centos环境安装配置Swftools pdf转swf 及java代码转化
- LINUX(centos7 + jdk7+mysql+tomcat7)环境配置
- CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境