Centos5.5下面lnmp环境配置独立的svn服务器
落鹤生 发布于 2013-11-30 23:04 点击:次
|
|
svn服务器是项目开发中版本发布器,软件编程用的,我是给人家配置环境的,第 一次接触svn有点困难,网上搜了很多,也看了很多,终于摸索出针对自己 服务器的环 境的方案,我们服务器的环境是 Centos5.5加lnmp的环境,所以没有apache,那就不 能配置基于apache访问的svn
svn服务器是项目开发中版本发布器,软件编程用的,我是给人家配置环境的,第 一次接触svn有点困难,网上搜了很多,也看了很多,终于摸索出针对自己 服务器的环 境的方案,我们服务器的环境是 Centos5.5加lnmp的环境,所以没有apache,那就不 能配置基于apache访问的svn,也就不能通过网页输入http//:ip的形 式访问,那么网 上的一大半的教程都没用啦, 要配置独立的svn服务器,我把我在安装的过程中遇到的问题列出了一下也分析一 下,大家都是普通人,所以我遇到的问题,有的人也可能遇到。
首先是下载svn的源码安装包
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=0&expandFolder=0&folderID=0
# wget “http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz”
# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz
然后放在一个目录下面解压
用命令 tar zxvf 解压
切记这两个文件要在同一目录下面。然后进入解压后的目录执行源码安装
./configure
make
make install
这些都没有问题,其中有可能会在make install 后遇到一个找不到
/usr/local/src/subversion‐1.5.2/subversion/svnversion/.libs/lt‐svnversion: error
while loading shared libraries: libexpat.so.1: cannot open shared object file: No such file
or directory这个是找不到lib库的路径
编辑etc/ld.so.conf文件
在里面添加
/usr/local/lib
保存退出然后运行ldconfig这个命令,然后在make install 就可以啦
下一部就是配置svn
1.安装svn服务器端
yum install subversion 从镜像下载安装svn服务器端
cd /usr/local/ //进入目录,准备创建svn目录
mkdir svn //创建一个svn目录
chmod -R 777 svn //修改目录权限为777
svnadmin create /usr/local/svn/sunny //创建一个svn版本仓库sunny(sunny可以随便起名字)
cd sunny/conf //进入sunny版本仓库下的配置文件目录
下面要修改这个目录下的三个配置文件
(1)vi svnserve.conf //配置版本库信息和用户文件和用户密码文件的路径、版本库路径
[
把
# anon-access = read
# auth-access = write
# password-db = passwd
//这四行,前面的#号和空格去掉,变成
anon-access = none //改成none
auth-access = write
password-db = passwd
realm = sunny //改成自己的版本库
保存
(2)vi authz //文件,创建svn组和组用户的权限
[group]
sunny = gep,wce //创建一个sunny的组,并制定两个用户gep和wce
[/] //制定根目录下的权限
@sunny = rw //sunny组用户权限为读写
* = r //其他用户只有读权限
保存退出
(3) vi passwd //创建或修改用户密码
[users]
gep = 123456 //用户名为gep的用户的密码为123456
wce = 123456 //。。。
保存退出
然后要设置自启动
vi /etc/rc.local 打开自启动文件
文件内容如下
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/usr/local/webserver/mysql/3306/mysql start
ulimit -SHn 51200
/usr/local/webserver/php/sbin/php-fpm start
/usr/local/webserver/nginx/sbin/nginx
svnserve -d -r /usr/local/svn/sunny
#/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock
svn命令:
lsof -i :3690 查看svn是否启动
ps aux |grep 'svn' 查找所有svn启动的进程
kill -9 2505 杀死2505这个查找到的svn进程
svnserve -d -r /usr/local/svn/sunny 启动svn(可以把这个放到/etc/local/rc.local文件中,实现开机自启动)
这个有必要解释一下 –d是后台运行 ‐
是读取版本库的根目录,如果在根目录下面再
svn up //更新文件
#svn commit -m "注释" xxx.php //提交文件
svn ci -m'aaa' test.php //提交文件
#svn add file //新建文件并添加到svn
svn add *.php //(添加当前目录下所有的php文件)
svn delete test.php //删除test.php
svn log test.php //查看test文件的log信息
svn cleanup //清理当前目录
svn co svn://172.19.5.12 ./ //检出一份版本库文件到当前目录
svn switch --relocate svn://192.168.1.253 svn://172.19.10.250 //重新定位SVN版本库地址
// SVN版本库起动方式,现在SVN下面有 sunny、test 两个版本库
1:单版本库起动 svnserve -d -r /usr/local/svn/sunny
2:多版本库起动 svnserve -d -r /usr/local/svn
区别在于起动svn时候的命令中的启动参数-r指定的目录。
限制不同的用户对不同的版本库操作权限,修改版本库中的conf目录下的 authz文件
以配置 sunny 版本库为例
vi authz
[groups]
teacher = sunny,sunny1
[sunny:/] //指定版本库跟目录下的权限
@teacher = rw //teacher组用户权限为读写
* = r //其他用户只有读权限
保存退出
vi passwd 设置组中用户的账号和密码
[users]
sunny = 123456
sunny1 = 123456
然后从外面telnet 服务器ip的 3690端口,如果是通的,那么说明成功啦。
(stuartjing) |
------分隔线----------------------------