将Laravel App部署到AWS Elastic Beanstalk时出错

时间:2019-10-25 08:42:22

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

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

在压缩之前,我会先准备Laravel应用程序的正常过程:

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

我还要确保将所有.env变量都设置为其生产值。

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

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

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

我不确定出了什么问题,甚至不确定从哪里找到问题日志。 ELB日志区域中的日志仅显示诸如“应用未处于就绪状态时您无法请求日志”之类的信息,等等。

1 个答案:

答案 0 :(得分:0)

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

这些文件仅对于前端开发是必需的,不需要部署在服务器上。在开发中,使用webpack将它们编译为app.js,然后将其发布到S3。因此,这些前端开发文件都不需要在生产服务器上。

出于良好的考虑,我还排除了composer.jsoncomposer.lock,因为在部署期间不需要运行composer update