OSX Sierra - 如何正确增加PHP内存限制?

9

我需要在命令行中增加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 文件。 - Xorifelse
查看这个答案。虽然是针对Lion的,但我认为它仍适用于Sierra。 - gmc
谢谢,但在我的情况下似乎已经过时了。 - Codium
3个回答

14

另一个包含的文件中有一个 memory_limit 指令。使用此命令查找该文件:

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

"Additional .ini files parsed"会在之后被解析,会覆盖主要的php.ini中的设定。


10
也许你需要找出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
@Gunnrryy :wq! 只是一个命令,表示强制写入并退出。如果文件已被修改且您想退出而不保存,则应使用 :q!。 - Randy Lam
“php -i” 会在哪些情况下无法给出有关应用哪些 ini 文件的准确信息?我不确定 macOS 是否带有 “vim”,但如果你感觉需要说明如何退出 “vi”,那么为什么不说明如何进入插入/追加模式呢?指令可能位于多个未命名为 “php.ini” 的文件中,就像 OP 的情况一样,在该情况下,他们已经编辑该文件,但没有效果。 - miken32

2
我发现你需要修改以下文件中的内存限制:/usr/local/etc/php/*你的php版本*/conf.d/php-memory-limits.ini。修改这个文件后,问题就迎刃而解了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接