【问题标题】:How do I see the extensions loaded by PHP?如何查看 PHP 加载的扩展?
【发布时间】:2010-10-03 11:48:32
【问题描述】:

它必须在 phpinfo() 转储中的某个地方,但我只是不知道在哪里。它应该在“附加模块”部分下吗?别的地方?我试图弄清楚为什么某些扩展似乎没有加载,但我什至不知道我应该在哪里寻找。

【问题讨论】:

    标签: php php-extension


    【解决方案1】:

    跑步

    php -m
    将为您提供所有模块,而
    php -i
    将为您提供有关当前配置的更多详细信息。

    【讨论】:

      【解决方案2】:

      运行命令。您将获得已安装的扩展:

      php -r "print_r(get_loaded_extensions());"
      

      或运行此命令以获取所有模块的安装和卸载版本

      dpkg -l | grep php5
      

      【讨论】:

      • 或者如果你需要它看起来更漂亮(例如逗号分隔):php -r "print_r(implode(', ', get_loaded_extensions()));"
      【解决方案3】:

      你想跑:

       php -m 
      

      在命令行上,

      或者如果你可以访问服务器配置文件打开

      /etc/php5/apache2/php.ini
      

      看看所有的扩展,

      您甚至可以通过像这样在开启和关闭之间切换来启用或禁用它们

      <Extension_name> = <[On | Off]>
      

      【讨论】:

        【解决方案4】:

        使用get_loaded_extensions()PHP函数

        【讨论】:

        • 这适用于命令行php -r 'print_r(get_loaded_extensions());',它输出与php -m相同的列表
        • cmd 导出带有版本号的模块:php -r "phpinfo(INFO_MODULES);" | grep -B 3 -i version &gt; modules.txt
        【解决方案5】:
          <?php 
              echo "<pre>";
              print_r(get_loaded_extensions());
              echo "<pre/>";
         ?>
        

        【讨论】:

        • 来自 php -m 的列表比 get_loaded_extensions() 长得多,它没有列出 curl、mbstring 和许多其他?这是为什么?我安装了 curl、mbstring 但它们似乎没有从 php 脚本中显示出来?
        • 如何按字母顺序对 get_loaded_extensions() 进行排序?与其他工作的 php 安装进行比较,谢谢。
        • @Meryan 我相信您会看到所有可用扩展(php -m)与实际加载的扩展之间存在差异。 (get_loaded_extensions)。在您的情况下,我认为这意味着您尚未启用 curl 或 mbstring。
        【解决方案6】:

        如果您想测试是否加载了特定扩展,您还可以使用extension_loaded 函数,请参阅文档here

        php -r "var_dump(extension_loaded('json'));"
        

        【讨论】:

        • 我特别喜欢这个解决方案并使用它,因为它允许我的代码检查所需的扩展名并以有意义的消息结束。这意味着代码会告诉我是否有问题,我不必记住。我还添加了最低 PHP 版本检查 - 它只有几行代码。
        【解决方案7】:

        get_loaded_extensions() 输出扩展列表。

        phpinfo(INFO_MODULES); 输出扩展名及其详细信息。

        【讨论】:

          【解决方案8】:

          您是否正在寻找特定的扩展程序?在您的phpinfo(); 中,只需在您的网络浏览器中点击 Ctrl+F,输入您要查找的扩展名的前 3-4 个字母,它应该显示它是否已加载。

          通常在phpinfo() 中,它不会在一个位置向您显示所有加载的扩展,它为每个加载的扩展都有一个单独的部分,其中显示了所有变量、文件路径等,所以如果没有您的扩展名部分可能意味着它未加载。

          或者你可以打开你的 php.ini 文件并使用 Ctrl+F 方法来找到你的扩展,看看它是否被注释掉了(通常用分号行首附近)。

          【讨论】:

            【解决方案9】:

            你问你在 phpinfo() 输出中在哪里看到加载的扩展。

            答案:

            它们作为单独的部分/表格列在底部,并且在加载时列出。 这是一个加载扩展 Curl 的示例。

            ...

            ...

            我将它安装在 Linux Debian 上

            sudo apt-get install php7.4-curl
            

            【讨论】:

              猜你喜欢
              • 2017-08-04
              • 1970-01-01
              • 2011-03-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-07-28
              • 2020-02-23
              相关资源
              最近更新 更多