AWS Elastic Beanstalk 错误 - 乘客

Posted

技术标签:

【中文标题】AWS Elastic Beanstalk 错误 - 乘客【英文标题】:AWS Elastic Beanstalk Error - Passenger 【发布时间】:2015-05-07 17:52:10 【问题描述】:

我尝试了各种直观的解决方案,然后尝试了显然对其他人有所帮助的解决方案。我已经启动并终止了我的 Rails 4 应用程序大约 10 次。所以...我想我会转过来看看是否有人知道答案。

这是日志文件:

[ 2015-03-06 06:12:27.0070 2619/7fa0f6d60740 agents/Watchdog/Main.cpp:538 ]: 
Options:  'analytics_log_user' => 'webapp', 'cleanup_pidfiles' => 
'L3RtcC9wYXNzZW5nZX*********************yL3RlbXBfZGlyX3RvdWNoZXIucGlk', 
'default_group' => 'webapp', 'default_python' => 'python', 'default_ruby' => 
'/opt/rubies/ruby-2.1.5/bin/ruby', 'default_user' => 'webapp', 'log_level' => 
'0', 'max_pool_size' => '6', 'passenger_root' => '/tmp/passenger-
standalone.1fcb7jr/locations.ini', 'passenger_version' => '4.0.53', 
'pool_idle_time' => '300', 'prestart_urls' => 'aHR0cDovLzAuMC4wLjA6ODAA', 
'temp_dir' => '/tmp', 'union_station_gateway_address' => 
'gateway.unionstationapp.com', 'union_station_gateway_port' => '443', 
'user_switching' => 'false', 'web_server_passenger_version' => '4.0.53', 
'web_server_pid' => '2618', 'web_server_type' => 'nginx', 
'web_server_worker_gid' => '496', 'web_server_worker_uid' => '497' 
[ 2015-03-06 06:12:27.3877 2622/7fac802f6740 agents/HelperAgent/Main.cpp:650]:
PassengerHelperAgent online, listening at  
unix:/tmp/passenger.1.0.2618/generation-0/request
[ 2015-03-06 06:12:28.2222 2630/7fe1e0b67740 agents/LoggingAgent/Main.cpp:321 
]: PassengerLoggingAgent online, listening at 
unix:/tmp/passenger.1.0.2618/generation-0/logging
[ 2015-03-06 06:12:28.2223 2619/7fa0f6d60740 agents/Watchdog/Main.cpp:728 ]: 
All Phusion Passenger agents started!
2015/03/06 06:12:29 [error] 2638#0: *3 "/var/app/current/public/index.html" is 
not found (2: No such file or directory), client: 127.0.0.1, server: _,
request: "HEAD / HTTP/1.1", host: "0.0.0.0"
2015/03/06 06:13:35 [error] 2638#0: *7 "/var/app/current/public/index.html" is 
not found (2: No such file or directory), client: 172.3*.**.***, server: _, 
request:   "GET / HTTP/1.1", host: "****************-env.elasticbeanstalk.com"

我的 gem 文件中有 gem 'passenger'...我已经尝试过开发(因为我在生产和乘客方面看到了许多错误)和生产,我发誓我从来没有遇到过这种麻烦上传到弹性豆茎。事实上,这是一个非常精简的应用程序,只有一个静态页面,既为用户设计,又为活动管理员设计。在我的本地机器上的任何一个环境中都没有错误或问题。

我什至从来没有意识到我需要 index.html 文件...我一直认为它只是在 php 和其他语言中,Rails 会用 root 为您处理这些问题。就像我说的,我以前从未见过这个问题。因此,为了测试我在公共文件夹中放入了一个 index.html 文件,我可以在本地机器上的根路由之前看到它,但在 AWS 中仍然没有骰子。我希望能够将其放入其他配置之一,例如 Puma。而且我看到一个 Puma 和 Nginx 配置可用,但不在 GUI 中,这正是我计划将其“放入”并暂时完成的。我正在使用 t2.small 实例。

任何帮助或指导将不胜感激。谢谢。

更新:我现在已经尝试使用 Puma 等通过 Git 进行推送。到处都是麻烦。这没有道理。我什至把它移到了一个“Hello World”应用程序中,但仍然没有。我即将完成 AWS。这是荒唐的。几乎比每年都有大量问题的 ios 版本更糟糕。

【问题讨论】:

您创建了什么 EB?我怀疑它不是 Ruby on Rails 应用程序 它是 Ruby...在 EBS 旁边的 Node 等...我已经做过很多次了,尽管已经有一段时间了。网络服务器 -> 预配置 -> 确切地说是 Ruby。 【参考方案1】:

好的。今天之后,我得到了妥善处理和托管。万一这对某人有所帮助……以下是关键要点:

1) 如果您使用的是明显的 CLI,则有一个 Puma 选项。 GUI 中还有一个选项,但它读起来像一个句子,而不是一个逻辑选择框。它确实存在于要安装的语言选择下方的首页。如果您遇到乘客错误并希望使用 Puma,那么您需要进行更改。

2) 我安装了一个包含 ActiveAdmin 角色的用户模型。 ActiveAdmin 正在从 GitHub 中提取 gem,我正在使用一台已经安装了 GitHub 的机器。这确实是问题所在...切换到生产环境并切换到 ElasticBeanstalk 我忘记了尚未安装 git。多次返回错误后,常见的错误是

# :github => 'activeadmin/activeadmin'+ '[' -d /vendor/cache ']'
+ bundle install
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and
installing your bundle as root will break this application for all non-root
users on this machine.

You need to install git to be able to use gems from git repositories.

[CMD-Startup/StartupStage0/AppDeployPreHook/10_bundle_install.sh] : Activity failed.

这位于 eb-activity.log 中。

因此,如果这与您发生的任何事情相似,您可以执行以下操作:

1) 使用正确的服务器启动您的实例。

2) 如果您遇到错误,请查看上面提到的活动日志。 (与此相关的所有日志)

3) 如果错误同样失败,则无需删除实例。让它运行。

4) SSH 到您刚刚创建的服务器实例。运行

sudo yum update 

这很可能是推荐的。然后运行

sudo yum install git

5) 上传完全相同的文件并将版本命名为 0.1,如果这是您唯一的错误,则它应该是绿色的。点击链接,瞧。

【讨论】:

我得到与 - 相同的错误 - (不要以 root 身份运行 Bundler。如果需要,Bundler 可以请求 sudo,并且以 root 身份安装您的捆绑软件会破坏所有非 root 用户的此应用程序在这台机器上。)我在 gemfile 中有一个 gem 的相对参考。有什么解决办法吗?【参考方案2】:

对于 git 二进制问题:如果更多实例正在启动,它将再次失败。您可以通过在 $ROOT/.ebextensions 下添加将用于任何新实例的配置来避免这种情况。

# Install git in order to be able to bundle gems from git
packages:
  yum:
    git: []

【讨论】:

以上是关于AWS Elastic Beanstalk 错误 - 乘客的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk chown PythonPath 错误

AWS - Elastic BeansTalk:[错误] 'php' 未找到或无法统计

AWS CloudFormation + Elastic Beanstalk 错误

AWS Elastic Beanstalk - 错误 requirements.txt

反应:AWS Elastic Beanstalk 上的 502 错误网关

AWS Elastic Beanstalk 错误 - 乘客