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

Laravel 9.46.0在GitHub Action执行php artisan key:generate报错求助

Laravel 9 GitHub Action中php artisan key:generate失败修复方案

问题背景

在GitHub Action CI流程中运行Laravel 9.46.0项目时,「Generate key」步骤执行php artisan key:generate报错,本地按相同步骤操作无问题,且同一CI配置在Laravel 8项目中可正常运行,疑似Composer自动加载初始化不完整导致。

核心原因

当前CI的composer install命令使用了--no-scripts参数,跳过了post-autoload-dump等关键脚本——Laravel 9依赖该脚本执行package:discover完成服务提供者注册,缺失这一步会导致Artisan命令无法加载必要依赖。


修复方案

方案1:移除--no-scripts参数(优先尝试)

修改CI的「Install Dependencies」步骤,去掉--no-scripts,让Composer自动执行初始化脚本:

- name: Install Dependencies
  run: composer install -q --no-ansi --no-interaction --no-progress --prefer-dist

方案2:保留--no-scripts,手动执行初始化脚本

如果必须保留--no-scripts(比如避免自定义脚本干扰CI),则在Generate Key前手动补全初始化步骤:

- name: Install Dependencies
  run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Initialize Laravel Autoload & Service Discovery
  run: |
    composer dump-autoload
    php artisan package:discover --ansi
- name: Generate key
  run: php artisan key:generate

方案3:提前设置目录权限

Laravel 9对storage和bootstrap/cache目录权限要求更严格,将权限设置步骤移到Generate Key之前:

- name: Directory Permissions
  run: chmod -R 777 storage bootstrap/cache
- name: Generate key
  run: php artisan key:generate

方案4:补全PHP必要扩展

Laravel 9依赖部分PHP扩展,确保GitHub Action的PHP环境已安装:

- uses: shivammathur/setup-php@15c43e89cdef867065b0213be354c2841860869e
  with:
    php-version: '8.0'
    extensions: bcmath, json, mbstring, zip, pcntl, pdo_sqlite

验证建议

优先尝试方案1,这是解决自动加载问题的最直接方式——Laravel 8对服务发现的容错性更高,所以旧配置能正常运行,而Laravel 9必须依赖完整的Composer脚本初始化流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:15:52