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 相关文章推荐
php压缩多个CSS为一个css的代码并缓存
Apr 21 PHP
PHP中判断变量为空的几种方法分享
Aug 26 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
Nov 07 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
Jun 22 PHP
php ci框架中加载css和js文件失败的原因及解决方法
Jul 29 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
Nov 04 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
Apr 20 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
May 11 PHP
从刷票了解获得客户端IP的方法
Sep 21 PHP
PHP运行模式汇总
Nov 06 PHP
PHP精确计算功能示例
Nov 29 PHP
PHP容器类的两种实现方式示例
Jul 24 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 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
2016/03/09 PHP
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
ExtJS的拖拽效果示例
2013/12/09 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
JQuery下拉框应用示例介绍
2014/04/23 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
JavaScript中this详解
2015/09/01 Javascript
浅析Ajax语法
2016/12/05 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
echarts多条折线图动态分层的实现方法
2019/05/24 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
[02:28]DOTA2 2017国际邀请赛小组赛回顾
2017/08/09 DOTA
python中对list去重的多种方法
2014/09/18 Python
Python中的异常处理学习笔记
2015/01/28 Python
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
python学习 流程控制语句详解
2016/06/01 Python
深入理解Django中内置的用户认证
2017/10/06 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
Django nginx配置实现过程详解
2020/09/10 Python
python基于opencv 实现图像时钟
2021/01/04 Python
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
英国最大的独立摄影零售商:Park Cameras
2019/11/27 全球购物
设计毕业生简历中的自我评价
2013/10/01 职场文书
门卫班长岗位职责
2013/12/15 职场文书
运动会稿件300字
2014/02/14 职场文书
九寨沟导游词
2015/02/02 职场文书
2015年复活节活动总结
2015/02/27 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书