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作的文本留言本的例子(五)
Oct 09 PHP
php smarty 二级分类代码和模版循环例子
Jun 01 PHP
PHP 图片上传代码
Sep 13 PHP
PHP读取文件并可支持远程文件的代码分享
Oct 03 PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 PHP
PHP获取MySql新增记录ID值的3种方法
Jun 24 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
Apr 20 PHP
关于PHP开发的9条建议
Jul 27 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
Sep 13 PHP
PHP中一个有趣的preg_replace函数详解
Aug 15 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 23 PHP
laravel框架学习笔记之组件化开发实现方法
Feb 01 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上传图片之时间戳命名(保存路径)
2014/08/15 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
canvas实现爱心和彩虹雨效果
2017/03/09 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
2017/08/28 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
python在每个字符后添加空格的实例
2018/05/07 Python
python:print格式化输出到文件的实例
2018/05/14 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
Python中的集合介绍
2019/01/28 Python
Python如何实现强制数据类型转换
2019/11/22 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
跑步、骑行和铁人三项的高性能眼镜和服装:ROKA
2018/07/06 全球购物
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
波兰最大的宠物用品网上商店:FERA.PL
2019/08/11 全球购物
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
文秘专业自荐信
2013/10/14 职场文书
大学生党员承诺书
2014/05/20 职场文书
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL