From 5ca8b5fca42ca09bdaadfc7c985fbec9c2fbafa5 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 7 Nov 2005 10:25:36 +0000 Subject: Added default lighttpd config in config/lighttpd.conf and added a default runner for lighttpd in script/server (works like script/server, but using lighttpd and FastCGI). It will use lighttpd if available, otherwise WEBrick. You can force either or using 'script/server lighttpd' or 'script/server webrick' [DHH] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2912 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- railties/lib/commands/lighttpd.rb | 45 ----------------------- railties/lib/commands/server.rb | 75 ++++++++++----------------------------- 2 files changed, 19 insertions(+), 101 deletions(-) delete mode 100644 railties/lib/commands/lighttpd.rb (limited to 'railties/lib/commands') diff --git a/railties/lib/commands/lighttpd.rb b/railties/lib/commands/lighttpd.rb deleted file mode 100644 index df6ad663f9..0000000000 --- a/railties/lib/commands/lighttpd.rb +++ /dev/null @@ -1,45 +0,0 @@ -require 'active_support' - -unless RUBY_PLATFORM !~ /mswin/ && !silence_stderr { `lighttpd -version` }.blank? - puts "lighttpd is not available on your system (or not in your path)" - exit 1 -end - -def tail_f(input) - loop do - line = input.gets - yield line if line - if input.eof? - sleep 1 - input.seek(input.tell) - end - end -end - -config_file = "#{RAILS_ROOT}/config/lighttpd.conf" - -port = IO.read(config_file).scan(/^server.port\s*=\s*(\d+)/).first rescue 3000 -puts "=> Rails application started on http://0.0.0.0:#{port}" - -if ARGV.first == "-d" - puts "=> Configure in config/lighttpd.conf" - detach = true -else - puts "=> Call with -d to detach (requires absolute paths in config/lighttpd.conf)" - puts "=> Ctrl-C to shutdown server (see config/lighttpd.conf for options)" - detach = false - - Process.detach(fork do - begin - File.open("#{RAILS_ROOT}/log/#{RAILS_ENV}.log", 'r') do |log| - log.seek(0, IO::SEEK_END) - tail_f(log) {|line| puts line} - end - rescue Exception - end - exit - end) -end - -trap(:INT) {exit} -`lighttpd #{!detach ? "-D " : ""}-f #{config_file}` diff --git a/railties/lib/commands/server.rb b/railties/lib/commands/server.rb index db8e8b3d93..64e5b1fa7a 100644 --- a/railties/lib/commands/server.rb +++ b/railties/lib/commands/server.rb @@ -1,59 +1,22 @@ -require 'webrick' -require 'optparse' - -OPTIONS = { - :port => 3000, - :ip => "0.0.0.0", - :environment => (ENV['RAILS_ENV'] || "development").dup, - :server_root => File.expand_path(RAILS_ROOT + "/public/"), - :server_type => WEBrick::SimpleServer, - :charset => "UTF-8", - :mime_types => WEBrick::HTTPUtils::DefaultMimeTypes -} - -ARGV.options do |opts| - script_name = File.basename($0) - opts.banner = "Usage: ruby #{script_name} [options]" - - opts.separator "" - - opts.on("-p", "--port=port", Integer, - "Runs Rails on the specified port.", - "Default: 3000") { |OPTIONS[:port]| } - opts.on("-b", "--binding=ip", String, - "Binds Rails to the specified ip.", - "Default: 0.0.0.0") { |OPTIONS[:ip]| } - opts.on("-e", "--environment=name", String, - "Specifies the environment to run this server under (test/development/production).", - "Default: development") { |OPTIONS[:environment]| } - opts.on("-m", "--mime-types=filename", String, - "Specifies an Apache style mime.types configuration file to be used for mime types", - "Default: none") { |mime_types_file| OPTIONS[:mime_types] = WEBrick::HTTPUtils::load_mime_types(mime_types_file) } - - opts.on("-d", "--daemon", - "Make Rails run as a Daemon (only works if fork is available -- meaning on *nix)." - ) { OPTIONS[:server_type] = WEBrick::Daemon } - - opts.on("-c", "--charset=charset", String, - "Set default charset for output.", - "Default: UTF-8") { |OPTIONS[:charset]| } - - opts.separator "" - - opts.on("-h", "--help", - "Show this help message.") { puts opts; exit } - - opts.parse! +require 'active_support' + +server = case ARGV.first + when "lighttpd" + ARGV.shift + when "webrick" + ARGV.shift + else + if RUBY_PLATFORM !~ /mswin/ && !silence_stderr { `lighttpd -version` }.blank? + "lighttpd" + else + "webrick" + end end -ENV["RAILS_ENV"] = OPTIONS[:environment] -RAILS_ENV.replace(OPTIONS[:environment]) if defined?(RAILS_ENV) - -require RAILS_ROOT + "/config/environment" -require 'webrick_server' - -OPTIONS['working_directory'] = File.expand_path(RAILS_ROOT) +if server == "webrick" + puts "=> Booting WEBrick..." +else + puts "=> Booting lighttpd (use 'script/server webrick' to force WEBrick)" +end -puts "=> Rails application started on http://#{OPTIONS[:ip]}:#{OPTIONS[:port]}" -puts "=> Ctrl-C to shutdown server; call with --help for options" if OPTIONS[:server_type] == WEBrick::SimpleServer -DispatchServlet.dispatch(OPTIONS) +require "commands/servers/#{server}" \ No newline at end of file -- cgit v1.2.3