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

GitLab CI/CD配合Deployer部署Laravel到cPanel流水线失败求助

GitLab CI部署Laravel到cPanel失败排查及解决方案
  • 主机名配置不匹配
    你的deploy.php中配置的主机名为mywebsite.com,但gitlab-ci.yml的deploy阶段执行的命令为php artisan deploy my-website.com,两者名称不一致导致Deployer无法找到对应主机配置,直接触发报错。
    修复方案:统一两处的主机名,比如将deploy命令修改为php artisan deploy mywebsite.com -s upload,或者修改deploy.php中的hosts键为my-website.com。
  • SSH访问权限异常
    1. 检查GitLab项目CI/CD变量中是否正确配置了SSH_PRIVATE_KEY,注意私钥要完整包含开头和结尾的标记行,且不要额外添加多余空格或换行。
    2. 确认你本地生成的SSH公钥已经添加到cPanel服务器deployer用户的~/.ssh/authorized_keys文件中。
    3. 检查deployer用户对部署目录/home/sfd/public_html/nas是否有读写执行权限,可提前在服务器上执行chown -R deployer:deployer /home/sfd/public_html/nas赋权。
  • PHP-FPM重启权限不足
    cPanel环境下普通用户默认没有权限执行php-fpm服务重启操作,deploy.php中done和rollback钩子下的fpm:reload命令会触发权限报错。
    修复方案:
    1. 不需要重载FPM的话直接删除两处fpm:reload配置,cPanel环境下修改代码后会自动重载PHP解析;
    2. 如需保留该功能,可在服务器上给deployer用户配置sudo免密执行php-fpm重启命令的权限,同时修改deploy.php中fpm重启命令为sudo前缀的对应命令。
  • 前端资源构建任务未生效
    你的gitlab-ci.yml中定义的.build-production-assets是隐藏模板任务,没有实际被调用执行,导致部署到服务器的代码缺少编译后的前端静态资源。
    修复方案:新增实际的build任务,参考配置如下:
    build-production:
      extends: .build-production-assets
      stage: building
      only:
        - dev
    
  • 服务依赖缺失导致命令报错
    1. 若你项目没有使用Horizon队列服务,删除deploy.php中ready钩子下的artisan:horizon:terminate配置,避免命令执行失败。
    2. 提前在服务器部署目录的shared文件夹下配置正确的.env文件,确保数据库、服务等配置正确,避免artisan:migrate等命令执行失败。
  • Deployer依赖未安装
    检查项目composer.json中是否已经安装Deployer对应的Laravel扩展包,若未安装可在本地执行composer require deployer/deployer deployer/laravel --dev后重新提交代码。

内容的提问来源于stack exchange,提问作者Faisal Faiz Michankhel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:15:03