Laravel Homestead:Windows Git终端执行php artisan migrate报could not find driver
问题成因分析
这个情况的核心原因其实很好理解:
- 你在Windows的Git终端执行命令时,调用的是Windows本地安装的PHP环境,这个环境缺少Laravel数据库迁移必需的PDO驱动(比如
pdo_mysql,具体取决于你用的数据库类型)。 - 而通过
vagrant ssh进入虚拟机后,使用的是虚拟机内部独立配置的PHP环境——这个环境已经正确安装并启用了PDO驱动,所以php artisan migrate能正常运行。
具体解决步骤
按照以下步骤一步步排查修复:
检查本地PHP的PDO驱动状态
在Git终端执行命令,查看当前PHP已加载的扩展:php -m仔细看输出列表,确认是否有
pdo_mysql(如果你用的是MySQL/MariaDB)或者对应数据库的PDO驱动(比如pdo_pgsql对应PostgreSQL)。如果没有,说明驱动确实未启用或未安装。找到本地PHP的配置文件(php.ini)
在Git终端执行命令,定位当前PHP正在加载的配置文件路径:php --ini重点关注
Loaded Configuration File这一行,这就是你需要编辑的php.ini文件路径。启用PDO驱动
用文本编辑器打开找到的php.ini文件,进行如下操作:- 搜索关键词
pdo_mysql(对应你的数据库类型),找到类似这样的注释行:;extension=pdo_mysql - 去掉行首的分号
;,将其修改为:
(注意:如果你的PHP版本是7.4及以上,部分独立安装环境可能需要写成extension=pdo_mysqlextension=pdo_mysql.dll) - 如果找不到这行代码,直接在文件末尾添加上面的启用语句即可。
- 搜索关键词
验证修复效果
保存php.ini后,重启本地的Web服务(比如XAMPP/WAMP的Apache或Nginx),然后回到Git终端再次执行:php artisan migrate此时应该就能正常执行数据库迁移了。
额外注意事项
- 如果你的本地PHP是独立安装的(非集成环境),还要确保
ext目录下存在对应的驱动文件(比如php_pdo_mysql.dll),并且php.ini里的extension_dir配置指向了正确的ext目录路径。 - 确认本地PHP版本和Laravel项目要求的版本兼容,版本不兼容也可能导致驱动加载异常。
内容的提问来源于stack exchange,提问作者user7995285
相关产品推荐
相关产品推荐

