svn配置php
1.安装svn服务器端web
yum install subversion 从镜像下载安装svn服务器端服务器
cd /usr/local/ //进入目录,准备建立svn目录tcp
mkdir svn //建立一个svn目录svn
chmod -R 777 svn //修改目录权限为777post
svnadmin create /usr/local/svn/sunny //建立一个svn版本仓库sunny(sunny能够随便起名字)spa
cd svn/sunny/conf //进入sunny版本仓库下的配置文件目录.net
下面要修改这个目录下的三个配置文件rest
(1)vi svnserve.conf //配置版本库信息和用户文件和用户密码文件的路径、版本库路径blog
[
把
# 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 //。。。
保存退出
启动svn:
svnserve -d -r /usr/local/svn/ //这里采用多版本库的方式启动 若是是单版本库 能够svnserve -d -r /usr/local/svn/sunny
添加一行
而后要设置自启动
vi /etc/rc.local 打开自启动文件添加
/usr/bin/svnserve -d -r /usr/local/svn/
svn命令:
netstat -tnlp|grep 3690 查看svn是否启动
ps aux |grep 'svn' 查找全部svn启动的进程
kill -9 2505 杀死2505这个查找到的svn进程
svn checkout svn://172.19.5.2/sunny /data0/htdocs/blog //检出一份版本库文件到指定目录
svn up //更新文件
自动更新
在vi /usr/local/svn/sunny/hooks/post-commit中加入
#!/bin/sh
#设置一些变量
SVN=/usr/bin/svn
WEB=/home/testsvn #要更新的目录
export.UTF-8
$SVN update $WEB --username xxx --password xxx
其中SVN=右边改为 svn 命令位置 通常默认为/usr/bin/svn
WEB=右边改为你实际的web目录
赋予可执行权限
chmod 777 /usr/local/svn/sunny/hooks/post-commit
=========================================================================
其余
#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 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
ps:
如发现svn进程已经打开,但远程没法链接,最多见解决方案:
分析:问题很是多是因为防火墙形成,须要修改iptables:
1. 打开修改iptables:
vi /etc/sysconfig/iptables
该文件内容不过几行,浏览一遍,找下有没有3690端口(svn默认3690端口),如没有,那么添加一行;
2.在其中相似格式添加一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
格式与前几行基本相同,惟独端口为3690,若是懒且怕出错,能够直接复制一行,并修改端口为3690便可;
以后用vi的wq命令保存并推出;
3.重启iptables使之生效(不重启等于没改);
/sbin/service iptables restart
如此这般,90%的几率上你的svn已经能够远程链接了。
如还有问题欢迎提出交流。