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

问题描述 投票:0回答:8

我在本地计算机上使用 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 linux ubuntu-12.04 php-extension
8个回答
200
投票

检查已安装的 php 模块和软件包

除了跑步

php -m

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

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

这很有帮助,因为 Ubuntu 通过 packages 提供 php modules

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

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

42
投票

要在脚本级别而不是 CLI 中检查此扩展是否启用,您可以创建一个 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>';
?>

就是这样。


9
投票

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

php -m


7
投票

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

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

PHP cli 不一定加载相同的扩展。


4
投票

欲了解

php extensions
等信息,请在现场。

  1. 创建一个新文件并将其命名为

    info.php
    (或其他
    name.php

  2. 在其中写入以下代码:

     <?php
       phpinfo ();
     ?>
    
  3. 将文件保存在网站的

    root
    (主页)

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

3
投票

中搜索扩展名

/etc/php5/apache2/php.ini


0
投票

查看模块是否启用/禁用与仅安装或未安装的另一种快速方法是使用 phpquery 命令。

例如,在我的 Linux Mint 机器上,如果我想查看是否启用了 xdebug,我会运行:

 phpquery -v 8.1 -s apache2 -m xdebug

-v - 指定您想要的版本

-s - 指定环境(apache2 或 cli)

-m - 您感兴趣的模块。

上述示例的响应是(就我而言):

xdebug (Enabled for apache2 by maintainer script)

这里还有一些例子。


0
投票

在 PHP 8.1 上测试:

检查已安装的扩展(在操作系统中):

php -m

检查扩展已加载(在 CLI 中):

# set EXT value with the desired extension name.
EXT=gmp php -r "echo getenv('EXT'),': ', extension_loaded( getenv('EXT') ) ? 'Loaded' : 'Not loaded', PHP_EOL;"

检查扩展已加载(在 PHP-FPM 中):

echo "<?php phpinfo(); ?>" > public/info.php

然后访问

you-running-php-fpm-host/info.php
;记得之后删除该文件!

© www.soinside.com 2019 - 2024. All rights reserved.