我想在我的 Mac 上运行一些 PHP,取消注释 httpd.conf,激活网络共享,安装 MySQL 等。我似乎找不到我的 PHP 文件,最重要的是 PHP.ini。
在我的旧机器上,它位于 /usr/local/php5/lib 但是 /usr/local 中不存在 php5 目录。
我需要取包裹还是找错地方了?
运行 OS X 10.7.3、PHP 5.3.8、Apache/2.2.21
locate php.ini
php --ini
(在终端窗口中运行)中查找“加载的配置文件”设置。因为如果没有 php.ini 两者都会将配置文件路径报告为 /etc
(至少在我的 OS X 10.8 安装上)。如果没有加载配置文件,那么您应该尝试 answer by mac
php -i | grep php.ini
要在您的机器上找到 ini 文件,请打开 Terminal.app
并运行以下命令:
php --ini
如果您需要 Lion 模板,请尝试 this。
如果它存在,您应该在 /private/etc 中找到它,否则:
sudo cp /private/etc/php.ini.default /private/etc/php.ini
php -i
的输出。
在终端执行 php -i | grep php.ini
。应该给你一些线索;)
@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
正如所指出的,php --ini
命令将告诉您 PHP 期望在哪里找到 php.ini 文件。
对于标准安装,它可能正在寻找 /etc/php.ini
如果您使用过 macports,那么 PHP 可能正在寻找 /opt/local/etc/php5/php.ini
从任何文件运行 phpinfo()
,它会告诉您它在哪里。这是一个屏幕截图。
https://i.stack.imgur.com/S9wWn.jpg
php -a
在您的 shell 中打开 php REPL,然后在其中运行 phpinfo();
。
我不止一次运行 PHP 实例,因此其他答案对我不起作用。这做到了:
创建一个 PHP 文件并在浏览器中打开其本地 url:
<?php phpinfo(); ?>
PHP.INI 路径将列在靠近顶部的位置。
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
这是相当老的线程,但我想进一步澄清。
如果您有一个安装了多个 PHP 的系统(就像我的那样),您使用命令行工具获得的结果可能与 Web 服务器实际使用的结果不同。如果您对 Web 服务器正在使用什么 PHP 感兴趣,请仅使用从使用 'phpinfo()' 函数的网页收集的信息。
例如,在我的系统上,两种不同方法报告的版本是:
命令行:5.3.26 网站:5.3.13
对于 php.ini 文件路径,情况也有所不同:
命令行:/private/etc/php.ini 网站:/long/path/to/the/file/php.ini
您可以使用以下命令找到所有可能的 php.ini 文件:
查找 / -name php.ini 2>&1 | grep -v "拒绝" | grep -v "目录"
('2>&1' 和 'grep' 元素只是将命令的输出限制为有用的信息,即去掉错误消息)
在我的系统上,我找到了 3 个 INI 文件。因为我对 Web 服务器正在使用什么感兴趣,所以我知道我应该使用从网页结果返回的路径。我对那里列出的 php.ini 文件进行了更改,重新启动了 apache,然后重新运行了网页;那里显示了新的编辑。
重新启动 apache:
sudo apachectl -k 重启
-- Ĵ
在 OSX/MacOS 上,在终端窗口中执行以下操作:
在提示符处输入 php --ini
并按回车键
报告类似:配置文件 (php.ini) 路径:/etc 加载的配置文件:(无)扫描其他 .ini 文件:/Library/Server/Web/Config/php 解析的其他 .ini 文件:(无)
...这是因为在 /etc 中有一个名为 /etc/php.ini.default 的文件作为示例,并表明它没有被使用。您需要将该文件复制到 php 期望的名称,以便您可以编辑它,如下所示:
类型:
$ sudo cp /etc/php.ini.default /etc/php.ini (and enter your password)
...然后您将看到如果您再次运行 php --ini
,它现在可以看到您的新文件:
在提示符处输入: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)
...现在编辑 /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
如果您想记录到系统日志(或 Windows 上的 Windows 事件日志),则 ;error_log = syslog
应变为 error_log = syslog
但是,如果如您所说,您想登录到文件,请通过删除前导分号以使 ;error_log = php_errors.log
变为 error_log = php_errors.log
或使用完整路径将其放置在您想要的位置来取消注释。
祝你好运
我从“Hello World!”开始,一旦我在浏览器中显示它,我就会在其中输入一个 phpinfo();
,您就可以看到所有内容。告诉你加载了哪些配置,一切。
<?php
echo 'Hello World!';
phpinfo();
您运行 php_info() 并查看下面的行:)
Loaded Configuration File /Applications/XAMPP/xamppfiles/etc/php.ini
这是在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
如果正确完成,您现在应该反映您的更改:)