PHP7 安装 mysqli 扩展完整教程

Finn
Finn
发布时间:2026-10-16| 5人浏览过
原创

在新配服务器时发现,PHP 无法连接到 MySQL。通过 phpinfo 发现没有显示 mysqli 的相关配置。这通常是因为安装 PHP 时未正确配置 mysqli 参数或未加载对应扩展。本文将提供两种解决方案:直接编译安装和单独编译扩展,帮助用户快速恢复数据库连接能力。

排查与解决思路

当 phpinfo() 页面中缺失 mysqli 信息时,主要原因在于 PHP 编译阶段未包含 mysqlnd (MySQL Native Driver) 或 libmysqlclient 的支持。在 Linux 环境下(如 CentOS),可以通过源码编译的方式重新配置 PHP,使其支持 mysqli。

核心操作方案

以下操作基于 CentOS 系统及 PHP 7.1.5 版本,环境为 Dell G3。其他版本原理类似,请根据实际版本调整路径。

第一步:重新编译 PHP 内核并启用 mysqli

目的:在编译安装 PHP 的初始阶段,通过 configure 命令指定 mysqli 的路径,使 PHP 核心自带该扩展。

  1. 下载源码:从官方镜像获取对应版本的 PHP 源码包。
    wget http://cn2.php.net/distributions/php-7.1.5.tar.gz
  2. 解压并进入目录:
    tar zxvf php-7.1.5.tar.gz
    cd php-7.1.5
  3. 执行 configure 配置:这是最关键的一步,必须添加 --with-mysqli 参数指向系统的 mysql_config 路径。
    注意:如果系统中有多个 MySQL 版本,请使用 find / -name mysql_config 查找正确路径。
    ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/bin/mysql_config
  4. 编译与安装:
    make && make install
  5. 复制配置文件与 FPM 启动脚本:
    cp php.ini-development /usr/local/lib/php.ini
    cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm
    chmod +x /etc/init.d/php7-fpm
  6. 初始化 FPM 配置:
    cd /usr/local/php/etc
    cp php-fpm.conf.default php-fpm.conf
    cp php-fpm.d/www.conf.default php-fpm.d/www.conf
  7. 启动服务:
    /etc/init.d/php7-fpm start

完成上述步骤后,刷新 phpinfo 页面,若能看到 "mysqli" 模块信息,说明第一步已成功。

第二步:单独编译 mysqli 扩展(备选方案)

目的:如果不想重装整个 PHP,或者第一步未能解决问题,可以直接在已安装的 PHP 源码目录下单独编译 mysqli 扩展模块。

  1. 进入扩展目录:
    cd /usr/local/php-7.1.5/ext/mysqli
    此处需注意:路径应为实际安装 PHP 的源码目录,而非当前工作目录。
  2. 运行 phpize 生成配置脚本:确保系统中已安装 php-devel 或对应开发包,以便运行 phpize。
    /usr/local/php/bin/phpize
  3. 执行配置:再次指定 mysqli 路径和 php-config 路径。
    ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/bin/mysql_config
  4. 编译与安装:
    make && make install

编译成功后,会提示生成的 .so 文件路径(例如 /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/),请记录该路径。

第三步:修改 php.ini 激活扩展

目的:告知 PHP 解释器加载刚刚生成的 mysqli 动态链接库。

  1. 定位 php.ini:通过 phpinfo 页面中的 "Loaded Configuration File" 找到配置文件的具体路径(通常在 /usr/local/lib/php.ini 或 /etc/php.ini)。
  2. 编辑配置文件:使用文本编辑器打开 php.ini。
  3. 启用扩展:
    • 如果是内核级安装(第一步),确认是否有 extension=mysqli.so 行且未被注释。
    • 如果是独立扩展安装(第二步),在文件末尾添加或取消注释:
      extension=你的.so文件绝对路径/mysqli.so
  4. 重启 PHP-FPM:
    /etc/init.d/php7-fpm restart

至此,再次查看 phpinfo,应能完整看到 mysqli 相关的配置项,服务器已具备连接 MySQL 数据库的能力。

常见问题排错

  • 找不到 mysql_config:如果运行 configure 时报错找不到 mysql_config,请先安装 MySQL 客户端开发包。在 CentOS 上可执行 yum install mysql-devel(或 mariadb-devel)。
  • 编译报错 dependency:如果遇到缺少 libxml2、openssl 等依赖的错误,需先使用 yum 安装相应的 devel 包(如 libxml2-devel)。
  • 权限不足:在进行 make install 或服务管理操作时,可能需要使用 root 权限或在命令前加 sudo。
以上就是 PHP7 安装并启用 mysqli 扩展的详细内容,更多关于 PHP 环境配置与数据库连接优化的资料请关注本站其它相关文章!
相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。