PHP中调用SVN命令更新网站方法

yipeiwu_com6年前PHP代码库

想说写一个通过网页就可以执行 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定时计划任务与fsockopen持续进程实例

Web服务器执行一个PHP脚本,有时耗时很长才能返回执行结果,后面的脚本需要等待很长一段时间才能继续执行。如果想实现只简单触发耗时脚本的执行而不等待执行结果就直接执行下一步操作,可以通过...

php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证

本文实例讲述了php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证的方法。分享给大家供大家参考,具体如下: 在php中,可以使用Header函数做一些...

PHP函数checkdnsrr用法详解(Windows平台用法)

本文实例讲述了PHP函数checkdnsrr用法。分享给大家供大家参考,具体如下: 在php.net上是这样说的: (PHP 4, PHP 5) checkdnsrr — Check D...

php实现随机显示图片方法汇总

php通过rand()函数产生随机数,这个函数可以产生一个指定范围的数字 这段代码通过产生的随机数,随机选择图片 <html> <body> <&#...

解析 thinkphp 框架中的部分方法

 1 thinkphp 框架 中判断输入的数值和数据库中的数值是否一致    首先 需要在view文件夹下建一个模板 名为zhuce.html <...