php.ini 更改没有任何效果

php.ini 更改没有任何效果

当我在 centos 上位于 /usr/local/lib 中的 php.ini 中进行任何更改时,这些更改似乎并未应用,例如,当我清除 php.ini 的所有内容并重新启动 Apache 时,一切正常......

我搜索了 php.ini,发现它位于系统中的一个位置... 有什么问题?我该如何修复它?

答案1

如果你不确定正在使用什么 php.ini,请在你的 webfolder 中创建一个新文件,将其命名为,phpinfo.php例如,其中包含以下内容

<?php
phpinfo();
?>

然后在浏览器中打开网址(http://www.example.com/phpinfo.php)。它将显示正在使用的 php.ini 的路径。

当您找到正确的文件后,请进行所需的更改,并确保删除前导 ; 以防万一有一个激活设置。

重新启动 apache 并重新加载 phpinfo 页面,您更改的设置现在应该会显示出来。如果没有,请确保您的 webroot 中没有覆盖 php 设置的 .htaccess 文件。

答案2

你可能想阅读以下帖子:

提示:

  1. php_info 输出中的“已加载配置文件”是什么?-> 检查您是否编辑了正确的 ini 文件。
  2. 检查同一文件中您的设置是否多次出现。
  3. Gryphius 的提示也不错:取消注释该设置!(删除前导“;”)
  4. 检查 ini 文件的权限。Web 服务器和 php-cgi/php-fpm 需要读取权限。
  5. php 5 及更高版本:在测试之前,不仅要重新启动 Web 服务器,还要重新启动 php-fpm 服务。

答案3

我在我的php.ini文件中发现了一个非常明显的错误,导致了这种症状,例如,一些 php.ini 设置没有生效。

从 php7.0 开始,#字符 不再是有效的注释起始符。仅;接受 。但仍有许多编辑器(例如 )vim将“ ”后的字符显示#为注释,因此您可能无法识别 php.ini 文件的某个部分不是可忽略的注释。

就我的情况来说,该php.ini文件包含以下内容:

# ""
max_input_vars = 3000

由于前一行不是注释,因此max_input_vars = 3000没有生效。它有一些副作用,导致我的下一行被忽略。

将其更改为

; ""
max_input_vars = 3000

解决了问题。

答案4

请按照以下步骤操作:

在 webroot 中创建一个文件,随意命名。我通常喜欢 x.php

 # vim x.php

该文件的内容应该是这样的:

<?php
phpinfo();
?>

现在在浏览器中打开此文件,如下所示:

http://server_ip/x.php

这将显示您的 apache 正在使用的 php.ini 的位置。编辑该 php.ini 即可。

相关内容