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 文件上传源码分析(RFC1867)
Oct 30 PHP
用php制作简单分页(从数据库读取记录)的方法详解
May 04 PHP
php定时计划任务的实现方法详解
Jun 06 PHP
PHP删除HTMl标签的三种解决方法
Jun 30 PHP
php jq jquery getJSON跨域提交数据完整版
Sep 13 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
Jul 04 PHP
PHP中if和or运行效率对比
Dec 12 PHP
PHP中使用BigMap实例
Mar 30 PHP
PHP性能优化大全(php.ini)
May 20 PHP
Laravel框架实现多个视图共享相同数据的方法详解
Jul 09 PHP
PHP通过文件保存和更新信息的方法分析
Sep 12 PHP
laravel开发环境homestead搭建过程详解
Jul 03 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语法速查表
2007/01/02 PHP
收集的PHP中与数组相关的函数
2007/03/22 PHP
php 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
浅谈Javascript 执行顺序
2013/12/18 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
2016/01/28 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
vue结合element-ui使用示例
2019/01/24 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
[04:00]黄浦江畔,再会英雄——完美世界DOTA2 TI9应援视频
2019/07/31 DOTA
跟老齐学Python之重回函数
2014/10/10 Python
Python模拟登陆实现代码
2017/06/14 Python
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
python+opencv实现动态物体识别
2018/01/09 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
对Python Pexpect 模块的使用说明详解
2019/02/14 Python
django2笔记之路由path语法的实现
2019/07/17 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
分厂厂长岗位职责
2013/12/29 职场文书
个人批评与自我批评材料
2014/10/17 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
公证处委托书
2015/01/28 职场文书
班主任高考寄语
2015/02/26 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
详解Java实现数据结构之并查集
2021/06/23 Java/Android
Javascript 解构赋值详情
2021/11/17 Javascript