MAMP将其php.ini文件存储在哪里?

106

我最近买了一台Mac,对于在Mac上进行开发还不太熟悉。

我安装了MAMP Pro 1.9.6.1。我执行了php.ini的locate命令,得到了以下结果:

$ locate php.ini
/Applications/MAMP/conf/php5.2/php.ini
/Applications/MAMP/conf/php5.3/php.ini
/Library/Application Support/appsolute/MAMP PRO/conf/php.ini
/private/etc/php.ini.default

我已经更改了它们所有的名称。重新启动了MAMP,顺利地加载了(很奇怪对吧?)。我正在使用PHP版本5.2。

现在这些文件都是不同的名称(逐个更改以进行排除)。 所以我想重新启动Mac。同样地,MAMP没有任何问题加载,即使php.ini文件已经被移动了。在Lamp上,这是不可能的。但可能还有另一个php.ini文件我没找到(我可能不知道如何更新数据库),MAMP非常智能并且会自动拉取(不太可能),或者它根本没有使用一个php.ini文件。


2
MAMP Pro使用动态生成的php.ini。您需要编辑模板。 - Florent
理查多·马丁斯应该是正确答案,詹姆斯... - Jonathan Solorzano
2
我正在使用MAMP 4(免费版),我的php.ini路径是/Applications/MAMP/bin/php/php7.1.1/conf/php.ini - Gavin
我在/Applications/MAMP/bin/php/php8.0.0/conf/php.ini找到了php.ini文件。注意:如果我在php.ini文件中进行任何更改,请不要忘记重新启动apache,否则您将无法在服务器上获得更新的更改。谢谢 :) - Kamlesh
15个回答

149

注意: 如果这不起作用,请查看下面Ricardo Martins的回答。


创建一个带有<?php phpinfo() ?>的PHP脚本,在浏览器中运行它,并查找值为Loaded Configuration File。 这告诉您在Web服务器上下文中PHP正在使用哪个php.ini文件。


7
它从这里 /Library/Application Support/appsolute/MAMP PRO/conf/php.ini 获取配置,但似乎每次启动都会重新加载。 - James Vince
4
您甚至可以从终端运行echo '<?php phpinfo() ?>'|php - phyatt
4
或者只需输入 php -i (这比 echo '<?php phpinfo() ?>'|php 更易读更短)。注意:有时候,命令行版本的 PHP 使用不同的 php.ini 文件,并且可能具有与 CGI 或 Apache PHP 不同的设置。 - drew010
6
在本地主机的 MAMP 面板上,您只需从菜单中单击 php.info 即可。 - Alex Borsody
1
需要重新启动服务器才能应用php.ini更改。 - Krzysztof Przygoda
显示剩余5条评论

78

我不确定非PRO版的MAMP是否一样,但MAMP每次启动时都会覆盖修改过的php.ini

在我的情况下,我需要使用MAMP菜单来更改我的php.ini文件文件->编辑模板->PHP->PHP 5.xx->php.ini)。


如果您看不到文件菜单,可能是因为您激活了“隐藏码头符号”选项。如果您禁用此选项,则可以再次看到文件菜单。 - Qullbrune
1
@tt_de 我已经显示了Dock图标,但即使在v3中,我的菜单栏也显示为:“MAMP,Edit,Servers,Tools,Help”。你是不是在Linux机器上?也许他们将MAMP菜单项放在非OS X平台的“文件”下。尽管如此,我在任何菜单中都没有“编辑模板”,但我可以从文件系统手动编辑文件。 - Taylor D. Edmiston
@tedmiston:抱歉,我在使用OS X操作系统! - Qullbrune
@tt_de 我也是。很奇怪。 - Taylor D. Edmiston
经过验证,该程序可在MAMP Pro - El Capitan - 新安装上正常工作。经过一个小时的搜索,这个答案提供了正确的操作方法。+1 @Ricardo Martins - stoopkid1
显示剩余3条评论

39
为了更清晰(因为我阅读了这个帖子却没有找到解决方案,即使它在这里!),我遇到了相同的问题并发现了原因:我修改了错误的php.ini文件!
是的,在MAMP中有两个php.ini文件:
1. Applications/MAMP/conf/php5.5.10/php.ini 2. Applications/MAMP/bin/php/php5.5.10/conf/php.ini
正确的php.ini文件是第二个:Applications/MAMP/bin/php/php5.5.10/conf/php.ini
为了证明这一点,请创建一个.php文件(随意命名,例如 "info.php")并将一个简单的phpinfo()放入其中。
<?php
echo phpinfo();

在浏览器中打开并搜索“ Loaded Configuration File”:我的文件路径为"/Applications/MAMP/bin/php/php5.5.10/conf/php.ini"。

错误就出在这里; 我编辑了Applications/MAMP/conf/php5.5.10/php.ini,但这是错误的文件!实际上,正确的php.ini文件位于bin目录中。

请注意这个小差别,它让我头痛了整整一个半小时!


具体目录取决于您使用的PHP版本,但是是的,该路径(../MAMP/bin/php/phpX/conf/php.ini)是正确的。我还编辑了php.ini.temp文件以防万一。在两种情况下都将display_errors = On设置为开启。 - Jason Engage
这是我需要的答案,因为我没有专业版。 - Dreadnought
MAMP 5在bin/php文件夹中不再有conf文件夹。 - sk904861

22

您需要编辑的文件在MAMP Pro中,并且每次启动都使用php.ini文件。

  • 启动MAMP PRO
  • 编辑文件 > 编辑模板 > PHP 5.3.2 php.ini
  • 重新启动MAMP Pro

您所做的更改应该会生效。


9
我不知道你是否找到了答案,但我不需要使用MAMP PRO来完成这个任务。只需按照其他人所说的正确路径进行操作。大致如下:

MAMP -> bin -> php -> php(your php version) -> conf -> php.ini

关键在于编辑文件的位置。我之前错误地编辑了ini文件的注释部分。实际上,您必须向下滚动到第472行,在那里发现" display_errors = Off "并将其更改为"On"。希望这可以帮助您。

6

只需从终端运行以下命令,它将向您显示最简单的已加载配置文件

php --ini

2

如果您正在使用5.2版本的PHP,请更改/Applications/MAMP/conf/php5.2/php.ini。如果您正在使用5.3版本的PHP,请编辑/Applications/MAMP/conf/php5.3/php.ini。

如果您正在使用OSX Lion或OSX Mountain Lion,我建议您使用默认安装的Apache和PHP。

问候!


我认为MAMP比默认选项更好,因为它包括多个版本的PHP以及一些预编译的[PHP加速器](http://en.wikipedia.org/wiki/PHP_accelerator)。苹果在Mountain Lion中友好地[删除了Web Sharing首选项](http://support.apple.com/kb/HT5230?viewlocale=en_US):(。还要注意,MAMP 2.x的PHP路径包括次要版本(例如MAMP/conf/php5.4.3)。 - Stennie

2

在运行MAMP服务器后,您可以在工具栏中找到php info链接。一旦单击,您将获得有关php的所有信息。

enter image description here

1
在我的Mac上,运行MAMP,我有几个可能是php.ini的位置,所以我编辑了2个疑似文件中的memory_limit,以测试哪一个影响了实际的MAMP PHP INFO页面细节。通过这样做,我能够确定这是正确的php.ini:
/Applications/MAMP/bin/php/php7.2.10/conf/php.ini

1

在浏览所有这里的解决方案之后,查找已加载的 php.ini 文件最简单的方法是进入已加载的 MAMP 网页上的 phpinfo,这将显示已加载的 php.ini 文件。

这也将确认您更改的参数(如 max_file_size)是否已正确更新。


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