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


73

我在本地计算机上使用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扩展吗?提前致谢。


3
<?php phpinfo(); ?>将其弹出到php文件中并运行。
Fluffeh 2014年

您是否看过phpinfo()的输出?
马克·贝克

16
在终端中尝试此操作,php -m您将看到可用的模块。
拉希尔·瓦齐尔

@RahilWazir:我在终端和那里列出的一些模块中尝试了php -m。那是否意味着这些模块已在我的计算机上启用?
PHPLover

1
@PHPLover-已启用它们以通过CLI执行PHP,但不一定适用于Web SAPI,因为它们每个都可以具有不同的ini文件,并且启用/禁用了不同的模块
Mark Ba​​ker

Answers:


157

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

除了跑步

php -m

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

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

这很有用,因为Ubuntu通过软件包提供了php模块

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

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的答案。
Tuhin

28

要检查是否启用了此扩展,您可以创建一个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?
Hirdesh Vishwdewa

嗯..我认为您需要检查phpinfo()以获取信息。如果您在中找不到扩展名的详细信息phpinfo(),则表示未安装扩展名。我找不到其他方法。
Tahsin Abrar 2015年

7

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


3

搜索扩展名

/etc/php5/apache2/php.ini


2

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

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

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


2

有关php extensions现场等的信息。

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

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

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

  4. 在浏览器中打开文件。例如:将显示您网站上的example.com/info.php 所有php信息。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.