在Ubuntu系统中管理PHP扩展,说起来并不复杂,但很多新手初次操作时,仍会在几个关键步骤上卡壳。今天,我将系统梳理三种最常用的方式——APT包管理器、PECL以及手动编译安装,并逐一指出容易踩坑的地方,帮助你高效完成PHP扩展的安装、更新与卸载。

正式开始之前,有一个前置准备工作必须完成。无论你是要安装还是删除扩展,第一步都是确保系统包列表处于最新状态,并安装好必要的工具。以下两条命令是基础中的基础,务必先执行:
sudo apt update
sudo apt install php-pear php-dev
这里需要额外说明:php-pear 是PECL的依赖包,php-dev 则提供了编译扩展所需的头文件。缺少这两个组件,后续许多操作都将无法正常进行。
一、准备工作
在开始管理扩展之前,请确保上述两条命令已成功执行。后续所有操作都建立在这个基础之上。
二、使用APT包管理器管理扩展(推荐)
APT是Ubuntu的原生包管理工具,使用体验最为流畅,能自动处理依赖关系,基本不会出现“装了A发现缺B”的尴尬情况。对于绝大多数常用扩展,APT是首选方案。
1. 安装扩展
sudo apt install php-
例如,要安装MySQL扩展,让PHP能够与数据库交互:
sudo apt install php-mysql
如果需要一次性安装多个扩展,只需将它们列在同一行即可,省时省力:
sudo apt install php-mysql php-curl php-gd php-mbstring
2. 更新扩展
sudo apt update
sudo apt upgrade php-
举个例子,升级GD图像处理库:
sudo apt upgrade php-gd
3. 删除扩展
sudo apt remove php-
例如,如果不再需要MBSTRING多字节字符串处理功能:
sudo apt remove php-mbstring
4. 验证扩展是否安装成功
php -m | grep
执行命令后,如果看到mysql字样,说明扩展已成功加载。
三、使用PECL管理扩展(适用于官方扩展库)
有些扩展在APT中找不到,比如Redis、Imagick。这时PECL就派上了用场。PECL是PHP官方的扩展社区库,安装方式略有不同——安装完成后还需要手动启用。
1. 安装PECL扩展
sudo pecl install
安装Redis扩展:
sudo pecl install redis
2. 启用扩展
安装只是第一步,还需要告诉PHP去加载它。首先找到php.ini的位置:
php --ini
然后编辑对应的配置文件(注意区分CLI和FPM的路径):
sudo nano /etc/php///php.ini
在文件末尾添加一行,注意不需要加.so后缀:
extension=redis
3. 重启Web服务器
# Apache
sudo systemctl restart apache2
# Nginx + PHP-FPM
sudo systemctl restart php-fpm
sudo systemctl restart nginx
4. 验证扩展
php -m | grep redis
四、手动编译安装扩展(适用于无预编译包的扩展)
这是最后的手段——当APT和PECL都无法找到你需要的扩展时,只能从源码编译。这条路虽然稍显陡峭,但一旦掌握,再遇到冷门扩展也能从容应对。
1. 下载扩展源码
wget https://github.com///archive/master.zip
unzip master.zip
cd -master
2. 安装依赖并编译
sudo apt install build-essential php-dev
phpize
./configure
make
sudo make install
编译完成后,生成的.so文件通常位于/usr/lib/php/目录下。
3. 启用扩展
与PECL类似,在php.ini中添加extension=,然后重启Web服务器。
五、常用辅助命令
1. 查看已安装的扩展
php -m
ls /etc/php///conf.d/
2. 启用/禁用扩展(Ubuntu专用)
Ubuntu贴心地提供了phpenmod和phpdismod两个命令,不过它们仅对通过APT安装的扩展生效。手动安装的扩展仍需修改php.ini。
# 启用扩展(如mbstring)
sudo phpenmod mbstring
# 禁用扩展
sudo phpdismod mbstring
# 指定PHP版本(如7.4)
sudo phpenmod -v 7.4 mbstring
sudo phpdismod -v 7.4 mbstring
六、注意事项
- 扩展兼容性:PHP 8.1的扩展不能用于7.4,反之亦然。安装前务必确认版本对应关系。
- 依赖问题:某些扩展背后还有系统级依赖,例如
libpng-dev、libjpeg-dev。安装前建议先用apt将它们补齐。 - 重启服务:修改配置或安装扩展后,必须重启Web服务器或PHP-FPM,否则更改不会生效。这也是新手最容易忽略的一步。
- 配置文件位置:CLI和FPM使用的
php.ini路径不同,可通过php --ini查看当前使用的是哪个。
掌握了这些方法,Ubuntu上的PHP扩展管理就能游刃有余了。无论是常见的MySQL、GD,还是偏门的第三方库,都能找到对应的解决路径。
