简体   繁体   中英

Setting custom path to php.ini (not in Apache)

I'm trying to learn Symfony that "requires" using php in the command line / terminal for some tasks.

I like to store my php.ini in the /apache2/conf directory, to have all the server configs at one place (and not having to deal with Windows' UAC everytime I change something). In Apache, it's no problem to set the default php.ini location via

PHPIniDir "C:/apache2/conf"

However, when running php from the terminal - not through the apache server - it looks for the file in the C:\\Windows directory by default, although there's none there:

C:\>php -i
...
Configuration File (php.ini) Path => C:\Windows
Loaded Configuration File => (none)
Scan this dir for additional .ini files => (none)
Additional .ini files parsed => (none)
...

Of course, I can bypass this by using the php -c C:\\apache2\\conf ... everytime I use it but I'd prefer a more easy and permanent solution.

Is this possible? Thanks in advance!

http://www.php.net/manual/en/configuration.file.php

php.ini is searched 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_MACHINE\\SOFTWARE\\PHP\\xyz], [HKEY_LOCAL_MACHINE\\SOFTWARE\\PHP\\xy] and [HKEY_LOCAL_MACHINE\\SOFTWARE\\PHP\\x], where x, y and z mean the PHP major, minor and release versions. If there is a value for IniFilePath in these keys, then the first one found will be used as the location of the php.ini (Windows only).

  • [HKEY_LOCAL_MACHINE\\SOFTWARE\\PHP], 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

In addition as of PHP 5.3, you can use per-directory .ini files. See http://php.net/manual/en/configuration.file.per-user.php

Try adding this registry key

HKEY_LOCAL_MACHINE\\SOFTWARE\\PHP\\5\\IniFilePath -> (your path)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM