问题描述
在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上崩溃的问题。另外,确保检查日志和服务器安全性,以排除其他可能导致崩溃的原因。根据你的具体情况,选择适合的解决方案,并遵循最佳实践来维护和管理你的应用程序。