Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将自定义路径设置为php.ini(不在Apache中)_Php - Fatal编程技术网

将自定义路径设置为php.ini(不在Apache中)

将自定义路径设置为php.ini(不在Apache中),php,Php,我试图学习Symfony,它“需要”在命令行/终端中使用php来完成某些任务 我喜欢将我的php.ini存储在/apache2/conf目录中,以便将所有服务器配置在一个位置(而不必每次更改某些内容时都处理Windows的UAC)。在Apache中,通过设置默认php.ini位置没有问题 PHPIniDir "C:/apache2/conf" 但是,当从终端(而不是通过apache服务器)运行php时,默认情况下会在C:\Windows目录中查找该文件,尽管那里没有: C:\>php -

我试图学习Symfony,它“需要”在命令行/终端中使用php来完成某些任务

我喜欢将我的
php.ini
存储在
/apache2/conf
目录中,以便将所有服务器配置在一个位置(而不必每次更改某些内容时都处理Windows的UAC)。在Apache中,通过设置默认php.ini位置没有问题

PHPIniDir "C:/apache2/conf"
但是,当从终端(而不是通过apache服务器)运行php时,默认情况下会在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:\apache2\conf…
绕过这个问题,但我更喜欢一个更简单、更持久的解决方案

这可能吗?
提前谢谢

尝试添加此注册表项


HKEY_LOCAL_MACHINE\SOFTWARE\PHP\5\ini文件路径->(您的路径)

尝试添加此注册表项

HKEY\U LOCAL\U MACHINE\SOFTWARE\PHP\5\IniFilePath->(您的路径)

在以下位置搜索php.ini(按顺序):

  • SAPI模块特定位置(Apache 2中的PHPIniDir指令,CGI和CLI中的-c命令行选项,NSAPI中的php_ini参数,THTTPD中的php_ini_PATH环境变量)

  • PHPRC环境变量。在PHP5.2.0之前,这是在下面提到的注册表项之后检查的

  • 从PHP5.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)或--带有配置文件路径编译时选项

此外,从PHP5.3开始,还可以使用per directory.ini文件。请参见

在以下位置搜索php.ini(按顺序):

  • SAPI模块特定位置(Apache 2中的PHPIniDir指令,CGI和CLI中的-c命令行选项,NSAPI中的php_ini参数,THTTPD中的php_ini_PATH环境变量)

  • PHPRC环境变量。在PHP5.2.0之前,这是在下面提到的注册表项之后检查的

  • 从PHP5.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)或--带有配置文件路径编译时选项


此外,从PHP5.3开始,还可以使用per directory.ini文件。请参见

您可以通过.htaccess和httpd.conf覆盖php.ini值。您不需要维护两个单独的.ini文件,而是可以有一个全局文件,然后在Apache.conf文件中有一些重写。@profitphp我同意您的意见,但不知道在这种情况下使用Linux会有什么改变。Marc,我不想有两个单独的.ini文件,这正是问题所在。但我的问题是CLI,因此.htaccess或httpd.conf都没有帮助。现在修好了,谢谢!profitphp,我尝试了很多次,发行了很多版本,但它从来没有让我心动过。也许下次:PYou可以通过.htaccess和httpd.conf覆盖php.ini值。您不需要维护两个单独的.ini文件,而是可以有一个全局文件,然后在Apache.conf文件中有一些重写。@profitphp我同意您的意见,但不知道在这种情况下使用Linux会有什么改变。Marc,我不想有两个单独的.ini文件,这正是问题所在。但我的问题是CLI,因此.htaccess或httpd.conf都没有帮助。现在修好了,谢谢!profitphp,我尝试了很多次,发行了很多版本,但它从来没有让我心动过。也许下次吧:我真傻,我在谷歌上找不到它,也没想过要查看手册。。。我已经使用了环境变量,效果非常好,谢谢!我真傻,我在谷歌上找不到它,也没想到要查看手册。。。我已经使用了环境变量,效果非常好,谢谢!