The php that run on the webserver and the CLI version is not using the same php.ini file. If I do a command php --ini
, it show this
Configuration File (php.ini) Path: C:Windows Loaded Configuration File: C:wampbinphpphp5.3.8php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none)
while my web version uses the php.ini in C:wampbinapacheApache2.2.21binphp.ini
. This is probably very common for people using wamp.
How do I change the Loaded Configuration File to read from C:wampbinapacheApache2.2.21binphp.ini
so I don’t have to maintain 2 different php.ini versions?
Advertisement
Answer
Per http://php.net/configuration.file:
php.ini is searched for in these locations (in order):
- SAPI module specific location (PHPIniDir directive in Apache 2, -c command line option in CGI and CLI, php_ini parameter in NSAPI, PHP_INI_PATH environment variable in THTTPD)
- The PHPRC environment variable. Before PHP 5.2.0, this was checked after the registry key mentioned below.
- As of PHP 5.2.0, the location of the php.ini file can be set for different versions of PHP. The following registry keys are examined in order:
- [HKEY_LOCAL_MACHINESOFTWAREPHPx.y.z], [HKEY_LOCAL_MACHINESOFTWAREPHPx.y] and [HKEY_LOCAL_MACHINESOFTWAREPHPx], where x, y and z mean the PHP major, minor and release versions. If there is a value for IniFilePath in any of these keys, the first one found will be used as the location of the php.ini (Windows only).
- [HKEY_LOCAL_MACHINESOFTWAREPHP], value of IniFilePath (Windows only).
- Current working directory (except CLI).
- The web server’s directory (for SAPI modules), or directory of PHP (otherwise in Windows).
- Windows directory (C:windows or C:winnt) (for Windows), or –with-config-file-path compile time option.
For CLI, your best bet is probably either to set the $PHPRC
environment variable for the account that will be executing scripts, or recompile PHP with a different --with-config-file-path
configuration setting.
You can also override the php.ini search dir on a per-execution basis by specifying the -c
option when invoking PHP:
> php --help Usage: php [options] [-f] [--] [args...] ... -c | Look for php.ini file in this directory