在Ubuntu 20.04上为PHP 8.2编译oci8、pdo_oci等自定义扩展,需先安装php8.2-dev,再用phpize初始化、./configure --with-php-config指定路径、make && make install编译安装,最后在php.ini中添加extension=扩展名并重启服务验证。

在 Ubuntu 20.04 上为已安装的 PHP 8.2 编译自定义扩展(如 oci8、pdo_oci 或其他未打包进 apt 的扩展),核心是使用源码 + phpize 工具链完成编译安装。关键前提是:你必须有对应版本 PHP 的开发支持文件(php-dev)和正确的 php-config 路径。
确认 PHP 8.2 开发环境已就位
先检查是否已安装 PHP 8.2 及其开发包:
- 运行 php -v 确认当前 CLI 版本为 8.2.x
- 运行 which php-config,正常应返回类似 /usr/bin/php-config8.2 或 /usr/bin/php-config(软链接指向 8.2)
- 若无 php-config 或提示 command not found,需安装开发包:
sudo apt install php8.2-dev
下载并进入扩展源码目录
PHP 官方扩展大多位于 PHP 源码的 ext/ 目录下。如果你已下载过 php-8.2.x.tar.gz,解压后进入对应子目录;若没有,可直接从 PHP 源码仓库获取:
- 例如编译 pdo_sqlite:
cd /path/to/php-8.2.12/ext/pdo_sqlite - 若用系统自带 PHP(非源码安装),也可从 GitHub 获取独立扩展源码(需注意兼容性)
用 phpize 初始化,再 configure 编译
这是最关键的两步,顺序不能错:
立即学习“PHP免费学习笔记(深入)”;
- 执行 phpize(确保它是 8.2 版本的,可用 phpize --version 验证)
- 执行 ./configure --with-php-config=/usr/bin/php-config8.2
⚠️ 必须显式指定 --with-php-config,否则可能误用旧版配置 - 运行 make -j$(nproc) 编译(利用全部 CPU 核心加速)
- 运行 sudo make install 安装生成的 .so 文件
启用扩展并验证
编译成功后,.so 文件会默认安装到 PHP 扩展目录(如 /usr/lib/php/20220829/):
- 查看该目录是否存在对应扩展文件,例如 oci8.so
- 编辑 PHP 配置文件:
sudo nano /etc/php/8.2/cli/php.ini(CLI)或
sudo nano /etc/php/8.2/fpm/php.ini(FPM) - 在文件末尾添加:
extension=oci8(不带 .so 后缀) - 重启服务:
sudo systemctl restart php8.2-fpm(Nginx 场景)或
sudo systemctl restart apache2(Apache 场景) - 验证:php -m | grep oci8 或 php -i | grep "oci8"



















