如何在PHP CLI版本中更改php.ini的路径

Suf*_*ndy 27 php command-line-interface

在Web服务器上运行的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)
Run Code Online (Sandbox Code Playgroud)

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

如何更改已加载的配置文件以便读取,C:\wamp\bin\apache\Apache2.2.21\bin\php.ini因此我不必维护2个不同的php.ini版本?

小智 21

根据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\xyz],[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\xy]和[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 .

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

> php --help
Usage: php [options] [-f]  [--] [args...]
...
  -c | Look for php.ini file in this directory

  • 它只是一个环境变量,谷歌的"设置环境变量窗口"应该给出教程. (2认同)

lat*_*ian 11

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

export PHPRC=/etc/php5/apache2/php.ini
Run Code Online (Sandbox Code Playgroud)

或者将它放在$ HOME/.bashrc中,以便每次启动cli时导入


Ben*_*son 7

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

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

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

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

  2. 然后重新启动计算机(真的)。

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

PHPRC 环境变量设置为 C:\YourPathto\PHP7\php.ini