我不是技术
PHP成长
ARTICLE
linux相关
ARTICLE
其他类别
ARTICLE
文章
> 在centOs上安装svn,并且让web项目自动提交部署到项目目录
00:52
2021/04/08
982
在centOs上安装svn,并且让web项目自动提交部署到项目目录
#### 安装部署svn在linux 首先用centOs强大的yum来安装svn `yum install subversion` 等待些许时间,一般不会太久,如果太久了,可能就是你的网不好. 然后创建一个版本库的目录,用来存放各种版本库. `mkdir -p /home/svn` 这个home下面的svn文件夹就是后面用来存放svn版本库的svn不同的版本库就是不同的文件夹.然后再用svn的命令创建一个版本库 `svnadmin create /home/svn/warTwo` 这个warTwo就是我需要创建的一个版本库,创建后就会在svn文件夹下面发现一个warTwo文件夹,接下来需要修改里面一些文件,可以用linux命令,也可以用其他的一些工具,我自己是用的宝塔面板,比起以前用命令行确实感觉上要方便那么一点点.  进入conf文件夹修改配置文件`svnserve.conf`  红框里面的几行注释去掉, `anon-access = none`这行禁止匿名访问 `realm = /home/svn/warTwo`这一行写版本库的地址. 然后进入conf文件夹修改`passwd`  然后进入conf文件夹修改`authz`  这样指定用户就拥有了读写的权限,groups这个是分组相关的,有些多人开发的不需要其他文件夹的权限也可以单独设置.保存退出后,开启防火墙的端口默认3690,宝塔安全里面开放3690端口,腾讯云和阿里云防火墙也要开放3690TCP.有的自带防火墙需要添加一句 `-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT` 添加后需要重启防火墙 `service iptables restart` 然后开启版本库 `svnserve -d -r /home/svn` #### 自动部署到web目录 **向web目录检出项目副本** 为了在web目录下检出项目我们需要先切换到web目录下(我的web目录是在/home/www下)  检出项目 ``` svn co file:///home/svn/warTwo ``` 这个位置用的file协议,也可以用svn://127.0.0.1/warTwo 自动部署 ---- 切到钩子目录 复制一个post-comit ``` cp post-commit.tmpl post-commit ``` 修改post-commit文件 ``` REPOS="$1" REV="$2" mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf WEB="/home/www/917yc" export LANG=en_US.UTF-8 svn update $WEB --username username --password userpassword ``` 然后再给这个脚本添加执行权限 ``` chmod +x post-commit ``` 然后就ok啦