【问题标题】:How to change the path to php.ini in PHP CLI version如何在 PHP CLI 版本中更改 php.ini 的路径
【发布时间】:2012-06-06 08:41:17
【问题描述】:

在网络服务器上运行的 php 和 CLI 版本没有使用相同的 php.ini 文件。如果我执行命令php --ini,它会显示这个

Configuration File (php.ini) Path: C:\Windows
Loaded Configuration File:         C:\wamp\bin\php\php5.3.8\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

而我的网页版使用C:\wamp\bin\apache\Apache2.2.21\bin\php.ini 中的php.ini。这对于使用 wamp 的人来说可能很常见。

如何将加载的配置文件更改为从 C:\wamp\bin\apache\Apache2.2.21\bin\php.ini 读取,这样我就不必维护 2 个不同的 php.ini 版本?

【问题讨论】:

    标签: command-line-interface php


    【解决方案1】:

    我尝试使用 C:\YourPathto\PHP7\ 作为我的 PHPRC 环境变量,但失败了。 但它必须设置为带有文件名的完整路径。我还发现我必须完全重启 php 才能获取新变量。

    1. 在 Windows 上,找到 php.ini 文件的路径,然后在命令窗口中修改并运行以下命令:

      setx PHPRC "C:\YourPathto\PHP7\php.ini"

      你应该看到SUCCESS: Specified value was saved.

    2. 然后重启你的电脑(真的)。

    或者通过常规方式编辑环境变量,然后重启:

    【讨论】:

      【解决方案2】:

      通过指定环境变量 PHPRC 指向与 Apache 在 Ubuntu 上为我工作的那个相同的 php.ini

      export PHPRC=/etc/php5/apache2/php.ini
      

      或者放到$HOME/.bashrc中每次cli启动时导入

      【讨论】:

      • 当我这样做时,它第一次工作,但当我需要再次更改它时,我不得不删除 /php.ini 部分并使用路径让它工作。
      • 如果我为 CLI 和普通 PHP 设置了相同的 php.ini,那么当我执行 php -i 时会出现很多“无法加载动态文件”错误
      【解决方案3】:

      我花了大约 3 个小时试图完全按照您的问题进行操作。做不到。我放弃并将 php.ini 复制到 C:\Windows 并将我的 ENV 变量“PHPRC”更改为 C:\Windows(和 httpd.conf)。这样我的 CLI php 和 Apache php e 都使用同一个文件。在我进行此更改之前,我无法让“php -m”显示我在 php.ini 中加载的模块...

      【讨论】:

      • 这对我来说是关键。我实际上删除了 PHPRC 环境变量并重新启动,php 默认查找与当前工作目录相同的路径。谢谢!
      【解决方案4】:

      http://php.net/configuration.file:

      在这些位置搜索php.ini(按顺序):

      • SAPI 模块特定位置(Apache 2 中的 PHPIniDir 指令,CGI 和 CLI 中的 -c 命令行选项,NSAPI 中的 php_ini 参数,THTTPD 中的 PHP_INI_PATH 环境变量)
      • PHPRC 环境变量。在 PHP 5.2.0 之前,这是在下面提到的注册表项之后检查的。
      • 从 PHP 5.2.0 开始,可以为不同版本的 PHP 设置 php.ini 文件的位置。按顺序检查以下注册表项:
        • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z]、[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] 和 [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x],其中 x、y 和 z 表示 PHP 主要、次要和发布版本。如果这些键中的任何一个中存在 IniFilePath 值,则找到的第一个将用作 php.ini 的位置(仅限 Windows)。
        • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP],IniFilePath 的值(仅限 Windows)。
      • 当前工作目录(CLI 除外)。
      • Web 服务器的目录(用于 SAPI 模块)或 PHP 的目录(否则在 Windows 中)。
      • Windows 目录(C:\windows 或 C:\winnt)(对于 Windows),或 --with-config-file-path 编译时选项。

      对于 CLI,您最好的选择可能是为将要执行脚本的帐户设置 $PHPRC 环境变量,或者使用不同的 --with-config-file-path 配置设置重新编译 PHP。

      您还可以通过在调用 PHP 时指定 -c 选项来覆盖每次执行的 php.ini 搜索目录:

      > php --帮助 用法:php [options] [-f] [--] [args...] ... -c |在此目录中查找 php.ini 文件

      【讨论】:

      • 所以,这是一台运行 wamp 的 Windows 机器。如何设置 $PHPRC?
      • 它只是一个环境变量,google for 'set environment variable windows'应该给出教程。
      【解决方案5】:

      尝试在两侧运行phpinfo() 函数

      Webserver 和 CLI 并找出双方的 php.ini 文件的确切位置

      只维护这些文件

      【讨论】:

      • 我已经知道这两个文件的位置。问题是如何统一它们。
      猜你喜欢
      • 1970-01-01
      • 2019-09-10
      • 1970-01-01
      • 2021-02-17
      • 2017-12-17
      • 2012-01-11
      • 2018-12-09
      • 2017-08-19
      相关资源
      最近更新 更多