【问题标题】:How to check which PHP extensions have been enabled/disabled in Ubuntu Linux 12.04 LTS?如何检查在 Ubuntu Linux 12.04 LTS 中启用/禁用了哪些 PHP 扩展?
【发布时间】:2014-08-12 15:03:54
【问题描述】:

我在本地机器上使用 Ubuntu Linux 12.04 LTS。我很久以前就在我的机器上安装了 LAMP。现在我想启用以下 PHP 扩展:

  1. php_zip
  2. php_xml
  3. php_gd2

首先,我想检查这些 PHP 扩展是否已启用。我搜索了很多关于如何检查已安装/启用的 PHP 扩展的信息,但每次我发现如何在 Ubuntu Linux 上安装这些扩展。那么有人可以让我知道如何检查 Ubuntu Linux 12.04 LTS 中启用/禁用的 PHP 扩展吗?提前致谢。

【问题讨论】:

  • <?php phpinfo(); ?> 将其弹出到一个 php 文件中并运行它。
  • 你看过 phpinfo() 的输出了吗?
  • 在终端php -m试试这个你会看到可用的模块。
  • @RahilWazir:我在终端中尝试了 php -m 并在那里列出了一些模块。那么这是否意味着我的机器上启用了这些模块?
  • @PHPLover - 它们可以通过 CLI 执行 PHP,但不一定适用于 Web SAPI,因为它们每个都可以有不同的 ini 文件,启用/禁用不同的模块

标签: php linux ubuntu-12.04 php-extension


【解决方案1】:

检查已安装的 php 模块和包

除了跑步

php -m

要获取已安装 php 模块的列表,您可能会发现在 Ubuntu 中获取当前安装的 php packages 列表很有帮助:

sudo dpkg --get-selections | grep -v deinstall | grep php

这很有帮助,因为 Ubuntu 通过 packages 使 php modules 可用。

然后您可以通过从可用的 Ubuntu php packages 中进行选择来安装所需的模块,您可以通过运行来查看:

sudo apt-cache search php | grep "^php5-"

或者,对于 Ubuntu 16.04 及更高版本:

sudo apt-cache search php | grep "^php7"

正如您所提到的,有很多关于实际安装您可能需要的软件包的信息,所以我不会在这里详细介绍。

相关:启用/禁用已安装的 php 模块

已安装的模块可能已被禁用。在这种情况下,它不会在运行php -m 时显示,但会显示在已安装的 Ubuntu 软件包列表中。

可以通过php5enmod 工具(以后发行版中的phpenmod)启用/禁用模块,该工具是php-common 软件包的一部分。

Ubuntu 12.04:

已启用的模块在 /etc/php5/conf.d 中符号链接

Ubuntu 12.04:(使用 PHP 5.4+)

启用已安装的模块:

php5enmod <modulename>

禁用已安装的模块:

php5dismod <modulename>

Ubuntu 16.04 (php7) 及更高版本:

启用已安装的模块:

phpenmod <modulename>

禁用已安装的模块:

phpdismod <modulename>

重新加载 Apache

记得在启用/禁用后重新加载 Apache2:

service apache2 reload

【讨论】:

  • 如果您想检查是否从脚本中启用了扩展,也请检查@tahsin-abrar 的答案。
【解决方案2】:

要检查是否启用了此扩展,您可以创建一个 php 文件,即info.php,并在其中编写以下代码:

<?php 
echo "GD: ", extension_loaded('gd') ? 'OK' : 'MISSING', '<br>';
echo "XML: ", extension_loaded('xml') ? 'OK' : 'MISSING', '<br>';
echo "zip: ", extension_loaded('zip') ? 'OK' : 'MISSING', '<br>';
?>

就是这样。

【讨论】:

  • 所以这给出了扩展是否启用..如何找到它是否安装或不使用 php??
  • 嗯.. 我认为您需要查看phpinfo() 以获取信息。如果您在phpinfo() 中没有找到扩展详细信息,则表示未安装。我没有找到其他方法。
【解决方案3】:

您可以通过终端通过php -m查看哪些模块(已编译)可用

【讨论】:

    【解决方案4】:

    也许查看(编译和)加载了哪些扩展(不在 cli 中)的最简单方法是让服务器运行以下命令:

    <?php
    $ext = get_loaded_extensions();
    asort($ext);
    foreach ($ext as $ref) {
        echo $ref . "\n";
    }
    

    PHP cli 不必加载相同的扩展。

    【讨论】:

    • +1 表示有人可能希望以编程方式检查启用的扩展程序列表。
    【解决方案5】:

    中的搜索扩展

    /etc/php5/apache2/php.ini

    【讨论】:

      【解决方案6】:

      有关php extensions等的信息,请到现场。

      1. 创建一个新文件并将其命名为info.php(或其他一些name.php

      2. 在里面写下这段代码:

         <?php
           phpinfo ();
         ?>
        
      3. 将文件保存在站点的root(主页)中

      4. 在浏览器中打开文件。例如:example.com/info.php 将显示您网站上的所有php 信息。

      【讨论】:

        猜你喜欢
        • 2015-04-03
        • 2014-04-21
        • 2016-08-25
        • 2014-01-07
        • 2018-04-02
        • 2018-10-28
        • 2011-02-16
        • 2016-07-07
        • 2014-01-14
        相关资源
        最近更新 更多