如何在 Mac OS X Mojave 上更新 php.ini?

Posted

技术标签:

【中文标题】如何在 Mac OS X Mojave 上更新 php.ini?【英文标题】:How update php.ini on a Mac OS X Mojave? 【发布时间】:2019-05-21 03:42:45 【问题描述】:

我在 Mac OS X Mojave 上

第一步

我跑了

php -i | grep php.ini

我明白了

Configuration File (php.ini) Path => /usr/local/php5/lib
Loaded Configuration File => /usr/local/php5/lib/php.ini

第 2 步

我打开ini文件

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

and update memory_limit to -1 

第三步

我跑了

php -i | grep memory_limit

我明白了

memory_limit => 256M => 256M                                                                                      

第四步

我重启我的

sudo apachectl -k restart

然后输入我的密码

试过了

php -i | grep memory_limit

再一次,我还是得到了

memory_limit => 256M => 256M                                                                                      

好像我的chages从来没有生效...

我需要在 Mac 上启动任何服务吗?如果是这样,什么命令可以做到这一点?

phpinfo

【问题讨论】:

cli和apache使用不同的配置文件运行phpinfo()查看apache使用了哪个配置文件 您无需重新启动 Apache 即可看到 php.ini 更改在 CLI 上生效,您的更改应该像您演示的那样工作。我能想到的可能是使用0而不是-1?似乎 PHP 站点现在已关闭,所以我无法确认。 哈哈阅读:serverfault.com/questions/295584/php-cli-memory-limit 在 cli 中它只是忽略了 memory_limit 【参考方案1】:

编辑:

创建一个空的php文件:

<?php phpinfo(); ?>

使用您的网络浏览器 (localhost/yourfile.php) 加载它。

检查:

    “加载的配置文件”与您更改的配置文件匹配。 “memory_limit”具有应有的值。

我通常使用Brew 安装一个“干净”的 php。所以这里有几个问题要确定:

    您是使用 php 作为 cli 还是使用 Apache/nginx? (可能是 2 个配置文件) 如果您使用的是 Apache,您是否重新启动了它? (sudo apachectl -k 重启) 您是否尝试使用更常规的值(如 2048M)?我不确定是否始终支持 -1。

【讨论】:

1 - 我用的是 Apache,抱歉忘记在帖子的标签中添加了 2 - 是的,它会重新启动它。 3 - 除了-1,我还没有尝试任何其他方法 你能检查你的配置文件的路径吗: (在 apache 提供的 php 文件中)?【参考方案2】:

答案很简单。

你编辑的PHP INI文件和Apache服务器加载的INI文件不同..

您必须更新 apache httpd.conf 文件中的 PHP 加载程序。

然后用sudo apachectl restart重启apache服务器。

最后,现在你可以用phpinfo();测试在apache2中加载的PHP ini文件了

【讨论】:

【参考方案3】:

虽然这是一个老问题,但仍有许多人在挣扎。所以想回答一下。

安装的 php.ini 位于 /usr/local/php5/lib/php.ini (或 可以在 /usr/local/etc/php/7.3/php.ini )

Apache 使用的 php.ini 不一样,就是/etc/php.ini。

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

所以上述对 php.ini 的更改不会反映在 Apache 中。解决方案是在您的 apache 配置文件中指向正确的 PHP。

sudo vi /etc/apache2/httpd.conf

搜索模式“LoadModule php”并使用 libexec 注释现有行并将以下行添加到您的安装中。

#LoadModule php7_module libexec/apache2/libphp7.so
LoadModule php7_module /usr/local/opt/php@7.3/lib/httpd/modules/libphp7.so

重启你的apache

sudo apachectl restart

检查日志文件

tail -f  /var/log/apache2/error_log

【讨论】:

以上是关于如何在 Mac OS X Mojave 上更新 php.ini?的主要内容,如果未能解决你的问题,请参考以下文章

将 MacBook Air 从 OS X El Capitan 升级到 Mojave [关闭]

text 禁用黑暗模式Mac OS X Mojave

在 Mac OS X (sierra & Mojave) 中启用 OpenMP 支持

text Mac Os X Mojave清除dns缓存

Mac OS X Mojave - 永久设置环境变量

Mac OS X Mojave 上的 XAMPP 错误