LoginSignup
0
0

More than 1 year has passed since last update.

rails_on_iis を Windows 10 で

Last updated at Posted at 2020-01-31

概要

Ruby 素人が rails_on_iis を Windows 10 でやった際の、ハマり話です。

基本はこちら Railsコラム – enjoy Railsway 第5回 「IIS 8+(HttpPlatformHandler)でRuby on Railsを実行」 を参照。

IIS 7 以上で Rails プログラムを構成する方法が 2 つあります。

httpPlatformHandler を使用

Ruby 側で WEBrick などの web server を立ちあげて IIS の httpPlatformHandler でつなぐ方法です。この方法は汎用性が高いです。

WEBrick.png

Helicon Zoo を使用

Helicon Tech 社の Helicon Zoo を使用する方法です。

C:\Zoo\Workers\ruby\zoorack.rb は Helicon Zoo の一部です。

Rack.png

ハマリポイント

C:\inetpub\wwwroot\rails_on_iis へ書き込みできない場合

リクエストがクルクル回り続ける…

2020-01-31_23h52_29.png

イベントビューアの Application ログを確認:

2020-01-31_23h53_35.png

Warning: Could not create stdoutLogFile \\?\C:\inetpub\wwwroot\rails_on_iis\httpplatform-stdout_16724_2020131145254.log, ErrorCode = -2147024891.

ActionController::RoutingError エラー

C:\inetpub\wwwroot\rails_on_iis\log\production.log で、ActionController::RoutingError (No route matches [GET] "/rails_on_iis/books"): エラー

I, [2020-02-01T00:09:40.125383 #17132]  INFO -- : [06380107-4723-48b5-94ec-6bf5375491f4] Started GET "/rails_on_iis/books" for 127.0.0.1 at 2020-02-01 00:09:40 +0900
F, [2020-02-01T00:09:40.129327 #17132] FATAL -- : [06380107-4723-48b5-94ec-6bf5375491f4]   
[06380107-4723-48b5-94ec-6bf5375491f4] ActionController::RoutingError (No route matches [GET] "/rails_on_iis/books"):
[06380107-4723-48b5-94ec-6bf5375491f4]   
[06380107-4723-48b5-94ec-6bf5375491f4] actionpack (6.0.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:36:in `call'
[06380107-4723-48b5-94ec-6bf5375491f4] actionpack (6.0.2.1) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
[06380107-4723-48b5-94ec-6bf5375491f4] railties (6.0.2.1) lib/rails/rack/logger.rb:38:in `call_app'
[06380107-4723-48b5-94ec-6bf5375491f4] railties (6.0.2.1) lib/rails/rack/logger.rb:26:in `block in call'
[06380107-4723-48b5-94ec-6bf5375491f4] activesupport (6.0.2.1) lib/active_support/tagged_logging.rb:80:in `block in tagged'
[06380107-4723-48b5-94ec-6bf5375491f4] activesupport (6.0.2.1) lib/active_support/tagged_logging.rb:28:in `tagged'
[06380107-4723-48b5-94ec-6bf5375491f4] activesupport (6.0.2.1) lib/active_support/tagged_logging.rb:80:in `tagged'
[06380107-4723-48b5-94ec-6bf5375491f4] railties (6.0.2.1) lib/rails/rack/logger.rb:26:in `call'
[06380107-4723-48b5-94ec-6bf5375491f4] actionpack (6.0.2.1) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
[06380107-4723-48b5-94ec-6bf5375491f4] actionpack (6.0.2.1) lib/action_dispatch/middleware/request_id.rb:27:in `call'
[06380107-4723-48b5-94ec-6bf5375491f4] rack (2.1.2) lib/rack/method_override.rb:24:in `call'
[06380107-4723-48b5-94ec-6bf5375491f4] rack (2.1.2) lib/rack/runtime.rb:24:in `call'
[06380107-4723-48b5-94ec-6bf5375491f4] activesupport (6.0.2.1) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
[06380107-4723-48b5-94ec-6bf5375491f4] actionpack (6.0.2.1) lib/action_dispatch/middleware/executor.rb:14:in `call'
[06380107-4723-48b5-94ec-6bf5375491f4] rack (2.1.2) lib/rack/sendfile.rb:113:in `call'
[06380107-4723-48b5-94ec-6bf5375491f4] actionpack (6.0.2.1) lib/action_dispatch/middleware/host_authorization.rb:77:in `call'
[06380107-4723-48b5-94ec-6bf5375491f4] railties (6.0.2.1) lib/rails/engine.rb:526:in `call'
[06380107-4723-48b5-94ec-6bf5375491f4] puma (4.3.1) lib/puma/configuration.rb:228:in `call'
[06380107-4723-48b5-94ec-6bf5375491f4] puma (4.3.1) lib/puma/server.rb:681:in `handle_request'
[06380107-4723-48b5-94ec-6bf5375491f4] puma (4.3.1) lib/puma/server.rb:472:in `process_client'
[06380107-4723-48b5-94ec-6bf5375491f4] puma (4.3.1) lib/puma/server.rb:328:in `block in run'
[06380107-4723-48b5-94ec-6bf5375491f4] puma (4.3.1) lib/puma/thread_pool.rb:134:in `block in spawn_thread'

C:\inetpub\wwwroot\rails_on_iis\config.ru を修正。
参考にしました: 新しいHttpPlatformHandlerによる、IIS 8上でのRuby on Rails (またはそれ以外の何でも) の実行

config.ru
# This file is used by Rack-based servers to start the application.

require_relative 'config/environment'

Rails.application.config.relative_url_root = '/rails_on_iis'

map Rails.application.config.relative_url_root || "/" do
  run Rails.application
end

SQLite3::SQLException: no such table: books

エラー

I, [2020-02-01T00:12:02.038522 #10708]  INFO -- : [b67a6be8-15f8-48c0-9326-3be217b07b8f] Started GET "/rails_on_iis/books" for 127.0.0.1 at 2020-02-01 00:12:02 +0900
I, [2020-02-01T00:12:02.039721 #10708]  INFO -- : [b67a6be8-15f8-48c0-9326-3be217b07b8f] Processing by BooksController#index as HTML
I, [2020-02-01T00:12:02.041988 #10708]  INFO -- : [b67a6be8-15f8-48c0-9326-3be217b07b8f]   Rendering books/index.html.erb within layouts/application
D, [2020-02-01T00:12:02.043934 #10708] DEBUG -- : [b67a6be8-15f8-48c0-9326-3be217b07b8f]   [1m[36mBook Load (1.0ms)[0m  [1m[34mSELECT "books".* FROM "books"[0m
I, [2020-02-01T00:12:02.044362 #10708]  INFO -- : [b67a6be8-15f8-48c0-9326-3be217b07b8f]   Rendered books/index.html.erb within layouts/application (Duration: 2.0ms | Allocations: 261)
I, [2020-02-01T00:12:02.044930 #10708]  INFO -- : [b67a6be8-15f8-48c0-9326-3be217b07b8f] Completed 500 Internal Server Error in 5ms (ActiveRecord: 1.0ms | Allocations: 1197)
F, [2020-02-01T00:12:02.047193 #10708] FATAL -- : [b67a6be8-15f8-48c0-9326-3be217b07b8f]   
[b67a6be8-15f8-48c0-9326-3be217b07b8f] ActionView::Template::Error (SQLite3::SQLException: no such table: books):

実行

C:\inetpub\wwwroot\rails_on_iis>rails db:migrate RAILS_ENV=production
== 20200131144720 CreateBooks: migrating ======================================
-- create_table(:books)
   -> 0.0016s
== 20200131144720 CreateBooks: migrated (0.0025s) =============================

ActionView::Template::Error (The asset "application.css" is not present in the asset pipeline.):

エラー

I, [2020-02-01T00:14:11.424988 #10708]  INFO -- : [7e8d7009-f3ad-424f-9baf-4027d40c0a41] Started GET "/rails_on_iis/books" for 127.0.0.1 at 2020-02-01 00:14:11 +0900
I, [2020-02-01T00:14:11.426340 #10708]  INFO -- : [7e8d7009-f3ad-424f-9baf-4027d40c0a41] Processing by BooksController#index as HTML
I, [2020-02-01T00:14:11.428806 #10708]  INFO -- : [7e8d7009-f3ad-424f-9baf-4027d40c0a41]   Rendering books/index.html.erb within layouts/application
D, [2020-02-01T00:14:11.431783 #10708] DEBUG -- : [7e8d7009-f3ad-424f-9baf-4027d40c0a41]   [1m[36mBook Load (1.9ms)[0m  [1m[34mSELECT "books".* FROM "books"[0m
I, [2020-02-01T00:14:11.445103 #10708]  INFO -- : [7e8d7009-f3ad-424f-9baf-4027d40c0a41]   Rendered books/index.html.erb within layouts/application (Duration: 15.8ms | Allocations: 1113)
I, [2020-02-01T00:14:11.447056 #10708]  INFO -- : [7e8d7009-f3ad-424f-9baf-4027d40c0a41] Completed 500 Internal Server Error in 20ms (ActiveRecord: 3.0ms | Allocations: 2501)
F, [2020-02-01T00:14:11.447968 #10708] FATAL -- : [7e8d7009-f3ad-424f-9baf-4027d40c0a41]   
[7e8d7009-f3ad-424f-9baf-4027d40c0a41] ActionView::Template::Error (The asset "application.css" is not present in the asset pipeline.):

実行。
参考: Rails5でnginx+pumaでproduction環境を構築する

bundle exec rake assets:precompile RAILS_ENV=production
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0