执行php脚本自动更新svn代码到测试服务器
程序员文章站
2022-06-11 10:06:57
...
我们可能在A服务器部署了svn服务 管理svn 我们又可能在B服务器部署了web项目 现在我们想着当本地提交代码到A服务器之后
通过访问一个连接地址自动去同步svn代码到B服务器的web站点 该如何实现呢?
想说写一个通过网页就可以执行 SVN 升级的程序,结果并不是我想得那样简单,有一些眉角需要注意的说。 先以 nginx 的用户帐号执行
svn checkout,这样 nginx 才有 SVN 的链结权力,才可以通过网页执行 svn update 复制代码 代码如下:
su -s /bin/bash www-data
cd /var/www
svn checkout http://www.xxx.com/svn/my_site
在用 PHP 执行 shell 指令前要加上 export LANG=C.UTF-8 的环境声明,不然 SVN update
时遇到中文会出现 error,Ubuntu 的 Apache 默认是 LANG=C 接着要为 SVN 补上 --accept
theirs-full 的参数,这是当冲突发生时,都以 SVN Server 的文件版本为主 最后再加上 2>&1,让 PHP
可以取得包含错误的所有信息 复制代码 代码如下:
<?php
putenv('LANG=C.UTF-8');
//$result = shell_exec('svn update --accept theirs-full /var/www/edusoho 2>&1');
//echo nl2br($result);
$username = 'huj';
$password = '111111';
$target_dir = 'svn://10.10.20.179/edusoho';
$result = shell_exec("svn up --username $username --password $password --accept theirs-full /var/www/edusoho 2>&1");
echo nl2br($result);
?>
上一篇: 金山重装高手提示暂不支持的解决方法介绍
下一篇: js中三级联动的实现