阿里云服务器搭建SVN教程及各种坑

一、环境为使用镜像安装的阿里云LAMP服务器,SVN的官网都变成http://subversion.apache.org/了,开始在LNMP下尝试了下后直接放弃了


二、开始搭建


1、首先更新下:yum update.

2、安装SVN:yum install subversion 

3、测试查看版本:svnserve --version

4、到这里SVN已经安装完成


下面是创建SVN库


5、任意文件夹下面创建SVN文件夹(注意最好是SVN文件夹,任意文件夹下都可以)mkdir -p /opt/svn

6、创建一个新的版本库,版本库名字随意,例如创建一个名字为test的版本库 svnadmin create /opt/svn/test 如果创建一个名字为repos的版本库svnadmin create /opt/svn/repos

7、执行上面的命令后,自动在仓库下建立多个文件, 分别是conf, db,format,hooks, locks, README.txt。

8、

subversion目录说明

db目录:就是所有版本控制的数据存放文件。

hooks目录:放置hook脚本文件的目录。

locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端。

format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。

conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)。

进入conf目录(该svn版本库配置文件)cd conf/

authz文件是权限控制文件

passwd是帐号密码文件

svnserve.conf SVN服务配置文件


9开始配置相关文件,进入conf目录,配置svnserve.conf文件

cd /opt/svn/test/conf(我的svn库名称是test)

vim svnserve.conf


10,去掉5行前面的注释,注意顶格,前面不能有空格

anon-access = read #匿名用户可读

auth-access = write #授权用户可写

password-db = passwd  #使用哪个文件作为账号文件

authz-db = authz #使用哪个文件作为权限文件

realm = /var/svn/svnrepos # 认证空间名,版本库所在目录


11 讲anon-access = read#匿名用户可读中的read改为none


12添加账户密码 vim passwd

增加 admin = 123456 保存退出

13添加权限 vim authz(本处只写最简单的,走通之后复杂的再去研究)

增加

[html] view plaincopy
[/]
admin=rw

意思是版本库的根目录admin对其有读写权限

14 启动svn版本库(此处注意路径是否包含版本库名称,如果不包含版本库名称,只是到版本库的路径,则可以添加多个版本库,如果有版本库名称,则只能是一个版本库了,详情参考菜鸟教程)

svnserve -d -r /opt/svn/test


补充:

关闭killall svnserve

重启svnserve -d -r /opt/svn/


到此svn已经安装配置完成,用你的tortoiseSVN 填入如下格式的地址


此处可能会失败报错。原因通常有两种:1是云主机自身iptables规则,2是阿里云的安全规则。

如果判断端口号是否开放:telnet ip空格port 无法连通,首先开放iptables规则3690端口

iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
service iptables save   保存规则
iptables -nvL 查看添加的规则
再次telnet测试





补充:查看SVN服务是否开启命令:ps aux|grep svnserve



查看端口号:netstat -lntp

判断端口号是否开放:telnet ip空格port


自动更新到web


到WWW目标目录下  svn co svn://IP地址/test

到网站目录下如wwwroot里面执行

svn co svn://ip地址/虚拟主机文件夹(此处注意文件目录,不然文件夹会错乱)


如果不执行这一步的话会在测试脚本时报如下错误


[root@iZuf6clehlmq6cw75k4xfaZ hooks]# ./post-commit 
跳过“/data/wwwroot/ashidd.phpwhy.cn”
冲突概要:
  跳过的路径:1
chown: 无法访问"/data/wwwroot/ashidd.phpwhy.cn/*": 没有那个文件或目录

配置自动更新脚本

cd hooks

cp post-commit.tmpl post-commit

vim post-commit

chmod a+x post-commit 更改权限

下面是post-commit脚本


#!/bin/sh    #说明是执行shell命令
export LANG=zh_CN.UTF-8
SVN=/usr/bin/svn      #这里配置的是svn安装bin目录下的svn文件
WEB=/data/wwwroot/default/test    #要更新的目录地址q
$SVN update $WEB --username 用户名 --password 密码 --no-auth-cache
chown www:www $WEB/*


./post-commit 运行测试是否有错误











参考文档一、https://help.aliyun.com/knowledge_detail/37789.html  

参考文档二、https://help.aliyun.com/document_detail/52864.html

参考文档三:http://www.runoob.com/svn/svn-start-mode.html

你可能感兴趣的:(PHP)