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

2022-08-30 13:40:10

在 Web 服务器和 CLI 版本上运行的 php 不使用相同的 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)

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

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


答案 1

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,最好的办法可能是为将要执行脚本的帐户设置环境变量,或者使用不同的配置设置重新编译 PHP。$PHPRC--with-config-file-path

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

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


答案 2

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

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

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


推荐