更新(2021.01.17)
该部分是按照博客中安装php、nginx而配套使用,详情请翻看php、nginx环境搭建
安装 Svn
yum -y install subversion*
创建 html 目录
mkdir -p /usr/local/svn/html
创建 html 仓库
svnadmin create /usr/local/svn/html
设置 html 仓库账户安全
1)创建 svn 账号
cd /usr/local/svn/html/conf/
vim authz
##文件末尾新增 该仓库下svn的读写权限
[/]
svn=rw
2)设置 svn 密码
vim passwd
##文件末尾新增该仓库的svn密码
svn=123456
3)设置 svn 权限
1、关闭svn可读权限
2、开启svn可写权限
3、使用svn密码
4、使用权限
5、指定仓库目录
vim svnserve.conf
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /usr/local/svn/html
启动 svn 服务
svnserve -dr /usr/local/svn/html
pstree |grep svn
设置 html 提交更新到 html 网站根目录的钩子脚本
cd /usr/local/svn/html/hooks
cp post-commit.tmpl post-commit
chmod a+x post-commit
vim post-commit
# 最后一行新增两行 删除前边的部分代码 mailer.py
export LANG=en_US.UTF-8
svn up --non-interactive --username svn --password 123456 '/usr/local/nginx/html'
cd /usr/local/nginx/html/
# 剪出cut out 输入Linux密码 再输入svn账号和密码 以及是否加密 yes
svn co svn://127.0.0.1 ./
svn add ./*
svn ci -m '提交版本'
安装svn客户端与拉取远程仓库代码
下载客户端安装包与中文语言包
SVN官网下载地址
剪出代码:
重新设置nginx对web目录的执行权限
getfacl /usr/local/nginx/html
setfacl -m u:nginx:rwx -R /usr/local/nginx/
setfacl -m d:nginx:rwx -R /usr/local/nginx/
设置开机启动
vim /etc/rc.local
svnserve -dr /usr/local/svn/html
配置svn热加载
vim /usr/local/svn/html/hooks/post-commit
#post-commit文件末尾加入下边两段
/usr/local/task/nginx/setfacl.sh
/usr/local/task/php/laravel/reload.sh
#重启svn服务
pkill svnserve
svnserve -dr /usr/local/svn/html
--------------------------------------------分割线-----------------------------------------------------------
安装 svn
yum -y install subversion
创建 liuyuanshan 目录
mkdir -p /var/svn/liuyuanshan
创建 yzmedu 仓库
svnadmin create /var/svn/liuyuanshan
配置修改
进入已经创建好的版本库目录下
cd /var/svn/liuyuanshan/conf
conf目录下,一共存放三份重要的配置文件,如下:
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
- 编辑 authz 文件(注意:[/]也是必须的)
vi authz
[/]
liuyuanshan=rw
[/]:表示根目录,即 /var/svn/liuyuanshan
liuyuanshan= rw:表示用户liuyuanshan对根目录具有读写权
-
编辑 passwd 文件
如上所示,用户名为:liuyuanshan,认证密码为:123
-
编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)
anon-access = none:表示禁止匿名用户访问。
auth-access = write:表示授权用户拥有读写权限。
password-db = passswd:指定用户名口令文件,即 passwd 文件。
authz-db = authz:指定权限配置文件,即 authz 文件。
realm = /var/svn/liuyuanshan:指定认证域,即/var/svn/liuyuanshan 目录。
启动SVN仓库/var/svn/liuyuanshan
启用liuyuasnhan仓库并查看启用状态
svnserve -dr /var/svn/liuyuanshan
ps -ef | grep 'svnserve'
查看开启的SVN进程和端口
这时候记得在阿里云或腾讯云开启SVN默认3690端口
pstree |grep svn
netstat -tunpl |grep svn
SVN检出
Hook钩子,设置 m 仓库提交更新到 m 网站根目录的钩子脚本
- 在 wechat 网站目录下检出 liuyuanshan 仓库版本
cd /usr/local/nginx/html/bbs/wechat
svn co svn://111.231.66.101 ./
检出成功
将liuyuanshan仓库文件同步到web目录下
cd /var/svn/liuyuanshan/hooks
cp post-commit.tmpl post-commit
chmod a+x post-commit
复制脚本,并赋予读写执行权限
编辑post-commit脚本文件
vi post-commit
export LANG=en_US.UTF-8
svn up --non-interactive --username liuyuanshan --password 123 '/usr/local/nginx/html/bbs/wechat'