Mac OS X Lion中的PHP.ini在哪里?

我想在我的Mac上运行一些PHP,未注释httpd.conf,激活web共享,安装MySQL等。 我似乎找不到我的PHP文件,最重要的是,PHP.ini.

在我的旧机器上,它位于/usr/local/php5/lib 但是/usr/local下php5目录不存在

我需要取包裹吗?还是我找错地方了?

运行OS X 10.7.3, PHP 5.3.8, Apache/2.2.21

512940 次浏览

如果它存在,你应该在/private/etc中找到它,否则:

sudo cp /private/etc/php.ini.default /private/etc/php.ini

要在您的机器上找到ini文件,打开Terminal.app并运行以下命令:

php --ini

如果你需要Lion的模板,试试

如上所述,php --ini命令将告诉你PHP希望在哪里找到PHP .ini文件。

对于标准安装,它可能会寻找/etc/php.ini

如果你已经使用了< a href = " http://www.macports.org/ " > macports < / >,那么PHP可能正在寻找/opt/local/etc/php5/php.ini

在终端执行php -i | grep php.ini。 应该给你一些提示;)

我有不止一次的PHP实例运行,所以其他答案不适合我。这是:

创建一个PHP文件,并在浏览器中打开它的本地url:

<?php phpinfo(); ?>

PHP.INI路径将在靠近顶部的位置列出。

我从“Hello World!”',一旦我在浏览器中显示它,我就会在那里抛出phpinfo();,你可以看到所有的东西。告诉你加载了哪些配置。

<?php
echo 'Hello World!';


phpinfo();

你运行php_info(),并看到如下行:)

Loaded Configuration File   /Applications/XAMPP/xamppfiles/etc/php.ini

这是一个相当老的帖子,但我想进一步澄清。

如果你有一个安装了多个PHP的系统(就像我的系统),你使用命令行工具得到的结果可能与web服务器实际使用的结果不同。如果你对web服务器使用的PHP感兴趣,只使用从使用“phpinfo()”函数的网页收集的信息。

例如,在我的系统上,两种不同方法报告的版本是:

命令行:5.3.26

网络:5.3.13

对于php.ini文件路径,情况也有所不同:

命令行:/private/etc/php.ini

网络:/长/道路/ / /文件/ php . ini

你可以使用下面的命令找到所有可能的php.ini文件:

查找/ name php.ini 2>&1 | grep -v "denied"| grep -v“directory"

('2>&1'和'grep'元素只是将命令的输出限制为有用的信息,即消除错误消息)

在我的系统上,我发现了3个INI文件。因为我对web服务器正在使用的东西感兴趣,所以我知道我应该使用从web页面结果返回的路径。我对列出的php.ini文件进行了更改,重新启动apache,并重新运行网页;那里显示了新编辑的内容。

重新启动apache。

Sudo apachectl -k restart

——J

@Cronk和@Justin的回答让我接近了Mac OS X 10.9 Mavericks。事实上,在我的系统上,/etc/php.ini文件完全丢失了,直到我在web服务器上运行phpinfo(),我才发现没有配置文件。从/etc/php.ini.default复制文件并将完全限定路径添加到mcrypt.so库到配置文件中解决了这个问题:

cp /etc/php.ini.default /etc/php.ini

然后在/etc/php.ini中添加以下行(使用到你的mcrypt.so文件的正确路径):

extension="/usr/local/Cellar/php54-mcrypt/5.4.29/mcrypt.so"

然后重新启动Apache2:

apachectl restart

从任何文件运行phpinfo(),它会告诉你它在哪里。这是一个截图。

enter image description here

下面是在mac中修改正确php.ini的完整方法。

  • 通过php --ini找到ini的位置,这将给出如下内容:
    Configuration File (php.ini) Path: /usr/local/etc/php/7.4
Loaded Configuration File:         /usr/local/etc/php/7.4/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.4/conf.d
Additional .ini files parsed:      /usr/local/etc/php/7.4/conf.d/ext-opcache.ini
  • 现在通过sudo vi /usr/local/etc/php/7.4/php.ini打开php.ini
  • 进行更改并通过:wq退出
  • 执行最后的命令sudo apachectl restart

你的改变现在应该反映,如果做得正确:)

在OSX/MacOS上,在终端窗口中执行以下操作:

在提示符下运行php --ini,输入并按enter

报告如下内容: 配置文件(php.ini)路径:/etc 加载的配置文件:(无) 扫描:/Library/Server/Web/Config/php中的其他.ini文件 解析的其他.ini文件:(none)

.ini文件

...这是因为在/etc中有一个名为/etc/php.ini.default的文件作为示例,并显示它没有被使用。你需要把这个文件复制到php需要的文件名,这样你就可以编辑它了,就像这样:

类型:

$  sudo cp /etc/php.ini.default /etc/php.ini       (and enter your password)

...然后你会发现,如果你再次运行php --ini,它现在会看到你的新文件:

在提示符处输入this: php --ini应该报告如下内容:

Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini
Scan for additional .ini files in: /Library/Server/Web/Config/php
Additional .ini files parsed:      (none)
< p >…现在编辑/etc/php.ini -你要确保以下行(不是以分号';'开头的同一行)完全如下所示: log_errors = On(这将打开日志引擎)

然后,在本节中:

; Log errors to specified file. PHP's default behavior is to leave this value
; empty.
; http://php.net/error-log
; Example:
;error_log = php_errors.log
; Log errors to syslog (Event Log on Windows).
;error_log = syslog

如果你想记录到syslog(或Windows上的Windows事件日志),那么;error_log = syslog应该变成error_log = syslog

然而,如果如你所说,你想要记录到一个文件,你可以通过删除前面的分号来取消注释,使;error_log = php_errors.log变成error_log = php_errors.log,或者使用完整的路径将其放置在你想要的位置。

祝你好运

1-找到.ini位置路径

打开终端,运行命令

php --ini

2-复制此路径/usr/local/etc/php/7.4/php.ini 并通过命令

打开它
nano /usr/local/etc/php/7.4/php.ini

3-使用键盘组合Ctrl+X进行更改并退出nano

4-完成后运行apachectl restart