如何使用MAMP PRO增加PHP的命令行memory_limit?


13

我已经编辑php.ini了Mac上的每个文件(至少是“ locate”找到的所有文件),但似乎仍然无法增加memory_limitPHP 的指令。

我正在使用MAMP PRO,并在终端中运行PHP脚本。

如何解决呢?

Answers:


15

无需猜测您需要更改哪个php.ini,而是运行以下命令来查找文件:

php -r 'phpinfo();' | grep 'php.ini'

即使我使用MAMP PRO,默认情况下,我的命令行PHP命令也不使用其PHP副本执行。以我为例,该文件位于/etc/php.ini

找到文件后,请按照所有其他答案中的说明进行操作以更改memory_limit设置:

memory_limit = 256M

1
我必须拳打cp默认文件:cp /etc/php.ini.default /etc/php.ini
deweydb '18

4

来自http://drupal.org/node/66187(drupal 可能与您的需求无关,但是他们的网站有很好的解释-希望为您提供来源并给予他们荣誉)

默认情况下,MAMP将脚本可以使用的内存限制设置为8MB,这是PHP的默认设置。查看PHP的php.ini推荐文件,此内存限制通常设置为128MB。要调整此金额,请在文本编辑器中打开php.ini文件,然后更改以下行(大约在232行):

memory_limit = 8M;脚本可能消耗的最大内存量(8MB)

PHP.ini文件位置:

/Applications/MAMP/conf/php4/php.ini
/Applications/MAMP/conf/php5/php.ini
在MAMP PRO中,请勿直接更改文件,因为它将在每次服务器启动时重新创建。请改为编辑适当的模板(菜单文件>编辑模板> ...)。

即使较大的PHP内存限制,尝试将大型Drupal数据库导入MySQL也会出现超时错误。这些问题将在其他地方详细讨论缓存和视图缓存。通常,解决方案是在将数据库导入MySQL或从MySQL导出数据库之前清空Drupal缓存。


不行,这些限制已经达到128MB ...
Alex Weber

嗯。您可以...尝试编辑模板。显然,每次都会重新创建php.ini文件。此处的说明:documentation.mamp.info/en/mamp-pro/how-tos / ... 可以吗?您在Mamp服务器上运行什么?
dmg

仍然一无所有,我可以找到的每个php.ini文件(以及模板)都具有128MB,但是php -r“ phpinfo();” | grep memory_limit仍然返回memory_limit => 8M => 8M
Alex Weber

2

对我来说,我做了以下工作:

编辑 /Applications/MAMP/conf/php5.4.4/php.ini

php.ini.temp

成为:

memory_limit = 128M      ; Maximum amount of memory a script may consume (8MB)

然后在finder中,仅使php.ini和php.ini.temp对所有用户只读。这样,MAMP不能用默认文件覆盖它。重新启动服务器并检查您的phpinfo。


最简单的事情没有引起注意!谢谢这个主意!
凯莉·约翰逊

1

经过一段时间的闲逛,发现对我有用的东西:

# backup original php.ini
sudo mv /usr/bin/php /usr/bin/php.bkp

# create a symlink from MAMP's php.ini in /usr/bin directory
# (I use 5.2, change the path for 5.3)
sudo ln -s /Applications/MAMP/bin/php/php5.2.17/bin/php /usr/bin/php

那里!


1

快速而肮脏的方法是在调用脚本时将其设置为参数。

即:

php -d memory_limit=512M myScript.php 


0

如果您在Mamp Pro中启用了Opcache,将无法获得正确的设置...停止它,然后重新启动Mamp Pro服务器...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.