PHP memory_limit 本地值与 php.ini 值不匹配

But*_*kus 5 php memory httpd.conf virtualhost php.ini

CentOS系统。

总结:更改了 master 和本地 php.ini 中的 memory_limit,但特定虚拟主机的本地值没有变化。

为了提高性能,我在 /etc/php.ini 中将 memory_limit 设置为 1024M

phpinfo() 将服务器上其他虚拟主机的 Master 和 Local 值显示为 1024M。更改 /etc/php.ini 中的值会更改所有值,但一个除外。

一个站点的本地值为 256M。

我以为我发现了问题:该站点的根目录中有一个 php.ini 文件(我不知道),它有

memory_limit = 256M
Run Code Online (Sandbox Code Playgroud)

我把它改成了1024M。问题解决了?不。现在我不知道去哪里找。显然,我已经重新启动了 apache(/etc/init.d/httpd restart),这通常可以解决问题。

我还关闭了 APC 缓存,但我认为它不会缓存 ini 文件。

最后,我尝试将其添加到 httpd.conf 中的虚拟主机:

php_value memory_limit 536870912
Run Code Online (Sandbox Code Playgroud)

(是的,那将是 512MB)这没有任何影响。

还有什么问题?

谢谢。

But*_*kus 5

我找到了答案。站点根目录中有一个隐藏的 .htaccess 文件,该文件覆盖了所有其他值。

它有一行:

php_value memory_limit 256M
Run Code Online (Sandbox Code Playgroud)

我把它改成:

php_value memory_limit 1024M
Run Code Online (Sandbox Code Playgroud)

不用重启apache,内存限制立马升到1024M。

——————

此外,如果您phpinfo()在网站根目录中加载一个页面,在顶部附近您可以看到影响 PHP 的配置文件。搜索“config”,你会找到一个列表。