Rails3/起動時の流れ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(Rails3/起動時の流れ);
*目次 [#dba70d82]
#contents
*参考情報 [#e9eb92bf]
*前提 [#f0eafa32]
-Railsアプリを起動した時の処理の流れ。以下のコマンドで起...
scrpt/rails server
*script/rails [#rc490313]
-アプリディレクトリのscript/railsがエントリーポイント。
#pre{{
APP_PATH = File.expand_path('../../config/application', ...
require File.expand_path('../../config/boot', __FILE__)
require 'rails/commands'
}}
*railties [#p9b0ae66]
**rails/commands.rb [#p4645653]
-ここでコマンドラインオプションが処理される。引数がserver...
#pre{{
when 'server'
# Change to the application's path if there is no confi...
# This allows us to run script/rails server from other ...
# the main config.ru and properly set the tmp directory.
Dir.chdir(File.expand_path('../../', APP_PATH)) unless ...
require 'rails/commands/server'
Rails::Server.new.tap { |server|
# We need to require application after the server set...
# otherwise the --environment option given to the ser...
require APP_PATH
Dir.chdir(Rails.application.root)
server.start
}
}}
** rails/commands/server.rb [#e1066b72]
-Rails::Serverは、Rack::Serverのサブクラスであることが分...
#pre{{
module Rails
class Server < ::Rack::Server
}}
*rack [#oe1d667c]
** rack/server.rb [#v4aa2b01]
-Rack::Serverが実際にどのサーバーを使うかは以下の処理で決...
#pre{{
def server
@_server ||= Rack::Handler.get(options[:server]) ||...
end
}}
-options[:server]に使用するサーバーが設定されていない場合...
**rack/handler.rb [#t64bbdcb]
-使用するデフォルトのサーバーを決定する処理。 Rack::Handl...
#pre{{
def self.default(options = {})
# Guess.
if ENV.include?("PHP_FCGI_CHILDREN")
# We already speak FastCGI
options.delete :File
options.delete :Port
Rack::Handler::FastCGI
elsif ENV.include?("REQUEST_METHOD")
Rack::Handler::CGI
else
begin
Rack::Handler::Thin
rescue LoadError
Rack::Handler::WEBrick
end
end
end
}}
*ログ出力の改善 [#gb489538]
**WEBrickのログ出力機能に関して [#xf3ebdc1]
-WEBrickは、development.logにログを出力すると同時に標準出...
-この仕組は、railtiesのrails/rack/log_trailer.rbで行われ...
#pre{{
def tail!
return unless @cursor
@file.seek @cursor
unless @file.eof?
contents = @file.read
@cursor = @file.tell
$stdout.print contents
end
end
}}
-ログファイルをシークしながら標準出力に差分を表示している...
**Could not determine content-length of response body. Se...
-[[Could not determine content-length of response body. S...
-[[204_304_keep_alive.patch - ruby-trunk - Ruby Issue Tra...
#pre{{
$ emacs -nw versions/1.9.3-p429/lib/ruby/1.9.1/webrick/h...
}}
-以下の4行目のところ。
#pre{{
if @header['connection'] == "close"
@keep_alive = false
elsif keep_alive?
if chunked? || @header['content-length'] || @status =...
@header['connection'] = "Keep-Alive"
else
msg = "Could not determine content-length of respon...
}}
終了行:
&tag(Rails3/起動時の流れ);
*目次 [#dba70d82]
#contents
*参考情報 [#e9eb92bf]
*前提 [#f0eafa32]
-Railsアプリを起動した時の処理の流れ。以下のコマンドで起...
scrpt/rails server
*script/rails [#rc490313]
-アプリディレクトリのscript/railsがエントリーポイント。
#pre{{
APP_PATH = File.expand_path('../../config/application', ...
require File.expand_path('../../config/boot', __FILE__)
require 'rails/commands'
}}
*railties [#p9b0ae66]
**rails/commands.rb [#p4645653]
-ここでコマンドラインオプションが処理される。引数がserver...
#pre{{
when 'server'
# Change to the application's path if there is no confi...
# This allows us to run script/rails server from other ...
# the main config.ru and properly set the tmp directory.
Dir.chdir(File.expand_path('../../', APP_PATH)) unless ...
require 'rails/commands/server'
Rails::Server.new.tap { |server|
# We need to require application after the server set...
# otherwise the --environment option given to the ser...
require APP_PATH
Dir.chdir(Rails.application.root)
server.start
}
}}
** rails/commands/server.rb [#e1066b72]
-Rails::Serverは、Rack::Serverのサブクラスであることが分...
#pre{{
module Rails
class Server < ::Rack::Server
}}
*rack [#oe1d667c]
** rack/server.rb [#v4aa2b01]
-Rack::Serverが実際にどのサーバーを使うかは以下の処理で決...
#pre{{
def server
@_server ||= Rack::Handler.get(options[:server]) ||...
end
}}
-options[:server]に使用するサーバーが設定されていない場合...
**rack/handler.rb [#t64bbdcb]
-使用するデフォルトのサーバーを決定する処理。 Rack::Handl...
#pre{{
def self.default(options = {})
# Guess.
if ENV.include?("PHP_FCGI_CHILDREN")
# We already speak FastCGI
options.delete :File
options.delete :Port
Rack::Handler::FastCGI
elsif ENV.include?("REQUEST_METHOD")
Rack::Handler::CGI
else
begin
Rack::Handler::Thin
rescue LoadError
Rack::Handler::WEBrick
end
end
end
}}
*ログ出力の改善 [#gb489538]
**WEBrickのログ出力機能に関して [#xf3ebdc1]
-WEBrickは、development.logにログを出力すると同時に標準出...
-この仕組は、railtiesのrails/rack/log_trailer.rbで行われ...
#pre{{
def tail!
return unless @cursor
@file.seek @cursor
unless @file.eof?
contents = @file.read
@cursor = @file.tell
$stdout.print contents
end
end
}}
-ログファイルをシークしながら標準出力に差分を表示している...
**Could not determine content-length of response body. Se...
-[[Could not determine content-length of response body. S...
-[[204_304_keep_alive.patch - ruby-trunk - Ruby Issue Tra...
#pre{{
$ emacs -nw versions/1.9.3-p429/lib/ruby/1.9.1/webrick/h...
}}
-以下の4行目のところ。
#pre{{
if @header['connection'] == "close"
@keep_alive = false
elsif keep_alive?
if chunked? || @header['content-length'] || @status =...
@header['connection'] = "Keep-Alive"
else
msg = "Could not determine content-length of respon...
}}
ページ名: