You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Ubuntu主机可运行artisan migrate,Windows主机却提示PDO驱动缺失?

为什么Windows主机执行php artisan migrate会报「pdo not found driver」?

这个问题的核心其实很直白:你在主机上执行命令时,调用的是Windows本地的PHP环境,而非Docker容器内的PHP环境,这两个环境完全独立,问题就出在两者的配置差异上。

具体原因拆解:

  • Ubuntu主机本地PHP已配置好PDO驱动:在Ubuntu上安装PHP时,你大概率已经通过包管理器(比如apt)安装了对应数据库的PDO扩展(比如php-mysql,它包含pdo_mysql驱动),所以本地PHP能正常连接到容器里的数据库,执行迁移自然没异常。
  • Windows主机本地PHP缺少PDO驱动:Windows下的PHP默认通常不会自动启用PDO相关扩展,甚至可能没安装对应的驱动文件。比如要连接MySQL的话,你需要检查:
    1. php.ini文件里extension=pdo_mysql这一行有没有去掉前面的分号(即启用该扩展);
    2. PHP安装目录的ext文件夹里是否存在php_pdo_mysql.dll文件;
    3. 系统环境变量是否正确配置了PHP的路径,确保命令行能找到PHP执行文件。

你可以快速验证这点:在Windows命令行执行php -m,查看输出的模块列表里有没有pdo_mysql(或者你所用数据库对应的PDO驱动,比如pdo_pgsql)。如果没有,那就是驱动未启用/未安装的问题。

额外补充:容器内执行没问题是因为容器里的PHP环境是专门为Laravel配置的,已经预装了所有必需的扩展,和主机环境完全无关。

内容的提问来源于stack exchange,提问作者Pedrog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:36:35