PHP中调用SVN命令更新网站方法


Posted in PHP onJanuary 07, 2015

想说写一个通过网页就可以执行 SVN 升级的程序,结果并不是我想得那样简单,有一些眉角需要注意的说。
先以 Apache 的用户帐号执行 SVN checkout,这样 Apache 才有 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/my_site 2>&1');    

echo nl2br($result);   
PHP 相关文章推荐
图书管理程序(一)
Oct 09 PHP
按上下级层次关系输出内容的PHP代码
Jul 17 PHP
php中获取远程客户端的真实ip地址的方法
Aug 03 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
Jun 06 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
ThinkPHP处理Ajax返回的方法
Nov 22 PHP
PHP JSON格式的中文显示问题解决方法
Apr 09 PHP
PHP微信开发用Cache 解决数据缓存
Jul 11 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
Sep 22 PHP
PHP批量删除jQuery操作
Jul 23 PHP
Laravel中的chunk组块结果集处理与注意问题
Aug 15 PHP
PDO::setAttribute讲解
Jan 29 PHP
PHP PDO fetch 模式各种参数的输出结果一览
Jan 07 #PHP
PHP中使用php5-ffmpeg撷取视频图片实例
Jan 07 #PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
Jan 07 #PHP
PHP实现的简易版图片相似度比较
Jan 07 #PHP
PHP中使用SimpleXML检查XML文件结构实例
Jan 07 #PHP
php中$_POST与php://input的区别实例分析
Jan 07 #PHP
php静态文件返回304技巧分享
Jan 06 #PHP
You might like
php反弹shell实现代码
2009/04/22 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
jQuery.extend 函数的详细用法
2012/06/27 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
2016/09/26 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
JS FormData上传文件的设置方法
2017/07/05 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
Python导入txt数据到mysql的方法
2015/04/08 Python
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
2018/03/13 Python
创建Django项目图文实例详解
2019/06/06 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
标准导师推荐信(医学类)
2013/10/28 职场文书
初中生期末考试的自我评价
2013/12/17 职场文书
工作的心得体会
2013/12/31 职场文书
和睦家庭事迹
2014/05/14 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js