商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > phpEnv中如何开启PDO_MySQL扩展?phpEnv PHP扩展管理教程

phpEnv中如何开启PDO_MySQL扩展?phpEnv PHP扩展管理教程

  发布于2026-07-06 阅读(0)

扫一扫,手机访问

先说个关键信息:PDO 扩展在 phpEnv 中默认确实是关着的。不过别紧张,不用重装 PHP,也不用折腾手动编译——只需要确认两个 extension 行已经取消了注释,并且确保 CLI 和 Web 用的是同一份 php.ini 就行。这事儿其实就三步,我们一步步拆开说。

找到 phpEnv 正在用的 php.ini

phpEnv 管理着多个 PHP 版本,每个版本都有自己独立的配置,所以第一步就是找到对的那一个。直接在命令行运行 php --ini,或者在 Web 根目录下建一个 info.php,写上 ,然后浏览器访问一下。两个方法都能看到 “Loaded Configuration File” 这一行,这就是 php.ini 的路径。常见的位置像 C:\phpenv\versions\8.2.12\php.ini(Windows),或者 /usr/local/phpenv/versions/8.2.12/etc/php.ini(macOS/Linux)。关键是——别改错文件,不然折腾半天都是白费力气。

必须启用的两行 extension

找到正确的 php.ini 之后,打开它,搜索下面这两行,把前面的分号 ; 去掉就行:

  • extension=pdo(PHP 8.0+ NTS Windows)或者 extension=pdo.so(Linux/macOS)
  • extension=pdo_mysql(Windows 下可能是 extension=pdo_mysql.dll,注意文件名有时候会带版本号,比如 pdo_mysql_82.dll;稳妥起见,去 ext/ 目录下看看真实存在的是哪个文件)

这两行的顺序无所谓,但它们必须同时存在,缺一不可。只开了 pdo,会报 Class 'PDO' not found;只开了 pdo_mysql,又会提示 could not find driver。两个都打开,才算齐活。

phpEnv中如何开启PDO_MySQL扩展?phpEnv PHP扩展管理教程

重启后还是不生效?检查 CLI 和 Web 是否一致

最常见的问题来了——你以为改了配置,但实际上 phpEnv 的 CLI(命令行)和 Web(Apache/Nginx)可能各自为政,加载了不同的配置。怎么验证?跑一下 php -m | grep pdo,应该同时输出 pdopdo_mysql。再打开浏览器访问刚才那个 info.php,搜索 “PDO drivers”,必须看到 mysql 在列表里。

如果 CLI 有、Web 没有,说明 Web 服务器没用到你改的那份 php.ini。检查一下 phpEnv 的版本切换是否生效(比如 phpenv global 8.2.12),或者 Apache 的 LoadModule php_module 指向的是不是正确的 PHP 版本。如果两边都显示已加载,但 new PDO() 还是报错,那问题可能不在扩展上——检查一下 DSN 有没有加 charset=utf8mb4,以及 PDO::ATTR_EMULATE_PREPARES => false 是否已设置。这些是连接时的硬性要求,跟扩展本身无关。

还有一个最容易忽略的细节:phpEnv 切换 PHP 版本之后,一定要记得重启 Web 服务(比如 httpd -k restart 或者 nginx -s reload),而且必须保证 CLI 和 Web 用的是同一份 php.ini。否则你验证再多遍,对不上就是白搭。

本文转载于:https://www.php.cn/faq/2441349.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注