本文记录了将 Laravel 8.x 项目 LaraBBS 部署至 Heroku 并使用 ClearDB 实现 MySQL 数据库连接的过程。文中详细说明了 Procfile 创建、应用构建包声明及代码推送等步骤,并重点解决了数据库索引长度超限、数据迁移冲突及 Composer 包安装失败等问题。最终通过修正代码配置及导入本地数据,成功验证了线上应用的部署。
在添加外键约束时遇到 SQLSTATE[23000] 报错,提示无法添加或更新子行。经分析,原因是 topics 表中存在用户 ID 为 9 的记录,但在关联的 users 表中已找不到对应的父记录。通过删除 topics 表中用户 ID 为 9 的脏数据再次执行命令,最终成功解决了报错,并顺利添加了外键约束 topics_user_id_foreign。
执行 php artisan larabbs:calculate-active-user 命令时报错 Class ‘Redis’ not found,经排查该命令使用缓存并依赖 Redis 驱动。编辑 .dev 文件,添加配置项 REDIS_CLIENT=predis 后,再次执行命令成功解决报错问题。
在基于 Composer 安装 laravel/horizon 时遇到版本依赖冲突,报错提示 PHP 版本或扩展不兼容。由于 pcntl 扩展在 Windows 下不可用,尝试使用 –ignore-platform-reqs 参数强制安装,最终成功并在浏览器访问控制台。但因缺少相关函数,无法使用 horizon 命令启动队列系统与任务监控。后续安装扩展若使用该参数可能引发不可预计的问题,建议谨慎操作。
针对 Laravel 报错 chmod(): Operation not permitted 及 Filesystem.php 路径提示,原因可能是切换 Git 分支未合并代码导致 /vendor 目录共用异常。通过重新执行 composer install 命令修复依赖后,该报错不再出现,问题得以解决。
执行 yarn run prod 命令时提示 Browserslist 依赖过时,按照指引运行 npx 更新数据库后,继续执行构建命令却报错找不到 autoprefixer 中的 caniuse-lite 模块。排查后删除 node_modules 目录,重新执行 yarn install 安装依赖并运行 yarn run dev,问题解决,不再报错。
执行 composer install 命令时出现 Script Google\Task\Composer::cleanup 报错,经排查是因为 Google API 客户端包含大量服务,默认清理脚本在特定环境中无法正常运行。文章介绍了通过编辑 composer.json 文件,删除 scripts 中 pre-autoload-dump 对应的 Google\Task\Composer::cleanup 配置项来解决该问题。修改后执行 composer update 不再报错,并提到此问题仅在容器环境中出现,本地 Windows 主机不存在异常。
在 Docker 容器中执行 composer install 命令时报错,提示未在 PATH 中找到 git。由于使用的是 alpine 基础镜像,解决方法是在 Dockerfile 中添加 apk add –no-cache git 指令以安装 git。重新构建容器后再次执行该命令,git 相关报错已解决,但出现了新的错误,提示无法运行 ssh。
执行 Docker 命令将 SQL 文件导入 MySQL 容器时出现安全警告,且数据库表显示为空。经排查,最终使用 docker cp 命令将本地 SQL 文件复制至容器内,随后进入容器登录 MySQL,通过执行 source 命令成功完成数据库导入操作。
👨💻 个人品牌
王世强|技术实践者 · 独立博客作者
15+ 年 Web 与系统实践经验,持续关注网站基础设施、系统优化、AI 工具与自动化。
持续运营技术博客 10+ 年,累计发布 1000+ 篇原创技术文章。
长期建设个人项目,也欢迎合适的技术交流、咨询与合作。
.env (14) 404 (14) add (16) AI 翻译 (36) Array (19) A Tour of Go (78) CentOS (23) ChatGPT (31) ChatGPT Plus (18) chrome (19) Cloudflare (40) Codex (28) composer (42) composer.json (22) composer update (14) console (16) Container (25) curl (16) delete (31) Docker (33) Dockerfile (15) EdgeOne (35) environment variable (19) error (24) file (15) filter (20) Git (28) GitHub (23) Gitlab (15) GLM-5.2 (27) Go (83) go-tour-i18n (16) Google AdSense (30) Go 文档 (16) Go 语言 (24) GraphQL (24) GraphQL API (14) Gutenberg (36) http (21) https (23) Interface (19) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (22) Module (17) MySQL (78) MySQL 5.7 (22) Nginx (63) normalize.css (28) OKX (15) OneinStack (23) PHP (68) php-fpm (21) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (59) postman (18) Query (17) queue (16) Rancher (24) Redis (53) RESTful (27) RESTful API (23) SEO (14) Shopify (19) SlyTranslate (22) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (43) update (20) VPN (17) W3 Total Cache (41) Windows 10 (46) WireGuard (29) WordPress (136) WPCode (23) Wstunnel (16) Yii (40) Yii 2 (70) Yii 2.0 (51) ZgoCloud (14) 国际化 (17) 多语言翻译 (50) 开源项目 (16) 技术博客 (15) 故障排查 (20) 数据库迁移 (16) 本地化 (22) 浏览器 (14) 阿里云 (20) 页面缓存 (14)