【问题标题】:OSX Sierra - how to increase PHP memory limit correctly?OSX Sierra - 如何正确增加 PHP 内存限制?
【发布时间】:2019-03-13 19:03:37
【问题描述】:

我需要在命令行上增加 PHP 的内存限制,以便我可以使用 Composer。

php -i | grep memory_limit的输出

memory_limit => 256M => 256M

php --ini的输出

Configuration File (php.ini) Path: /usr/local/php5/lib
Loaded Configuration File:         /usr/local/php5/lib/php.ini
Scan for additional .ini files in: /usr/local/php5/php.d
Additional .ini files parsed:      /usr/local/php5/php.d/10-extension_dir.ini,
/usr/local/php5/php.d/20-extension-opcache.ini,
/usr/local/php5/php.d/40-openssl.ini,
/usr/local/php5/php.d/50-extension-apcu.ini,
/usr/local/php5/php.d/50-extension-curl.ini,
/usr/local/php5/php.d/50-extension-gmp.ini,
/usr/local/php5/php.d/50-extension-igbinary.ini,
/usr/local/php5/php.d/50-extension-imap.ini,
/usr/local/php5/php.d/50-extension-intl.ini,
/usr/local/php5/php.d/50-extension-mcrypt.ini,
/usr/local/php5/php.d/50-extension-memcache.ini,
/usr/local/php5/php.d/50-extension-memcached.ini,
/usr/local/php5/php.d/50-extension-mongo.ini,
/usr/local/php5/php.d/50-extension-mssql.ini,
/usr/local/php5/php.d/50-extension-oauth.ini,
/usr/local/php5/php.d/50-extension-pdo_dblib.ini,
/usr/local/php5/php.d/50-extension-pdo_pgsql.ini,
/usr/local/php5/php.d/50-extension-pgsql.ini,
/usr/local/php5/php.d/50-extension-propro.ini,
/usr/local/php5/php.d/50-extension-raphf.ini,
/usr/local/php5/php.d/50-extension-readline.ini,
/usr/local/php5/php.d/50-extension-redis.ini,
/usr/local/php5/php.d/50-extension-solr.ini,
/usr/local/php5/php.d/50-extension-ssh2.ini,
/usr/local/php5/php.d/50-extension-twig.ini,
/usr/local/php5/php.d/50-extension-uploadprogress.ini,
/usr/local/php5/php.d/50-extension-xdebug.ini,
/usr/local/php5/php.d/50-extension-xhprof.ini,
/usr/local/php5/php.d/50-extension-xsl.ini,
/usr/local/php5/php.d/60-extension-pecl_http.ini,
/usr/local/php5/php.d/99-liip-developer.ini

所以我编辑 /usr/local/php5/lib/php.ini 但它总是 256MB...

重启了Apache,但是是cli,还是没有成功。

【问题讨论】:

  • 确保编辑正确的php.ini
  • 检查this answer。它适用于 Lion,但我认为它仍然适用于 Sierra
  • 谢谢,但就我而言,它似乎已经过时了

标签: php macos macos-sierra


【解决方案1】:

其他包含的文件之一具有memory_limit 指令。使用此命令查找哪个:

grep memory_limit /usr/local/php5/php.d/*

“已解析的其他 .ini 文件”稍后会解析,并将覆盖主 php.ini 中的设置。

【讨论】:

    【解决方案2】:

    也许你应该找出 php.ini 在哪里

    有时这是不行的:

    php -i | grep php.ini   # turns out I just can't edit /etc/php.ini even when I'm root
    

    那么你可以试试这个:

    locate php.ini  # turns out it's here: /private/etc/php.ini
    

    最后,使用 sudo 编辑 /private/etc/php.ini

    sudo vim /private/etc/php.ini 
    

    保存文件
    :wq!
    

    工作完成。

    【讨论】:

    • 用 :wq! 保存,翻译为不保存就退出 => !丢弃更改
    • @Gunnrryy :wq!只是意味着在一个命令中强制写入和退出。如果文件被修改并且你想退出而不保存,你可以使用 :q!。
    • 在什么情况下php -i 不会为您提供有关正在应用哪些 ini 文件的准确信息?我不确定 macOS 是否带有vim,但如果您觉得需要提供有关如何退出vi 的说明,那么为什么不如何进入插入/追加模式呢?该指令可以在多个未命名为php.ini 的文件中的任何一个中,就像在 OP 的情况下,他们已经编辑该文件无效。
    【解决方案3】:

    我发现您需要更改此文件中的内存限制:

    /usr/local/etc/php/*your php version*/conf.d/php-memory-limits.ini

    修改此文件后效果很好。

    【讨论】:

      猜你喜欢
      • 2019-03-13
      • 2014-04-24
      • 2010-11-26
      • 2015-08-31
      • 2013-04-16
      • 2012-03-08
      • 2014-11-17
      • 2014-10-03
      • 1970-01-01
      相关资源
      最近更新 更多