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

Mac系统执行Laravel的php artisan migrate报错Illegal Instruction:4求助

解决Mac上Laravel执行php artisan migrate报Illegal Instruction: 4的问题

Hey there! Sorry to hear you're stuck with this frustrating error while trying to run migrations in Laravel. I’ve seen this pop up on Macs (especially Apple Silicon models) and it usually ties back to PHP/dependency compatibility or environment quirks. Let’s walk through targeted fixes that should get you back on track:

1. 验证PHP与Laravel版本兼容性

首先,Laravel对PHP版本有严格要求,比如Laravel 10需要PHP 8.1+,Laravel 9要求PHP 8.0+。咱们先确认你的环境:

  • 执行以下命令查看PHP版本:
    php -v
    
  • 查看项目根目录下composer.json里laravel/framework的版本,确认两者匹配。

如果版本不兼容,用Homebrew切换到合适的PHP版本,比如安装PHP 8.2:

brew install php@8.2
brew link --overwrite php@8.2

2. 重新安装依赖包

损坏或与系统架构不匹配的依赖包是常见诱因,咱们彻底重置依赖:

  1. 清除Composer缓存:
    composer clear-cache
    
  2. 删除项目根目录的vendor文件夹和composer.lock文件:
    rm -rf vendor composer.lock
    
  3. 重新安装适配当前系统的依赖:
    composer install
    

3. 检查数据库兼容性

如果你用Homebrew安装了MySQL/MariaDB,确保它适配你的Mac芯片(Apple Silicon/Intel):

  • 先重启数据库服务排除临时故障:
    brew services restart mysql
    
  • 如果无效,彻底重装数据库:
    brew uninstall mysql
    brew install mysql
    

之后务必检查.env文件里的DB_HOST、DB_PORT、DB_DATABASE、DB_USERNAME、DB_PASSWORD是否配置正确。

4. 尝试用系统终端而非VS Code内置终端

VS Code的内置终端有时会继承异常的环境变量,导致PHP执行出错。打开Mac自带的Terminal或iTerm,进入项目目录后执行:

php artisan migrate

如果这个方法有效,说明问题出在VS Code终端配置:

  • 打开VS Code设置(Cmd + ,)
  • 搜索terminal.integrated.defaultProfile.osx
  • 切换为系统默认Shell(zsh或bash)
  • 重启VS Code后重试

5. 确保必要的PHP扩展已加载

Laravel运行迁移需要pdo_mysql、mbstring等扩展,检查它们是否已启用:

php -m

如果pdo_mysql不在列表中:

  1. 用php --ini找到PHP配置文件路径
  2. 打开php.ini,找到extension=pdo_mysql并去掉前面的分号;
  3. 重启PHP服务:brew services restart php@[你的PHP版本]

6. 清除Laravel缓存

过期的配置或缓存文件也可能引发奇怪错误,执行以下命令清空:

php artisan config:clear
php artisan cache:clear

之后再尝试运行迁移。

最后一招:测试全新Laravel项目

如果以上方法都无效,创建一个全新的Laravel项目来排查问题:

composer create-project laravel/laravel test-migrate
cd test-migrate
# 更新.env文件配置数据库信息
php artisan migrate

如果新项目能正常运行,对比两个项目的composer.json和.env文件,找出差异(比如过时依赖或配置错误)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 22:07:34