【问题标题】:How to use system environment variables in php.ini with IIS如何在 IIS 中使用 php.ini 中的系统环境变量
【发布时间】:2018-06-09 11:13:10
【问题描述】:

我发现当通过cli执行php时,php可以访问自定义windows系统环境变量,但在IIS运行php时没有。

例如,我可以把这个放在php.ini中:

zend_extension="${PHP_PATH}ext\php_xdebug-2.5.5-7.1-vc14-nts.dll"

当通过 cli 调用时,php 会正确加载 xdebug:

c:\>php.exe -v 
 MSVC14 (Visual C++ 2015) x86 ) Copyright (c) 1997-2017 The PHP Group
 Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.1.1, Copyright (c) 1999-2017, by Zend Technologies
    with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick RethansPHP 7.1.1 (cli) (built: Jan 18 2017 18:50:48) ( NTS

但是当我在 IIS 提供的页面上调用 phpinfo() 时,Xdebug 没有出现。我假设这是因为 IIS 无法访问我创建的自定义系统变量。有人可以告诉我如何使这些变量在 IIS 中可访问,最好以我可以编写脚本的方式(无论是通过批处理文件、power shell 还是其他方式)进行自动化部署。

【问题讨论】:

    标签: php iis


    【解决方案1】:

    所以我发现当从命令行或批处理文件执行 setx 时:

    setx PHP_PATH {path to php here}
    

    它在用户空间创建系统变量。由于 IIS 无权访问它,因此无法扩展 php.ini 变量。但是,如果您传递 /M 标志,如下所示:

    setx /M PHP_PATH {path to php here}
    

    这会在 IIS 有权访问的全局空间中创建一个变量。

    【讨论】:

      猜你喜欢
      • 2014-04-13
      • 1970-01-01
      • 2020-05-29
      • 2014-06-07
      • 2014-11-10
      • 1970-01-01
      • 2017-01-18
      • 2018-12-15
      • 1970-01-01
      相关资源
      最近更新 更多