Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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
phpinfo说php.ini路径是C:\Windows,但那里没有php.ini_Php_Apache - Fatal编程技术网

phpinfo说php.ini路径是C:\Windows,但那里没有php.ini

phpinfo说php.ini路径是C:\Windows,但那里没有php.ini,php,apache,Php,Apache,我们正在尝试从PHP5切换到PHP7 我们现在已经安装了Apache,PHP也可以工作了 但是,我们在php.ini文件中所做的更改没有任何效果 通过phpinfo()我们意识到原因是配置文件(php.ini)路径是C:\Windows 在我们的httpd.conf中,我们有: # PHP7 setup LoadFile "C:/test/php/php7ts.dll" LoadModule php7_module "C:/test/php/php7apache2_4.dll" AddHandl

我们正在尝试从PHP5切换到PHP7

我们现在已经安装了Apache,PHP也可以工作了

但是,我们在
php.ini
文件中所做的更改没有任何效果

通过
phpinfo()
我们意识到原因是
配置文件(php.ini)路径是
C:\Windows

在我们的
httpd.conf
中,我们有:

# PHP7 setup
LoadFile "C:/test/php/php7ts.dll"
LoadModule php7_module "C:/test/php/php7apache2_4.dll"
AddHandler php7-script .php
PHPINIDir "C:/test/php"
据我所知,这是为了让Apache在
c:\test\php
中查找
php.ini
(http.conf中需要使用前斜杠)

由于不理解Apache为什么不在我们告诉它的地方查找
php.ini
,我们将
php.ini
放在
c:\Windows
中它仍然没有被读取的地方(我们在
php.ini
中加载的模块没有在phpinfo中加载)

每次对
php.ini
httpd.conf
进行更改时,我们都会使用Apache监视器重新启动Apache

我们如何告诉Apache读取特定目录中的
php.ini
文件,而不是我们上面尝试过的文件?

增编:

我们将所有内容切换回PHP5,现在得到的错误与上面截图中显示的PHP路径相同。它说它现在是PHP5.6.0,所以它显然正在加载新的PHP版本,但是有些地方已经改变,PHP.ini文件在两个版本中都没有读取。(?)


重新启动也无济于事。

您可以尝试添加尾部斜杠

PHPINIDir "C:/test/php/"

注意:请记住,在Windows上的Apache配置文件中添加路径值时,所有反斜杠 c:\directory\file.ext应转换为正向斜杠: c:/directory/file.ext。后面的斜杠也可能是必要的 目录


使用PHPRC可能会有帮助吗?您可以指定包含php.ini的目录的路径,而不是php.ini的直接路径。所以导出PHPRC=/test/php。希望这有帮助?这听起来有点像执行
phpinfo()
脚本时的缓存问题。。。请确保在浏览器中进行深度重新加载或为此禁用缓存。请查看下面的行(加载的配置文件)。配置文件(php.ini)路径多年来一直显示C:\Windows,没有明显的原因;c:\php是否已添加到路径?在系统变量中,关于尾部斜杠的注释。。。我从来没有用过它,甚至同一页上的示例也没有用过。。。但是对于PHP和Windows,你永远不会知道。我尝试了
PHPIniDir“C:/test/PHP/”
PHPIniDir“C:/test/PHP/”
,但没有效果。就好像它忽略了这一行。如果我取出任何其他行,例如
LoadFile“C:/test/php/php5ts.dll”
LoadModule php5_module“C:/test/php/php5apache2_4.dll”
,则php停止工作,因此我知道Apache正在解析这些行,由于某种原因,它只是忽略了
PHPINIDir
行。而且在
httpd.conf
文件的任何地方都没有提到PHP,例如,没有其他设置覆盖这些设置。