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 MemCached 高级缓存应用代码
Aug 05 PHP
php中实现记住密码自动登录的代码
Mar 02 PHP
php中常用字符串处理代码片段整理
Nov 07 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
Nov 07 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
May 04 PHP
浅谈php安全性需要注意的几点事项
Jul 17 PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 PHP
Yii实现多数据库主从读写分离的方法
Dec 29 PHP
深入理解php printf() 输出格式化的字符串
May 23 PHP
浅谈PHP正则中的捕获组与非捕获组
Jul 18 PHP
thinkPHP5.0框架模块设计详解
Mar 18 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
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
56.com视频采集接口程序(PHP)
2007/09/22 PHP
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
php实现两个数组相加的方法
2015/02/17 PHP
为javascript添加String.Format方法
2020/08/11 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
2013/06/14 Javascript
JS获取文本框,下拉框,单选框的值的简单实例
2014/02/26 Javascript
div失去焦点事件实现思路
2014/04/22 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
AngularJS中的API(接口)简单实现
2016/07/28 Javascript
javascript-解决mongoose数据查询的异步操作
2016/12/22 Javascript
JS实现身份证输入框的输入效果
2017/08/21 Javascript
新手简单了解vue
2019/05/29 Javascript
详解从vue-loader源码分析CSS Scoped的实现
2019/09/23 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
2019/07/31 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
大学应届毕业生求职信
2014/05/24 职场文书
十佳少年事迹材料
2014/12/25 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
七年级作文之冬景
2019/11/07 职场文书
java版 简单三子棋游戏
2022/05/04 Java/Android