想说写一个通过网页就可以执行 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');  // 根据Linux设置语言环境变量,解决svn更新时中文名称导致的问题,也可以使用putenv('LANG=en_US.UTF-8');  $result = shell_exec('svn update --accept theirs-full /var/www/my_site 2>&1');    echo nl2br($result);    

转载于:https://www.cnblogs.com/itsharehome/p/8503137.html

PHP中调用SVN命令更新网站方法(解决文件名包含中文更新失败的问题)相关推荐

  1. vue怎么调用子元素的方法_vue 父组件中调用子组件函数的方法

    vue 父组件中调用子组件函数的方法 在父组件中调用子组件的方法: 1.给子组件定义一个ref属性.eg:ref="childItem" 2.在子组件的methods中声明一个函数 ...

  2. Linux命令行下常用svn命令的使用方法[转自:www.hackbase.com]

    本文讲述了Linux命令行下常用svn命令的使用方法,希望对您有所帮助. 1.Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如: ...

  3. Awk中调用shell命令

    Awk中调用shell命令 需求 在awk中,有时候需要调用linux系统中命令,如计算字符串的MD5值,并保存下来. 方法参考 call a shell command from inside aw ...

  4. python调用cmd命令释放端口_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

  5. 安卓程序中调用 linux 命令

    博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 在研究串口 jni 开发的时候,遇到了这样一段代码: Process su;su = Runtime.getRuntim ...

  6. shell 调用matlab,在matlab中调用linux命令 以及后台运行matlab --zz

    由于matlab和linux命令各有所长:matlab比较擅长数值计算,linux命令比较擅长文件操作(matlab也基本上能够完成,但会稍微麻烦一点).所以在很多时候会需要将二者结合起来. 可能更多 ...

  7. 在Android项目中调用FFmpeg命令

    概述 FFmpeg,命令行非常强大.在PC机上,调用一行FFmpeg命令,就可以对视频文件进行剪切.合并.转码等功能.本文将介绍如何在Android中调用FFmpeg命令行. 编译 前面已经有两篇文章 ...

  8. Js文件中调用其它Js函数的方法(转)

    2019独角兽企业重金招聘Python工程师标准>>> Js文件中调用其它Js函数的方法 在项目开发过程中,也许你会遇这样的情况.在某一Js文件中需要完成某一功能,但这一功能的大部分 ...

  9. Js文件中调用其它Js函数的方法

    2019独角兽企业重金招聘Python工程师标准>>> Js文件中调用其它Js函数的方法 在项目开发过程中,也许你会遇这样的情况.在某一Js文件中需要完成某一功能,但这一功能的大部分 ...

最新文章

  1. oracle11g数据文件路径,oracle11g修改数据文件路径
  2. Network Service 权限问题
  3. concat合并的数组会有顺序么_JS数组 Array
  4. 设计模式之-命令模式(Command Pattern)
  5. Html.RenderPartial和Html.Partial在Razor视图中的区别
  6. Bootstrap响应式图片
  7. java 常用 函数_java在线报表中有哪些常用函数
  8. dial tcp xxx: connectex: A connection attempt failed
  9. 电脑格式化的危害_经常重装系统,对电脑会不会有负面影响?
  10. CNET:乔布斯留给我们的12条宝贵经验
  11. 分布式或微服务架构中的分布式锁应用
  12. DAG最小可重路径覆盖or最长反链的一种做法
  13. w ndows7旗舰版怎么重装系统,windows7旗舰版怎么重装系统|怎么重装系统windows7旗舰版...
  14. 史上最全计算机类编程资料大集合
  15. 计算机教育应用研究,技术教育在计算机科学与技术师范专业中的应用研究
  16. 如何在机智云开发平台快速创建具有商用租赁效果的硬件产品
  17. T00ls内部旁注扫描器.rar
  18. 产品:“嘘,这事千万别让开发知道”
  19. 区块链研究生专业_“区块链大数据赋能低碳发展”高端研讨活动 在增城低碳总部举行...
  20. Python:计算电费

热门文章

  1. C# 反射与dynamic最佳组合
  2. 重温JavaScript
  3. 设计模式学习(六):重构与模式,推荐书籍(完)
  4. 活久见: 原来 Chrome 浏览器支持 Import from 语法
  5. zookeeper系列(二)实战master选举
  6. Vue学习笔记第一天--es6
  7. MyEclipse中的web项目之前有个感叹号
  8. WordPress整站轻松开启HTTPS
  9. 全民直播CTO张云龙:已全面迁移至阿里云
  10. PHP支付宝接口RSA验证