Module: CASServer::Postambles
- Defined in:
- lib/casserver/postambles.rb
Instance Method Summary collapse
Instance Method Details
#cgi ⇒ Object
133 134 135 136 |
# File 'lib/casserver/postambles.rb', line 133 def cgi CASServer.create puts CASServer.run end |
#fastcgi ⇒ Object
124 125 126 127 128 129 130 |
# File 'lib/casserver/postambles.rb', line 124 def fastcgi require 'camping/fastcgi' Dir.chdir('/srv/www/camping/casserver/') CASServer.create Camping::FastCGI.start(CASServer) end |
#mongrel ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/casserver/postambles.rb', line 69 def mongrel require 'rubygems' require 'mongrel/camping' if $DAEMONIZE # check if log and pid are writable before daemonizing, otherwise we won't be able to notify # the user if we run into trouble later (since once daemonized, we can't write to stdout/stderr) check_pid_writable if $PID_FILE check_log_writable end CASServer.create puts "\n** CASServer is starting. Look in '#{$CONF.log[:file]}' for further notices." settings = {:host => "0.0.0.0", :log_file => $CONF.log[:file], :cwd => $CASSERVER_HOME} # need to close all IOs before daemonizing $LOG.close if $DAEMONIZE begin config = Mongrel::Configurator.new settings do daemonize :log_file => $CONF.log[:file], :cwd => $CASSERVER_HOME if $DAEMONIZE listener :port => $CONF.port do uri $CONF.uri_path, :handler => Mongrel::Camping::CampingHandler.new(CASServer) setup_signals end end rescue Errno::EADDRINUSE exit 1 end config.run CASServer.init_logger CASServer.init_db_logger if $DAEMONIZE && $PID_FILE write_pid_file unless File.exists? $PID_FILE $LOG.error "CASServer could not start because pid file '#{$PID_FILE}' could not be created." exit 1 end end puts "\n** CASServer is running at http://localhost:#{$CONF.port}#{$CONF.uri_path} and logging to '#{$CONF.log[:file]}'" config.join clear_pid_file puts "\n** CASServer is stopped (#{Time.now})" end |
#webrick ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/casserver/postambles.rb', line 4 def webrick require 'webrick/httpserver' require 'webrick/https' require 'camping/webrick' # TODO: verify the certificate's validity # example of how to do this is here: http://pablotron.org/download/ruri-20050331.rb cert_path = $CONF.ssl_cert key_path = $CONF.ssl_key || $CONF.ssl_cert # look for the key in the ssl_cert if no ssl_key is specified = {:BindAddress => "0.0.0.0", :Port => $CONF.port} unless cert_path.nil? && key_path.nil? raise "'#{cert_path}' is not a valid ssl certificate. Your 'ssl_cert' configuration" + " setting must be a path to a valid ssl certificate file." unless File.exists? cert_path raise "'#{key_path}' is not a valid ssl private key. Your 'ssl_key' configuration" + " setting must be a path to a valid ssl private key file." unless File.exists? key_path cert = OpenSSL::X509::Certificate.new(File.read(cert_path)) key = OpenSSL::PKey::RSA.new(File.read(key_path)) [:SSLEnable] = true [:SSLVerifyClient] = ::OpenSSL::SSL::VERIFY_NONE [:SSLCertificate] = cert [:SSLPrivateKey] = key end begin s = WEBrick::HTTPServer.new() rescue Errno::EACCES puts "\nThe server could not launch. Are you running on a privileged port? (e.g. port 443) If so, you must run the server as root." exit 2 end CASServer.create s.mount "#{$CONF.uri_path}", WEBrick::CampingHandler, CASServer puts "\n** CASServer is running at http#{[:SSLEnable] ? 's' : ''}://#{Socket.gethostname}:#{$CONF.port}#{$CONF.uri_path} and logging to '#{$CONF.log[:file]}'\n\n" # This lets Ctrl+C shut down your server trap(:INT) do s.shutdown end trap(:TERM) do s.shutdown end if $DAEMONIZE WEBrick::Daemon.start do write_pid_file if $PID_FILE s.start clear_pid_file end else s.start end end |