解决AWS Elastic Beanstalk上网站崩溃问题

51次阅读
没有评论

问题描述

在AWS Elastic Beanstalk上部署的Laravel网站每隔几个小时就会崩溃,并抛出以下错误:

[Sun May 19 13:06:13.436195 2019] [php7:error] [pid 3431] [client]   PHP Fatal error:  require(): Failed opening required    '/var/app/current/vendor/composer/../symfony/polyfill-php70/bootstrap.php'   (include_path='.:/usr/share/pear7:/usr/share/php') in    /var/app/current/vendor/composer/autoload_real.php on line 66
[Sun May 19 13:06:31.485081 2019] [php7:warn] [pid 3459] [client] PHP   Warning:    require(/var/app/current/vendor/composer/../symfony/polyfill-php70/bootstrap.php):   failed to open stream: No such file or directory in   /var/app/current/vendor/composer/autoload_real.php on line 66

用户尝试通过在/var/www/html/var/app/current中使用composer.phar install命令来修复安装的软件包,但问题仍然会在几个小时后再次出现。用户怀疑是否有关于AWS架构的一些误解,因为他是AWS的新手。

解决方案

请注意以下操作注意版本差异及修改前做好备份。
用户遇到的问题涉及到Laravel网站部署在AWS Elastic Beanstalk上时出现的崩溃问题。根据用户的问题描述和最佳回答,以下是解决问题的可能方案:

方案1:删除vendor文件夹并使用composer.json自动安装依赖

这个方案建议删除Laravel包中的vendor文件夹,并让composer.json文件自动执行安装过程,以下载和安装所有必要的文件。这样就不再需要手动运行composer install命令了。
下面是执行此方案的步骤:
1. 登录到你的AWS Elastic Beanstalk控制台。
2. 找到你的应用并选择对应的环境。
3. 在左侧菜单中,选择”Instances”,然后选择运行Laravel应用的实例。
4. 使用SSH连接到选定的实例。

执行以下命令来删除vendor文件夹并重新安装依赖:

# 删除vendor文件夹
rm -rf /var/app/current/vendor
# 使用composer.json自动安装依赖
cd /var/app/current
composer install

以上命令将删除vendor文件夹,并使用composer.json中列出的依赖自动执行安装过程。

方案2:检查日志以排查问题

另一个解决问题的方法是仔细检查日志以找出造成网站崩溃的原因。可能有一些其他因素导致了这些错误,比如服务器配置、访问模式等。可以通过查看应用程序和服务器日志,以及查看系统事件来找出问题的根本原因。

方案3:检查服务器安全性

由于最佳回答中提到可能是服务器内部的问题,也要确保服务器的安全性。检查是否有不当的访问或恶意活动可能导致了网站崩溃。

请根据你的情况选择适合的解决方案,并根据需要进行调整和优化。如果问题仍然存在,你可能需要更详细地调查服务器和应用程序的配置,以找出根本原因并解决问题。

注意: 在执行任何操作之前,请确保备份服务器和应用程序数据,以防意外情况发生。

总结

通过删除vendor文件夹并使用composer.json自动安装依赖,你可以尝试解决Laravel网站在AWS Elastic Beanstalk上崩溃的问题。另外,确保检查日志和服务器安全性,以排除其他可能导致崩溃的原因。根据你的具体情况,选择适合的解决方案,并遵循最佳实践来维护和管理你的应用程序。

正文完