【问题标题】:Where is PHP.ini in Mac OS X Lion?Mac OS X Lion 中的 PHP.ini 在哪里?
【发布时间】:2012-03-09 17:34:38
【问题描述】:

我想在我的 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
  • @ralfe 应该补充一点,您需要从 phpinfo() 或 php --ini(在终端窗口中运行)中查找“加载的配置文件”设置。因为如果没有 php.ini 两者都会将配置文件路径报告为/etc(至少在我的 OS X 10.8 安装上)。如果没有加载配置文件,那么你应该尝试answer by mac
  • /usr/local/php5 是 entropy.ch 和 liip.ch install(ed) php 的 php 安装程序的位置。它从来不是苹果 php 安装的位置。
  • 这样做php -i | grep php.ini
  • 在终端输入 php -r "phpinfo();"

标签: macos php


【解决方案1】:

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

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

【讨论】:

  • 好的,/private/etc 中有一个 php.ini.default,我正在检查它。但知道为什么我的 usr/local 中没有旧的 php5 文件夹吗?那里曾经有一堆文件,包括推荐的 php.ini。这是更新版本或 PHP5 或 Lion 或其他东西的变化吗?
  • PHP5 自 10.5 起默认包含在 MacOS X 中,php.ini 文件位于上述位置。如果您手动安装了它,则不应在升级到 Lion 期间将其删除;奇怪...
  • 当没有 php.ini 时,我的 Lion 机器上的 php.ini.default 文件与所有默认设置都不匹配。值得注意的是 short_tags 关闭、error_reporting、log_errors 和一些次要设置不同。您需要在创建 php.ini 之前和之后比较 php -i 的输出。
  • 在我的 Mac 上,我在 /private/etc/php.ini 有一个文件,但 php 似乎忽略了我在那里所做的任何更改,发现它正在使用 /usr/local/php5 中的那个/lib/php.ini 代替
  • 这个答案为我指明了正确的方向。 cp php.ini.default > php.ini 和 CLI 加载的配置变为 /etc/php.ini。检查 php -i | grep php.ini 之后
【解决方案2】:

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

php --ini

如果您需要 Lion 模板,请尝试 this

【讨论】:

  • 我现在没有加载 php.ini。基本上我正在寻找带有“推荐” php.ini 模板的目录。
【解决方案3】:

正如所指出的,php --ini 命令会告诉您 PHP 期望在哪里找到 php.ini 文件。

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

如果您使用过 macports,那么 PHP 可能正在寻找 /opt/local/etc/php5/php.ini

【讨论】:

  • etc 是指向 private/etc 的链接:/etc -> private/etc
【解决方案4】:

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

【讨论】:

    【解决方案5】:

    我不止一次运行 PHP 实例,因此其他答案对我不起作用。这样做了:

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

    <?php phpinfo(); ?>
    

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

    【讨论】:

      【解决方案6】:

      我从“Hello World!”开始,一旦我在浏览器中看到它,我就会在其中输入一个phpinfo();,你就可以看到所有的东西。告诉你加载了哪些配置,一切。

      <?php
         echo 'Hello World!';
      
         phpinfo();
      

      【讨论】:

        【解决方案7】:

        您运行 php_info() 并查看下面的行 :)

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

        【讨论】:

          【解决方案8】:

          这是一个相当老的话题,但我想进一步澄清一下。

          如果您的系统安装了多个 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 文件:

          find / -name php.ini 2>&1 | grep -v "拒绝" | grep -v "目录"

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

          在我的系统上,我找到了 3 个 INI 文件。因为我对 Web 服务器正在使用什么感兴趣,所以我知道我应该使用从网页结果返回的路径。我对那里列出的 php.ini 文件进行了更改,重新启动了 apache,然后重新运行了网页;在那里显示了新的编辑。

          重启apache:

          sudo apachectl -k 重启

          --J

          【讨论】:

            【解决方案9】:

            @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
            

            【讨论】:

            • 天哪,你是我的英雄!!感谢您使用 mcrypt 的完整路径的想法!
            【解决方案10】:

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

            【讨论】:

            • 这是最好的方法,因为您可能会在其他“默认”文件夹中找到 php.ini 的副本,但这种方式会告诉您它实际使用的文件夹,这样您就可以避免当您进行更改时会感到头疼和沮丧,但 php 似乎完全不知道所说的更改。
            • 您也可以通过运行php -a 在shell 中打开php REPL,然后运行phpinfo();
            【解决方案11】:

            这是在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

            如果操作正确,现在应该反映您所做的更改:)

            【讨论】:

              【解决方案12】:

              在 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 或使用完整路径将其放置在您想要的位置来取消注释。

              祝你好运

              【讨论】:

                【解决方案13】:

                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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-10-09
                  • 2013-12-08
                  • 2012-12-04
                  • 2013-06-17
                  • 1970-01-01
                  • 2011-10-11
                  相关资源
                  最近更新 更多