我正在尝试学习“需要”在命令行/终端中使用php执行某些任务的Symfony。
我喜欢将php.ini
存储在/apache2/conf
目录中,以便将所有服务器配置在一个位置(并且每次更改内容时都不必处理Windows的UAC)。在Apache中,通过
PHPIniDir "C:/apache2/conf"
然而,当从终端运行php时 - 而不是通过apache服务器 - 默认情况下它会在C:\ Windows目录中查找该文件,尽管那里没有:
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)
...
当然,我可以在每次使用php -c C:\apache2\conf ...
时使用它来绕过这一点,但我更喜欢更简单和永久的解决方案。
这可能吗? 提前谢谢!
答案 0 :(得分:7)
http://www.php.net/manual/en/configuration.file.php
在这些位置(按顺序)搜索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编译时选项
此外,从PHP 5.3开始,您可以使用每个目录的.ini文件。见http://php.net/manual/en/configuration.file.per-user.php
答案 1 :(得分:0)
尝试添加此注册表项
HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ 5 \ IniFilePath - > (你的路径)