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
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时导入
我尝试使用 C:\YourPathto\PHP7\ 作为我的 PHPRC 环境变量,但失败了。但必须设置为带文件名的完整路径。我还发现我必须完全重新启动 php 才能获取新变量。
在 Windows 上,找到 php.ini 文件的路径并修改并在命令窗口中运行以下命令:
setx PHPRC "C:\YourPathto\PHP7\php.ini"
你应该看到SUCCESS: Specified value was saved.
然后重新启动计算机(真的)。
或者通过常规方式编辑环境变量,然后重启: