如何检查在 Ubuntu Linux 12.04 LTS 中启用/禁用了哪些 PHP 扩展?

Posted

技术标签:

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

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

    php_zip php_xml 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 文件,启用/禁用不同的模块 【参考方案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等的信息,请到现场。

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

    在里面写下这段代码:

     <?php
       phpinfo ();
     ?>
    

    将文件保存在站点的root(主页)中

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

【讨论】:

以上是关于如何检查在 Ubuntu Linux 12.04 LTS 中启用/禁用了哪些 PHP 扩展?的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu 12.04 中怎么安装 jdk 7

ubuntu12.04如何设置代理上网(需要域账户密码那种)?

Linux - Ubuntu中文输入法安装(Ubuntu 12.04)

如何在ubuntu16.04创建12.04 gcc编译环境

ubuntu 12.04 中怎么安装 jdk 7

ubuntu12.04下创建了一个守护进程,生成了一个可执行文件,如何让这个可执行文件开机自动运行?