0

我对 Windows System %PATH% 变量有点困惑。当我使用 php-cli 和 apache 提供的网页运行以下脚本时,我得到了路径变量的不同输出。

// different output for php-cli and php executed by apache webserver
<?php
system('echo %PATH%');
?>

我在哪里可以更改与 apache 网络服务器一起使用的 PATH 变量?

我的系统:

  • Win7 64位
  • Zend Server Community Edition 5.0.4(使用 Apache,而不是 IIS)

编辑: 对不起,我不得不给你一个例子来理解这个问题:

我想执行system('mysqldump .....')命令或类似的东西。关键是,从命令行运行脚本是可行的,因为 MySQL bin 路径在系统路径中,但通过 webbrowser 运行脚本不会在系统路径中包含 MySQL bin 路径。

web系统的路径是:

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\Programme\Sysinternals;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Zend\ZendServer\bin 

位原系统的路径要长得多。我现在的问题是,系统的路径在哪里受到限制,或者我在哪里可以找到网络执行的 php 脚本的系统路径设置?

4

3 回答 3

1

尝试使用以下内容,

echo getenv('PATH')
于 2011-02-12T22:48:22.390 回答
1

见于C:\Path\To\Zend\ZendServer\ZendEnablerConf.xml

定义了一个路径变量。

于 2011-02-14T23:31:30.007 回答
0

环境变量在 Windows 中是每个进程的;它们(通常)从父进程继承,顶级进程设置PATH为系统范围的路径加上每个用户的路径。因此,如果您在您的用户帐户下运行 CLI 版本的 PHP,该路径将包含您的用户定义的路径,而在服务帐户下运行的 Apache 进程将仅获得系统范围的路径。

您可以在系统属性(控制面板\系统和维护\系统)、高级、环境变量中设置系统范围的路径。或者,我相信您可以在 Apache 中设置环境变量,例如 usingmod_envSetEnv指令。

于 2011-02-12T23:02:55.227 回答