想说写一个通过网页就可以执行 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);

最新文章

  1. XStream简单入门
  2. HTML5表单
  3. React(JSX语法)-----JSX基本语法
  4. 获取客户端真实ip
  5. 万能js实现翻页,动态生成内容自动翻页,兼容各种浏览器(已测试)----神器版!
  6. codeforces 601A The Two Routes(最短路 flody)
  7. android AsyncHttpClient 开源框架的使用
  8. Codeforces Round #326 (Div. 2) B. Duff in Love 分解质因数
  9. opencv 2.46与visual studio 2012 配置方法
  10. Qt实现360安全卫士10.0界面(编译时出现的一些问题)
  11. 基本HTML5文件结构
  12. Binary Tree Inorder Traversal(转)
  13. Nosql简介 Redis,Memchche,MongoDb的区别
  14. antlr v4 使用指南连载5——如何编写词法定义
  15. 数据结构C语言版-队列
  16. Appium Demo
  17. 在kubernetes集群上用helm安装Datadog(Monitoring)
  18. mothur reverse.seqs 将序列反向互补
  19. EXCEL FAQ
  20. Django 中 python manage.py makemigrations 与 python manage.py migrate

热门文章

  1. Jmeter-调整占用内存解决内存溢出
  2. echo命令的简单用法和实例
  3. 6. webshell文件上传分析溯源
  4. ASP.NET学习笔记(三)ASP Global.asa 文件
  5. LeetCode: 669 Trim a Binary Search Tree(easy)
  6. 修正linux系统时间
  7. 剑指Offer的学习笔记(C#篇)-- 构建乘积数组
  8. 1.函数的结构,调用,传参,形参,实参,args,kwargs,名称空间,高阶函数
  9. Spark 学习(二)
  10. [題解](函數下整點個數?)luogu_P4132_BZOJ_2659_算不出的等式