如何找到您的 Apache 使用的 PHP.ini - Mac OS Mojave?

How to find which PHP.ini your Apache is using - Mac OS Mojave?

我在 Mac OS X Mojave。我不知道我的 Apache2 使用的正确 php.ini 在哪里。

我想更新memory_limit。

我运行

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

我得到了

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

然后,我打开了/usr/local/php5/lib/php.ini

设置memory_limit = 2G并重启apachesudo apachectl -k restart

重新尝试composer install

我不断收到

PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 20480 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleSetGenerator.php on line 126


php --version

PHP 7.1.4 (cli) (built: May  6 2017 10:02:00) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.1.4, Copyright (c) 1999-2017, by Zend Technologies

您的命令行 PHP 和基于 Web 服务器的 PHP 通常配置不同。

创建一个临时网页,然后从那里 运行 phpinfo();

#File: test.php
<?php
phpinfo();

通过网络浏览器加载文件,您会发现您的 php.ini 和任何其他 ini 文件都列在此处。

如果您在从命令行 运行ning PHP 时看到了您的记忆(您的问题在那里有点模棱两可),请尝试 运行ning 以下命令

$ php --ini  

这将列出您的命令行 PHP 使用的每个 ini 文件。我敢打赌,其中之一会设置一个内存限制,它会覆盖您正在设置的内存限制。

我正在寻找 Mac OS X Mojave 上的默认值 php.ini。
只有 php.ini.default 而没有其他 php.ini.
我将 php.ini.default 复制到 php.ini,重新启动 apache:
sudo apachectl restart

然后加载 /etc/php.ini 并在 phpinfo 中可见,并且 php.ini 可以编辑。