如何检查在 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 扩展?的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu12.04如何设置代理上网(需要域账户密码那种)?