0

我使用 WAMP 作为服务器,我需要执行 svn,可以在我的 Windows 目录中找到:C:/Program Files/Subversion/bin/

问题是,当我从服务器启动 php 程序时,它不会产生输出。它可以从命令行运行,这让我认为这是 WAMP 的权限问题。然而,在赋予它无限的权力之后,它仍然不会执行 svn 命令,除非我从命令行调用它。

我试过用 svn 的完整路径来调用它,它是常规路径。诸如“dir”之类的其他命令可以正常工作。

澄清我的问题:如何通过 WAMP 从 php 执行 svn?

4

3 回答 3

1

PHP 有一大堆函数可以显式处理 svn 存储库,并且不需要您使用任何 system() 类型的函数。

既然您说您不能使用各种 svn 功能,请尝试以下操作:

<?php
    $cmd = 'set PATH';
    echo '<pre>' , shell_exec( $cmd ) , '</pre>';
?>

查看返回的内容(查找 PATH 环境变量)。查看 PATH 包含的内容。

您可能必须将 Subversion 文件夹添加到 PATH:

<?php
    $cmd = 'set PATH=%PATH%;"C:\Program Files\Subversion\bin\"; svn up';
    shell_exec( $cmd );
?>

希望设置 PATH 可以解决您的问题。

于 2009-02-24T16:34:12.880 回答
1

我也发现了这个问题并且可以解决这个问题,请确保您使用用户名和密码(如果需要)

例如。svn update "\my\project\" --username [myusername] --password [mypassword]

如果没有,没有输出,svn 还在等你输入。

PS当我登录并在cmd上运行svn时,它不要求用户名和密码,但是当我在PHP上运行时你需要它。希望它能解决您的问题。

于 2009-09-30T04:03:03.240 回答
0

改用免费的 svn 类,它们不需要 svn 模块: http : //www.phpclasses.org/browse/package/3427.ht http://code.google.com/p/phpsvnclient/

于 2009-02-24T18:26:04.967 回答