【问题标题】:Changes in my php.ini are not reflected - "memory_limit" seems to get overridden by another file我的 php.ini 中的更改未反映 - “memory_limit”似乎被另一个文件覆盖
【发布时间】:2013-07-15 17:26:12
【问题描述】:

我在 Mac OS X 上使用 PHP。我需要将 memory_limit 从 256M 增加到 1024M。但是,当我修改 php.ini 文件中的值时,更改不会得到反映。

通常,我认为我的 php.ini 文件位于

/usr/local/php5/lib/php.ini

在我的 phpInfo.php 页面上提到过。其他值得到更新,但不是这个。因此,似乎 memory_limit 被另一个文件覆盖了。有没有办法确定它在哪里被覆盖?

【问题讨论】:

  • 更改后是否重启了服务器?
  • 是的。只有 memory_limit 不会更新。
  • Grep(或以其他方式搜索)您的代码以查找 memory_limit。当然有可能另一个文件正在覆盖该设置。
  • 做到了,谢谢。 php.d 中有一个文件重新定义了 memory_limit。
  • php_info 将显示是否有任何额外的 .ini 文件正在加载,这可能会覆盖这个......但老实说,如果你有一个甚至需要 256M 的脚本,那么你真的需要考虑重写你的脚本因为将其部署到 Web 服务器可能会很危险,因为它可能会被用于 DOS 服务器。

标签: php macos apache


【解决方案1】:

我正在使用带有Homebrew PHP-FPM 和 mod_fastcgi 的 Mac OS X 默认 Apache,我遇到了这个确切的、令人费解的问题。

我的答案在于通过卸载/加载 plist 文件分别重新启动 PHP-FPM。见File php.ini configuration on Mac OS X

【讨论】:

    【解决方案2】:

    以编程方式设置内存限制:

    ini_set('memory_limit','16M');

    执行phpinfo 并查看加载的 .ini 文件的位置。并在那里编辑内存限制。

    【讨论】:

    • 这就是我说的,它被覆盖了,必须使用 grep 才能找到覆盖它的文件。
    猜你喜欢
    • 2018-09-14
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多