我在本地计算机上使用Ubuntu Linux 12.04 LTS。我很久以前在我的机器上安装了LAMP。现在我想启用以下PHP扩展:
- php_zip
- php_xml
- php_gd2
首先,我想检查这些PHP扩展是否已启用。我搜索了很多关于如何检查已安装/已启用的PHP扩展的内容,但每次我都找到了如何在Ubuntu Linux上安装这些扩展的方法。因此,有人可以告诉我应该如何检查Ubuntu Linux 12.04 LTS中已启用/未启用的PHP扩展吗?
我在本地计算机上使用Ubuntu Linux 12.04 LTS。我很久以前在我的机器上安装了LAMP。现在我想启用以下PHP扩展:
首先,我想检查这些PHP扩展是否已启用。我搜索了很多关于如何检查已安装/已启用的PHP扩展的内容,但每次我都找到了如何在Ubuntu Linux上安装这些扩展的方法。因此,有人可以告诉我应该如何检查Ubuntu Linux 12.04 LTS中已启用/未启用的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 -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
php -m
时,它们仍然会显示出来,但在您重新启动 Apache 之前不会启用。因此,例如在 Debian/Ubuntu 上,您应该运行以下命令:apt install -y php-gd php-curl && systemctl restart apache2.service
。 - Peter Kionga-Kamau要检查这些扩展是否启用,您可以创建一个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>';
?>
就是这样。
phpinfo()
以获取信息。如果在phpinfo()
中找不到扩展详细信息,则表示未安装该扩展。我没有找到其他解决方法。 - Tahsin Abrar您可以通过终端命令 php -m
查看可用的模块(已编译)。
<?php
$ext = get_loaded_extensions();
asort($ext);
foreach ($ext as $ref) {
echo $ref . "\n";
}
PHP 命令行界面(cli)并不一定加载相同的扩展。
关于 php extensions
等信息,请参考该网站。
Create a new file and name it info.php
(or some other name.php
)
Write this code in it:
<?php
phpinfo ();
?>
Save the file in the root
(home)of the site
example.com/info.php
All the php
information on your site will be displayed./etc/php5/apache2/php.ini中搜索扩展。
phpquery -v 8.1 -s apache2 -m xdebug
-v - 用于指定您想要的版本
-s - 用于指定环境(apache2或cli)
-m - 您感兴趣的模块。
上述示例的响应是(在我的情况下):
xdebug (Enabled for apache2 by maintainer script)
这里有更多的例子。
在 PHP 8.1 上测试通过:
php -m
# set EXT value with the desired extension name.
EXT=gmp php -r "echo getenv('EXT'),': ', extension_loaded( getenv('EXT') ) ? 'Loaded' : 'Not loaded', PHP_EOL;"
echo "<?php phpinfo(); ?>" > public/info.php
you-running-php-fpm-host/info.php
;记得之后删除该文件!
<?php phpinfo(); ?>
添加到一个 PHP 文件中并运行它。 - Fluffehphp -m
命令,您将看到可用的模块。 - Rahil Wazir