php - 通过浏览器从 php 脚本调用 svn 更新不起作用

标签 php svn shell browser

我有两个脚本。

  1. 运行更新并调用 shell_exec('svn update') 和 shell_exec('svn st')
  2. 运行 mysqldump shell_exec('mysqldump params')

svn 脚本没有运行更新命令,svn st 正在打印结果但不是 svn update

我尝试在调用svn update eg时声明参数 'svn更新'。目录' --username myuser --password mypasswd --non-interactive'; - 依然没有 玩过大部分参数

如果这与二进制文件/权限/组有关,我看不到。 mysqldump 命令工作正常并且正在生成文件,那么为什么 svn 不更新文件系统?

请不要建议在 PHP 中使用核心 SVN 类。这不是一个选项,我无法完全控制服务器并且该模块不可用。

谢谢你的帮助,

-hbt

附注:重要的事情要在这里提一下。通过命令行调用时,脚本有效。它仅在通过网络浏览器调用时失败。

最佳答案

我也遇到了同样的问题,但连权限都没有解决。

根据这里的一些其他建议,我做了:

<?php
echo shell_exec('2>&1 svn update /path/to/checked/out/directory/ --non-interactive');

然后我将一个错误转储到我的浏览器中:

svn: warning: Can't open file '/root/.subversion/servers': Permission denied
svn: OPTIONS of 'http://my.svn.server/svn/project/trunk': authorization failed: Could not authenticate to server: rejected Basic challenge (http://my.svn.server)

不确定为什么我的 Web 服务器用户尝试访问/root 但我通过将 --config-dir 添加到 svn up 命令来解决问题而不更改任何权限:

<?php
echo shell_exec('2>&1 svn update /path/to/checked/out/directory/ --non-interactive --config-dir /path/to/my/home/.subversion');

*请注意/path/to/my/home/.subversion 存在,因为初始 checkout 是在命令行上完成的

关于php - 通过浏览器从 php 脚本调用 svn 更新不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2947843/

相关文章:

php - 如何在 1 行中设置所有内容

PHP 条件返回语句?

php - 修改mysql数据库以提高效率

svn 提交帮助 ubuntu

python - 是否可以在没有 root 访问权限的情况下将模块路径添加到 linux 中的 python 环境变量?

linux - 根据值的长度删除条目

bash - Bash subshel​​l用ssh命令非常奇怪的行为

javascript - 使用php使用json发送联系信息失败

linux - 由于 rc.local 启动脚本而无法启动

shell - 如何使失败的 $(shell) 命令中断