【问题标题】:Error Deploying Laravel App to AWS Elastic Beanstalk将 Laravel 应用程序部署到 AWS Elastic Beanstalk 时出错
【发布时间】:2020-02-21 14:29:06
【问题描述】:

我正在 AWS Elastic Beanstalk 上部署一个相对简单的 Laravel 应用程序。

我在压缩之前经历了准备 Laravel 应用程序的正常流程:

php artisan config:clear
php artisan route:clear
php artisan cache:clear
php artisan view:clear

我还确保所有 .env 变量都设置为它们的生产值。

由于应用程序足够小,我倾向于将/vendor/node_modules 留在上传的压缩应用程序包中,这样我就不必通过SSH 进入实例来运行任何composer 或npm 命令。

我选择 ELB 应用程序和环境的明显选项:选择 PHP 配置,上传我的源包,并将根目录设置为 /public

上述步骤大约有 25% 的时间有效。 75% 的情况下,实例会进入错误或严重状态,我必须尝试创建一个新环境。

我不确定出了什么问题,甚至不确定在哪里可以找到问题的日志。 ELB日志区域的日志只是说“当应用程序未处于就绪状态时,您无法请求日志”等......

【问题讨论】:

  • 你能告诉我文件结构吗
  • @KumarPraveen 添加了!
  • 显示错误的语法它抛出了什么错误。可以分享一下网址吗
  • 这里有一个警告:Create environment operation is complete, but with command timeouts. Try increasing the timeout period. For more information, see troubleshooting documentation. --- 我确实将超时时间从 10 分钟增加到 30 分钟,然后它在 30 分钟后就失败了,而不是仅仅在 10 分钟之后。
  • 更改时间后是否重启了实例

标签: php laravel amazon-web-services deployment amazon-elastic-beanstalk


【解决方案1】:

原来问题出在/node-modules 目录和文件package.jsonpackage-lock.json。原因是在部署时,Elastic Beanstalk 试图执行 npm update 或类似命令。

这些文件只需要前端开发,不需要部署在服务器上。在开发中,使用 webpack 将它们编译成 app.js,然后我将其发布到 S3。所以这些前端开发文件都不需要放在生产服务器上。

为了更好地衡量,我还排除了composer.jsoncomposer.lock,因为我不需要在部署期间运行composer update

【讨论】:

    猜你喜欢
    • 2021-10-11
    • 2017-03-04
    • 2015-06-28
    • 2017-06-14
    • 2021-02-11
    • 2021-02-11
    • 2018-12-07
    • 2022-06-11
    • 2020-12-04
    相关资源
    最近更新 更多