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 相关文章推荐
ASP和PHP都是可以删除自身的
Apr 09 PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
Jun 19 PHP
php面象对象数据库操作类实例
Dec 02 PHP
微信公众平台实现获取用户OpenID的方法
Apr 15 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 PHP
Yii模型操作之criteria查找数据库的方法
Jul 15 PHP
PHP日志LOG类定义与用法示例
Sep 06 PHP
PHP常量define和const的区别详解
May 18 PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 PHP
Laravel服务容器绑定的几种方法总结
Jun 14 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中的cookie
2006/11/26 PHP
php用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
广告显示判断
2006/08/31 Javascript
JavaScript中Object和Function的关系小结
2009/09/26 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
JS实现复制功能
2017/03/01 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
angularjs实现天气预报功能
2020/06/16 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
2018/05/31 Javascript
element-ui的回调函数Events的用法详解
2018/10/16 Javascript
小程序的上传文件接口的注意要点解析
2019/09/17 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
在Python中利用Pandas库处理大数据的简单介绍
2015/04/07 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
用Pygal绘制直方图代码示例
2017/12/07 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
Python实现修改文件内容的方法分析
2018/03/25 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
Python zip函数打包元素实例解析
2019/12/11 Python
Python可以用来做什么
2020/11/23 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
青春寄语大全
2014/04/09 职场文书
电钳工人个人求职信
2014/05/10 职场文书
长江七号观后感
2015/06/11 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
Win10加载疑难解答时出错发生意外错误的解决方法
2022/07/07 数码科技