AWS Elastic Beanstalk 错误 - 乘客

AWS Elastic Beanstalk Error - Passenger

我尝试了各种直观的解决方案,然后尝试了显然对其他人有帮助的解决方案。我已经启动并终止了我的 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'...我已经尝试过开发(因为我看到了生产和乘客的一些错误)和生产,我发誓我从来没有遇到过这种上传到 Elastic Beanstalk 的麻烦。事实上,这是一个非常精简的应用程序,只有一个静态页面,既为用户设计,也为活跃的管理员设计。在我的本地计算机上的任何一个环境中都没有错误或问题。

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

如有任何帮助或指导,我们将不胜感激。谢谢

更新:我现在已经尝试使用 Puma 等推动 Git。到处都是麻烦。这没有道理。我什至将其移至 "Hello World" 应用程序,但仍然一无所获。我即将完成 AWS。这是荒唐的。几乎比每年都有大量问题的 iOS 版本更糟糕。

好的。今天之后,我已经妥善处理并托管了这件事。以防万一这对某人有所帮助……这里是要点:

1) 如果您使用的是显而易见的 CLI,则有一个 Puma 选项。 GUI 中还有一个选项,但它读起来像一个句子,而不是一个合乎逻辑的 select 框。它确实存在于要安装的语言 selection 下面的首页上。如果您遇到乘客错误并希望使用 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) 如果出现错误,请查看上面提到的 activity 日志。 (与此相关的所有日志)

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

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

sudo yum update 

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

sudo yum install git

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

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

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