通过php来执行svn的update操作
2014-05-28 00:00
351 查看
摘要: php执行svn
用PHP完成SVN的update操作
直接上代码:
遇到的问题:
1./dev/null/.subversion/servers Not a directory
因为通过php执行,肯定是nginx或者apache的www用户组 ,查看etc/passwd,修改www用户的家目录和shell为自己的svn的配置目录subversion/servers,例如
修改services文件
注:services文件是svn用户组的配置文件,不是svn仓库里面的services文件,
还要必须在popen()方法带这个参数:
2.Can’t open file ‘.svn/lock’: Permission denied
这个问题原因是因为第一次checkout的时候是用root,使得其他用户没有权限
两个解决办法:
一.把.svn的属主、组修改给用户,(su www , svn co svn://127.0.0.1/svnadmin/yiidemo --username dev-lin --password yiidemo123)
二.给目录加权限,www权限
3.在shell命令 su切换www用户出现This account is currently not available
这个是因为 www用户shell权限问题,查看命令:
修改:'/sbin/nologin',为'/bin/bash'
4.编码问题:update Error converting entry in directory ... to UTF-8
解决办法:在popen()方法添加参数:
用PHP完成SVN的update操作
直接上代码:
error_reporting(E_ALL); $handle = popen('.UTF-8 svn update --username dev-tester --password tester123 --config-dir /home/wwwroot/.subversion /home/wwwroot/yiidemo/ 2>&1','r'); echo "'$handle'; " . gettype($handle) . "\n"; $read = fread($handle, 2096); echo $read; pclose($handle);
遇到的问题:
1./dev/null/.subversion/servers Not a directory
svn: Can't open file '/dev/null/.subversion/servers': Not a directory
因为通过php执行,肯定是nginx或者apache的www用户组 ,查看etc/passwd,修改www用户的家目录和shell为自己的svn的配置目录subversion/servers,例如
www:x:1000:1000:/home/wwwrooot:/bin/bash
修改services文件
注:services文件是svn用户组的配置文件,不是svn仓库里面的services文件,
#目录位置一般在:/home/wwwroot/.subversion/services [global] store-passwords = yes store-plaintext-passwords = no
还要必须在popen()方法带这个参数:
--config-dir /home/wwwroot/.subversion
2.Can’t open file ‘.svn/lock’: Permission denied
这个问题原因是因为第一次checkout的时候是用root,使得其他用户没有权限
两个解决办法:
一.把.svn的属主、组修改给用户,(su www , svn co svn://127.0.0.1/svnadmin/yiidemo --username dev-lin --password yiidemo123)
二.给目录加权限,www权限
3.在shell命令 su切换www用户出现This account is currently not available
这个是因为 www用户shell权限问题,查看命令:
cat /etc/passwd | grep www
修改:'/sbin/nologin',为'/bin/bash'
4.编码问题:update Error converting entry in directory ... to UTF-8
解决办法:在popen()方法添加参数:
LANG=en_US.UTF-8
相关文章推荐
- svn执行update操作后出现:Error : Previous operation has not finished; run 'cleanup' if it was interrupted.
- 【PHP】【Mysql】【thinkphp】,Thinkphp save()方法执行update操作的返回值问题
- svn执行svn update操作无法更新到新文件(eclipse的build automatically)
- svn执行update操作后出现:Error : Previous operation has not finished; run 'cleanup' if it was interrupted.
- php操作SVN版本服务器类代码
- c#操作access,update语句不执行的解决办法
- VB中通过oo4o进行Oracle数据库操作-Update Delete Insert
- ADO执行update 报错“操作已被用户取消”
- 使用户能够进一步控制对通过在多个基本表上执行 JOIN 操作所得到的 Recordset 中的特定基本表的修改
- PHP中通过Web执行C/C++应用程序
- PHP通过Thrift操作Hbase
- [php]php操作svn
- 通过命令行执行PHP文件写字符到外部文本 & server端与客户端的当下绝对路径 & PHP的时间设定
- 用PHP实现通过Web执行C/C++程序
- php操作mysql执行数据库查询的一些常用操作罗列
- PHP通过ADODB操作ACCESS数据库,中文乱码的解决办法
- sql server里执行delete或者update操作产生大量事务日志,导致空间不够,执行失败,能不能设置此类动作时不生成事务日志的
- PHP中通过Web 执行C/C++应用程序
- 如何在客户端通过MSSQL执行某操作删除服务器的指定文件
- PHP通过DOM操作XML