macOS Big Sur下Laravel执行php artisan migrate报pgsql驱动未找到
问题原因排查与解决步骤
核心常见原因
你大概率排查错了配置文件:phpinfo()展示的是Web服务(MAMP)调用的PHP配置,而php artisan命令走的是命令行(CLI)模式的PHP,二者默认调用的PHP版本、加载的php.ini文件通常是独立的。
下一步检查项
- 首先确认CLI实际调用的PHP版本与加载的配置文件:
执行以下两条命令:
对比输出的配置文件路径是否是你修改过的路径,如果不一致,说明你之前改的是Web端PHP的配置,对CLI无效。which php php -i | grep "Loaded Configuration File" - 确认CLI模式下是否真的加载了pgsql相关扩展:
执行命令:
正常应该输出php -m | grep pgsqlpdo_pgsql和pgsql两个结果,如果没有输出说明扩展未成功加载。
对应解决方案
方案1:想继续用MAMP的PHP跑CLI命令
把MAMP的PHP路径加到系统环境变量优先级最高的位置,编辑你的终端配置文件(~/.zshrc 或 ~/.bash_profile,根据你用的终端类型选择),加入以下内容:
export PATH="/Applications/MAMP/bin/php/php7.4.12/bin:$PATH"
保存后执行source ~/.zshrc(或对应配置文件)生效,重新打开终端后再执行php -v确认版本是MAMP的7.4.12即可。
方案2:用brew安装的PHP跑CLI命令
光在php.ini里加扩展启用行没用,brew版本的PHP默认不自带pgsql扩展,需要手动安装:
- 先确认本地已安装postgresql:
brew install postgresql - 用pecl安装pdo_pgsql扩展,若提示权限不足前面加
sudo即可:
pecl install pdo_pgsql
安装过程中如果提示输入postgresql的路径,填入你本地postgresql的安装路径即可(默认是/usr/local/Cellar/postgresql/对应版本号)。
最后验证
操作完成后重启终端,再次执行php artisan migrate即可正常运行。
内容的提问来源于stack exchange,提问作者code-8
相关产品推荐
相关产品推荐

