passenger 4.0.41 → 4.0.42
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +8 -8
- checksums.yaml.gz.asc +7 -7
- data.tar.gz.asc +7 -7
- data/.travis.yml +3 -3
- data/CHANGELOG +26 -0
- data/build/agents.rb +1 -1
- data/build/apache2.rb +3 -0
- data/build/debian.rb +1 -1
- data/build/integration_tests.rb +4 -4
- data/build/nginx.rb +3 -0
- data/build/packaging.rb +3 -5
- data/build/preprocessor.rb +2 -1
- data/build/ruby_extension.rb +5 -5
- data/build/test_basics.rb +2 -1
- data/debian.template/control.template +9 -4
- data/debian.template/rules.template +16 -4
- data/dev/run_travis.sh +32 -8
- data/doc/Users guide Apache.txt +55 -10
- data/doc/Users guide Nginx.txt +10 -8
- data/doc/Users guide Standalone.txt +5 -2
- data/doc/users_guide_snippets/installation.txt +14 -0
- data/ext/common/ApplicationPool2/Process.h +8 -0
- data/ext/common/ApplicationPool2/Spawner.h +51 -1
- data/ext/common/Constants.h +1 -1
- data/ext/common/Utils/Curl.h +4 -0
- data/ext/common/agents/HelperAgent/RequestHandler.h +14 -2
- data/ext/common/agents/LoggingAgent/LoggingServer.h +4 -4
- data/ext/common/agents/LoggingAgent/RemoteSender.h +66 -5
- data/ext/nginx/StaticContentHandler.c +0 -7
- data/lib/phusion_passenger.rb +3 -3
- data/lib/phusion_passenger/config/about_command.rb +0 -4
- data/lib/phusion_passenger/config/build_native_support_command.rb +78 -0
- data/lib/phusion_passenger/config/detach_process_command.rb +0 -4
- data/lib/phusion_passenger/config/main.rb +12 -5
- data/lib/phusion_passenger/config/restart_app_command.rb +0 -4
- data/lib/phusion_passenger/config/validate_install_command.rb +0 -4
- data/lib/phusion_passenger/platform_info/compiler.rb +58 -41
- data/lib/phusion_passenger/platform_info/cxx_portability.rb +5 -0
- data/lib/phusion_passenger/standalone/command.rb +29 -10
- data/lib/phusion_passenger/standalone/help_command.rb +2 -2
- data/lib/phusion_passenger/standalone/start_command.rb +5 -1
- data/lib/phusion_passenger/utils/tee_input.rb +1 -0
- data/resources/mime.types +1 -1
- data/resources/oss-binaries.phusionpassenger.com.crt +124 -0
- data/resources/templates/apache2/deployment_example.txt.erb +2 -0
- data/resources/templates/standalone/config.erb +3 -1
- data/resources/templates/undisclosed_error.html.template +38 -1
- data/resources/union_station_gateway.crt +21 -0
- data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +34 -0
- data/test/cxx/RequestHandlerTest.cpp +10 -3
- data/test/cxx/TemplateTest.cpp +1 -1
- data/test/integration_tests/apache2_tests.rb +90 -106
- data/test/integration_tests/nginx_tests.rb +2 -0
- data/test/stub/rack/config.ru +7 -14
- data/test/stub/rack/library.rb +16 -0
- data/test/support/test_helper.rb +0 -3
- metadata +4 -80
- metadata.gz.asc +7 -7
- data/test/stub/rails2.3-mycook/Rakefile +0 -10
- data/test/stub/rails2.3-mycook/app/controllers/application_controller.rb +0 -12
- data/test/stub/rails2.3-mycook/app/controllers/recipes_controller.rb +0 -5
- data/test/stub/rails2.3-mycook/app/controllers/uploads_controller.rb +0 -15
- data/test/stub/rails2.3-mycook/app/controllers/welcome_controller.rb +0 -71
- data/test/stub/rails2.3-mycook/app/helpers/application_helper.rb +0 -3
- data/test/stub/rails2.3-mycook/app/helpers/recipes_helper.rb +0 -2
- data/test/stub/rails2.3-mycook/app/helpers/test_helper.rb +0 -2
- data/test/stub/rails2.3-mycook/app/helpers/uploads_helper.rb +0 -2
- data/test/stub/rails2.3-mycook/app/helpers/welcome_helper.rb +0 -2
- data/test/stub/rails2.3-mycook/app/views/layouts/default.rhtml +0 -26
- data/test/stub/rails2.3-mycook/app/views/recipes/create.rhtml +0 -13
- data/test/stub/rails2.3-mycook/app/views/recipes/index.rhtml +0 -3
- data/test/stub/rails2.3-mycook/app/views/recipes/new.rhtml +0 -8
- data/test/stub/rails2.3-mycook/app/views/uploads/index.rhtml +0 -1
- data/test/stub/rails2.3-mycook/app/views/uploads/new.html.erb +0 -8
- data/test/stub/rails2.3-mycook/app/views/welcome/cached.rhtml +0 -1
- data/test/stub/rails2.3-mycook/app/views/welcome/index.rhtml +0 -20
- data/test/stub/rails2.3-mycook/config/boot.rb +0 -110
- data/test/stub/rails2.3-mycook/config/database.yml +0 -19
- data/test/stub/rails2.3-mycook/config/environment.rb +0 -61
- data/test/stub/rails2.3-mycook/config/environments/development.rb +0 -18
- data/test/stub/rails2.3-mycook/config/environments/production.rb +0 -19
- data/test/stub/rails2.3-mycook/config/initializers/inflections.rb +0 -10
- data/test/stub/rails2.3-mycook/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails2.3-mycook/config/routes.rb +0 -38
- data/test/stub/rails2.3-mycook/log/useless.txt +0 -1
- data/test/stub/rails2.3-mycook/public/.htaccess +0 -42
- data/test/stub/rails2.3-mycook/public/404.html +0 -30
- data/test/stub/rails2.3-mycook/public/422.html +0 -30
- data/test/stub/rails2.3-mycook/public/500.html +0 -30
- data/test/stub/rails2.3-mycook/public/dispatch.cgi +0 -10
- data/test/stub/rails2.3-mycook/public/dispatch.fcgi +0 -24
- data/test/stub/rails2.3-mycook/public/dispatch.rb +0 -10
- data/test/stub/rails2.3-mycook/public/favicon.ico +0 -0
- data/test/stub/rails2.3-mycook/public/images/angrywizard.gif +0 -0
- data/test/stub/rails2.3-mycook/public/images/cookbook.gif +0 -0
- data/test/stub/rails2.3-mycook/public/images/header.png +0 -0
- data/test/stub/rails2.3-mycook/public/images/rails.png +0 -0
- data/test/stub/rails2.3-mycook/public/robots.txt +0 -5
- data/test/stub/rails2.3-mycook/public/uploads.html +0 -26
- data/test/stub/rails2.3-mycook/public/uploads/.gitignore +0 -0
- data/test/stub/rails2.3-mycook/public/welcome/cached.html +0 -26
- data/test/stub/rails2.3-mycook/script/about +0 -3
- data/test/stub/rails2.3-mycook/script/console +0 -3
- data/test/stub/rails2.3-mycook/script/dbconsole +0 -3
- data/test/stub/rails2.3-mycook/script/destroy +0 -3
- data/test/stub/rails2.3-mycook/script/generate +0 -3
- data/test/stub/rails2.3-mycook/script/performance/benchmarker +0 -3
- data/test/stub/rails2.3-mycook/script/performance/profiler +0 -3
- data/test/stub/rails2.3-mycook/script/performance/request +0 -3
- data/test/stub/rails2.3-mycook/script/plugin +0 -3
- data/test/stub/rails2.3-mycook/script/process/inspector +0 -3
- data/test/stub/rails2.3-mycook/script/process/reaper +0 -3
- data/test/stub/rails2.3-mycook/script/process/spawner +0 -3
- data/test/stub/rails2.3-mycook/script/runner +0 -3
- data/test/stub/rails2.3-mycook/script/server +0 -3
- data/test/stub/rails2.3-mycook/sites/some.site/public/uploads.html +0 -26
- data/test/stub/rails2.3-mycook/sites/some.site/public/welcome/cached.html +0 -26
- data/test/stub/rails2.3-mycook/tmp/cache/useless.txt +0 -1
- data/test/stub/rails2.3-mycook/tmp/pids/useless.txt +0 -1
- data/test/stub/rails2.3-mycook/tmp/sessions/useless.txt +0 -1
- data/test/stub/rails2.3-mycook/tmp/sockets/useless.txt +0 -1
- data/test/stub/vendor_rails/minimal/README +0 -1
- data/test/stub/vendor_rails/minimal/actionmailer/lib/action_mailer.rb +0 -0
- data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +0 -22
- data/test/stub/vendor_rails/minimal/actionpack/lib/action_pack.rb +0 -0
- data/test/stub/vendor_rails/minimal/actionpack/lib/action_view.rb +0 -0
- data/test/stub/vendor_rails/minimal/activerecord/lib/active_record.rb +0 -7
- data/test/stub/vendor_rails/minimal/activeresource/lib/active_resource.rb +0 -0
- data/test/stub/vendor_rails/minimal/activesupport/lib/active_support.rb +0 -17
- data/test/stub/vendor_rails/minimal/activesupport/lib/active_support/whiny_nil.rb +0 -0
- data/test/stub/vendor_rails/minimal/railties/lib/dispatcher.rb +0 -0
- data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +0 -57
- data/test/stub/vendor_rails/minimal/railties/lib/ruby_version_check.rb +0 -1
- data/test/stub/zsfa/header.png +0 -0
- data/test/stub/zsfa/index.html +0 -14
- data/test/stub/zsfa/zsfa.png +0 -0
@@ -30,6 +30,7 @@ module Config
|
|
30
30
|
KNOWN_COMMANDS = [
|
31
31
|
["detach-process", "DetachProcessCommand"],
|
32
32
|
["restart-app", "RestartAppCommand"],
|
33
|
+
["build-native-support", "BuildNativeSupportCommand"],
|
33
34
|
["validate-install", "ValidateInstallCommand"],
|
34
35
|
["about", "AboutCommand"]
|
35
36
|
]
|
@@ -68,11 +69,17 @@ module Config
|
|
68
69
|
puts "Usage: passenger-config <COMMAND> [options]"
|
69
70
|
puts "Tool for controlling or configurating a #{PROGRAM_NAME} instance or installation."
|
70
71
|
puts
|
71
|
-
puts "
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
72
|
+
puts "Management commands:"
|
73
|
+
puts " detach-process Detach an application process from the process pool"
|
74
|
+
puts " restart-app Restart an application"
|
75
|
+
puts
|
76
|
+
puts "Informational commands:"
|
77
|
+
puts " validate-install Validate this Phusion Passenger installation"
|
78
|
+
puts " about Show information about Phusion Passenger"
|
79
|
+
puts
|
80
|
+
puts "Miscellaneous commands:"
|
81
|
+
puts " build-native-support Ensure that the native_support library for the current"
|
82
|
+
puts " Ruby interpeter is built"
|
76
83
|
puts
|
77
84
|
puts "Type 'passenger-config <COMMAND> --help' for more information."
|
78
85
|
end
|
@@ -34,10 +34,6 @@ class ValidateInstallCommand < Command
|
|
34
34
|
# Signifies that there are no error, but at least 1 warning.
|
35
35
|
WARN_EXIT_CODE = 2
|
36
36
|
|
37
|
-
def self.description
|
38
|
-
return "Validate this #{PROGRAM_NAME} installation"
|
39
|
-
end
|
40
|
-
|
41
37
|
def self.help
|
42
38
|
puts "Usage: passenger-config validate-install"
|
43
39
|
puts "Validate this #{PROGRAM_NAME} installation."
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010-
|
2
|
+
# Copyright (c) 2010-2014 Phusion
|
3
3
|
#
|
4
4
|
# "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
5
5
|
#
|
@@ -248,14 +248,27 @@ public
|
|
248
248
|
create_temp_file("passenger-compile-check.#{extension}") do |filename, f|
|
249
249
|
f.puts(source)
|
250
250
|
f.close
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
251
|
+
command = create_compiler_command(language,
|
252
|
+
"-c '#{filename}' -o '#{filename}.o'",
|
253
|
+
flags)
|
254
|
+
return run_compiler(description, command, filename, source)
|
255
|
+
end
|
256
|
+
end
|
257
|
+
|
258
|
+
# Like try_compile, but designed for checking whether a warning flag is
|
259
|
+
# supported. Compilers sometimes do not error out upon encountering an
|
260
|
+
# unsupported warning flag, but merely print a warning. This method checks
|
261
|
+
# for that too.
|
262
|
+
def self.try_compile_with_warning_flag(description, language, source, flags = nil)
|
263
|
+
extension = detect_language_extension(language)
|
264
|
+
create_temp_file("passenger-compile-check.#{extension}") do |filename, f|
|
265
|
+
f.puts(source)
|
266
|
+
f.close
|
267
|
+
command = create_compiler_command(language,
|
268
|
+
"-c '#{filename}' -o '#{filename}.o'",
|
269
|
+
flags)
|
270
|
+
result = run_compiler(description, command, filename, source, true)
|
271
|
+
return result[:result] && result[:output] !~ /unknown warning option/i
|
259
272
|
end
|
260
273
|
end
|
261
274
|
|
@@ -264,14 +277,10 @@ public
|
|
264
277
|
create_temp_file("passenger-link-check.#{extension}") do |filename, f|
|
265
278
|
f.puts(source)
|
266
279
|
f.close
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
return run_compiler(description, command, filename, source)
|
272
|
-
ensure
|
273
|
-
File.unlink("#{filename}.out") rescue nil
|
274
|
-
end
|
280
|
+
command = create_compiler_command(language,
|
281
|
+
"'#{filename}' -o '#{filename}.out'",
|
282
|
+
flags, true)
|
283
|
+
return run_compiler(description, command, filename, source)
|
275
284
|
end
|
276
285
|
end
|
277
286
|
|
@@ -280,26 +289,22 @@ public
|
|
280
289
|
create_temp_file("passenger-run-check.#{extension}", tmpexedir) do |filename, f|
|
281
290
|
f.puts(source)
|
282
291
|
f.close
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
log("Command failed: #{e}")
|
293
|
-
return false
|
294
|
-
end
|
295
|
-
status = $?.exitstatus
|
296
|
-
log("Command exited with status #{status}. Output:\n--------------\n#{output}\n--------------")
|
297
|
-
return status == 0
|
298
|
-
else
|
292
|
+
command = create_compiler_command(language,
|
293
|
+
"'#{filename}' -o '#{filename}.out'",
|
294
|
+
flags, true)
|
295
|
+
if run_compiler(description, command, filename, source)
|
296
|
+
log("Running #{filename}.out")
|
297
|
+
begin
|
298
|
+
output = `'#{filename}.out' 2>&1`
|
299
|
+
rescue SystemCallError => e
|
300
|
+
log("Command failed: #{e}")
|
299
301
|
return false
|
300
302
|
end
|
301
|
-
|
302
|
-
|
303
|
+
status = $?.exitstatus
|
304
|
+
log("Command exited with status #{status}. Output:\n--------------\n#{output}\n--------------")
|
305
|
+
return status == 0
|
306
|
+
else
|
307
|
+
return false
|
303
308
|
end
|
304
309
|
end
|
305
310
|
end
|
@@ -326,29 +331,40 @@ public
|
|
326
331
|
memoize :cxx_supports_visibility_flag?, true
|
327
332
|
|
328
333
|
def self.cc_supports_wno_attributes_flag?
|
329
|
-
return
|
334
|
+
return try_compile_with_warning_flag(
|
335
|
+
"Checking for C compiler '-Wno-attributes' support",
|
330
336
|
:c, '', '-Wno-attributes')
|
331
337
|
end
|
332
338
|
memoize :cc_supports_wno_attributes_flag?, true
|
333
339
|
|
334
340
|
def self.cxx_supports_wno_attributes_flag?
|
335
|
-
return
|
341
|
+
return try_compile_with_warning_flag(
|
342
|
+
"Checking for C++ compiler '-Wno-attributes' support",
|
336
343
|
:cxx, '', '-Wno-attributes')
|
337
344
|
end
|
338
345
|
memoize :cxx_supports_wno_attributes_flag?, true
|
339
346
|
|
340
347
|
def self.cc_supports_wno_missing_field_initializers_flag?
|
341
|
-
return
|
348
|
+
return try_compile_with_warning_flag(
|
349
|
+
"Checking for C compiler '-Wno-missing-field-initializers' support",
|
342
350
|
:c, '', '-Wno-missing-field-initializers')
|
343
351
|
end
|
344
352
|
memoize :cc_supports_wno_missing_field_initializers_flag?, true
|
345
353
|
|
346
354
|
def self.cxx_supports_wno_missing_field_initializers_flag?
|
347
|
-
return
|
355
|
+
return try_compile_with_warning_flag(
|
356
|
+
"Checking for C++ compiler '-Wno-missing-field-initializers' support",
|
348
357
|
:cxx, '', '-Wno-missing-field-initializers')
|
349
358
|
end
|
350
359
|
memoize :cxx_supports_wno_missing_field_initializers_flag?, true
|
351
|
-
|
360
|
+
|
361
|
+
def self.cxx_supports_wno_unused_local_typedefs_flag?
|
362
|
+
return try_compile_with_warning_flag(
|
363
|
+
"Checking for C++ compiler '-Wno-unused-local-typedefs' support",
|
364
|
+
:cxx, '', '-Wno-unused-local-typedefs')
|
365
|
+
end
|
366
|
+
memoize :cxx_supports_wno_unused_local_typedefs_flag?, true
|
367
|
+
|
352
368
|
def self.cc_supports_no_tls_direct_seg_refs_option?
|
353
369
|
return try_compile("Checking for C compiler '-mno-tls-direct-seg-refs' support",
|
354
370
|
:c, '', '-mno-tls-direct-seg-refs')
|
@@ -362,7 +378,8 @@ public
|
|
362
378
|
memoize :cxx_supports_no_tls_direct_seg_refs_option?, true
|
363
379
|
|
364
380
|
def self.compiler_supports_wno_ambiguous_member_template?
|
365
|
-
result =
|
381
|
+
result = try_compile_with_warning_flag(
|
382
|
+
"Checking for C++ compiler '-Wno-ambiguous-member-template' support",
|
366
383
|
:cxx, '', '-Wno-ambiguous-member-template')
|
367
384
|
return false if !result
|
368
385
|
|
@@ -154,6 +154,11 @@ private
|
|
154
154
|
if cc_or_cxx == :cxx
|
155
155
|
flags << cxx_11_flag if cxx_11_flag
|
156
156
|
|
157
|
+
if cxx_supports_wno_unused_local_typedefs_flag?
|
158
|
+
# Avoids some compilaton warnings with Boost on Ubuntu 14.04.
|
159
|
+
flags << "-Wno-unused-local-typedefs"
|
160
|
+
end
|
161
|
+
|
157
162
|
# There are too many implementations of of the hash map!
|
158
163
|
# Figure out the right one.
|
159
164
|
check_unordered_map(flags, "std::unordered_map", "unordered_map", "HAS_UNORDERED_MAP") ||
|
@@ -31,14 +31,13 @@ class Command
|
|
31
31
|
DEFAULT_OPTIONS = {
|
32
32
|
:address => '0.0.0.0',
|
33
33
|
:port => 3000,
|
34
|
-
:environment => ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development',
|
34
|
+
:environment => ENV['RAILS_ENV'] || ENV['RACK_ENV'] || ENV['NODE_ENV'] || ENV['PASSENGER_APP_ENV'] || 'development',
|
35
35
|
:max_pool_size => 6,
|
36
36
|
:min_instances => 1,
|
37
37
|
:spawn_method => Kernel.respond_to?(:fork) ? 'smart' : 'direct',
|
38
38
|
:concurrency_model => DEFAULT_CONCURRENCY_MODEL,
|
39
39
|
:thread_count => DEFAULT_THREAD_COUNT,
|
40
|
-
:nginx_version => PREFERRED_NGINX_VERSION
|
41
|
-
:friendly_error_pages => true
|
40
|
+
:nginx_version => PREFERRED_NGINX_VERSION
|
42
41
|
}.freeze
|
43
42
|
|
44
43
|
include Utils
|
@@ -69,16 +68,21 @@ private
|
|
69
68
|
too_old = true
|
70
69
|
end
|
71
70
|
if too_old
|
71
|
+
PhusionPassenger.require_passenger_lib 'platform_info/ruby'
|
72
|
+
gem_command = PlatformInfo.gem_command(:sudo => true)
|
72
73
|
error "Your version of daemon_controller is too old. " <<
|
73
74
|
"You must install 1.1.0 or later. Please upgrade:\n\n" <<
|
74
75
|
|
75
|
-
"
|
76
|
-
"
|
76
|
+
" #{gem_command} uninstall FooBarWidget-daemon_controller\n" <<
|
77
|
+
" #{gem_command} install daemon_controller",
|
78
|
+
:wrap => false
|
77
79
|
exit 1
|
78
80
|
end
|
79
81
|
rescue LoadError
|
82
|
+
PhusionPassenger.require_passenger_lib 'platform_info/ruby'
|
83
|
+
gem_command = PlatformInfo.gem_command(:sudo => true)
|
80
84
|
error "Please install daemon_controller first:\n\n" <<
|
81
|
-
"
|
85
|
+
" #{gem_command} install daemon_controller"
|
82
86
|
exit 1
|
83
87
|
end
|
84
88
|
end
|
@@ -128,11 +132,22 @@ private
|
|
128
132
|
end
|
129
133
|
end
|
130
134
|
|
131
|
-
def error(message)
|
135
|
+
def error(message, options = {})
|
136
|
+
wrap = options.fetch(:wrap, true)
|
132
137
|
if message =~ /\n/
|
133
|
-
|
138
|
+
if wrap
|
139
|
+
processed_message = wrap_desc(message, 80, 0)
|
140
|
+
else
|
141
|
+
processed_message = message
|
142
|
+
end
|
143
|
+
STDERR.puts("*** ERROR ***\n" << processed_message)
|
134
144
|
else
|
135
|
-
|
145
|
+
if wrap
|
146
|
+
processed_message = wrap_desc("*** ERROR: #{message}", 80, 0)
|
147
|
+
else
|
148
|
+
processed_message = "*** ERROR: #{message}"
|
149
|
+
end
|
150
|
+
STDERR.puts(processed_message)
|
136
151
|
end
|
137
152
|
@plugin.call_hook(:error, message) if @plugin
|
138
153
|
end
|
@@ -218,7 +233,7 @@ private
|
|
218
233
|
File.open(@config_filename, 'w') do |f|
|
219
234
|
f.chmod(0644)
|
220
235
|
require_erb
|
221
|
-
erb = ERB.new(File.read(nginx_config_template_filename))
|
236
|
+
erb = ERB.new(File.read(nginx_config_template_filename), nil, "-")
|
222
237
|
current_user = Etc.getpwuid(Process.uid).name
|
223
238
|
|
224
239
|
# The template requires some helper methods which are defined in start_command.rb.
|
@@ -237,6 +252,10 @@ private
|
|
237
252
|
end
|
238
253
|
end
|
239
254
|
|
255
|
+
def boolean_config_value(val)
|
256
|
+
return val ? "on" : "off"
|
257
|
+
end
|
258
|
+
|
240
259
|
def serialize_strset(*items)
|
241
260
|
if "".respond_to?(:force_encoding)
|
242
261
|
items = items.map { |x| x.force_encoding('binary') }
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010 Phusion
|
2
|
+
# Copyright (c) 2010-2014 Phusion
|
3
3
|
#
|
4
4
|
# "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
5
5
|
#
|
@@ -31,7 +31,7 @@ class HelpCommand < Command
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def run
|
34
|
-
puts "Phusion Passenger Standalone, the easiest way to deploy
|
34
|
+
puts "Phusion Passenger Standalone, the easiest way to deploy web apps."
|
35
35
|
puts
|
36
36
|
puts "Available commands:"
|
37
37
|
puts
|
@@ -186,8 +186,12 @@ private
|
|
186
186
|
wrap_desc("Enable deployment error resistance (Enterprise only)")) do
|
187
187
|
@options[:resist_deployment_errors] = true
|
188
188
|
end
|
189
|
+
opts.on("--friendly-error-pages",
|
190
|
+
wrap_desc("Turn on friendly error pages")) do
|
191
|
+
@options[:friendly_error_pages] = true
|
192
|
+
end
|
189
193
|
opts.on("--no-friendly-error-pages",
|
190
|
-
wrap_desc("
|
194
|
+
wrap_desc("Turn off friendly error pages")) do
|
191
195
|
@options[:friendly_error_pages] = false
|
192
196
|
end
|
193
197
|
opts.on("--ssl",
|
data/resources/mime.types
CHANGED
@@ -82,3 +82,127 @@ Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
|
|
82
82
|
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
|
83
83
|
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
84
84
|
-----END CERTIFICATE-----
|
85
|
+
-----BEGIN CERTIFICATE-----
|
86
|
+
MIIFiTCCBHGgAwIBAgIRAL9IMkS19yW5MiZ4wGzQT2wwDQYJKoZIhvcNAQELBQAw
|
87
|
+
gZAxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
|
88
|
+
BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTYwNAYD
|
89
|
+
VQQDEy1DT01PRE8gUlNBIERvbWFpbiBWYWxpZGF0aW9uIFNlY3VyZSBTZXJ2ZXIg
|
90
|
+
Q0EwHhcNMTMwODA3MDAwMDAwWhcNMTgwODA2MjM1OTU5WjBlMSEwHwYDVQQLExhE
|
91
|
+
b21haW4gQ29udHJvbCBWYWxpZGF0ZWQxFDASBgNVBAsTC1Bvc2l0aXZlU1NMMSow
|
92
|
+
KAYDVQQDEyFvc3MtYmluYXJpZXMucGh1c2lvbnBhc3Nlbmdlci5jb20wggEiMA0G
|
93
|
+
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCotJA5DmU1gX2aSXfLFPNPiRTIF3dx
|
94
|
+
R9LADPSm86VSdkdQuYKP4SfttKi59939ZwiX1e+n3vOQ3oca3NTCKTfs9ZLond3k
|
95
|
+
u+N5xF6LAR8H9l6vwKLfb/BU4Ct3jS1hoYJ424QQIUG9ZocHYk1CnA+l7vodfQDm
|
96
|
+
HR+7VUfuLdCsG/FrlJJtoNODHLJSPq95CxK27GspAFE1s/NqilAgOjB/YYPeDMbJ
|
97
|
+
0qgHaid7Lhi7U4Hl1FE2xEI3fhCJ+XoC8mo/MaRaZHSutWDWZJtbYTvLdhV1vT28
|
98
|
+
vaobQoOV40Pg7T/J89Hj55IiOhADueimVFYbac3lRfyBfLnryfywU3q/AgMBAAGj
|
99
|
+
ggIGMIICAjAfBgNVHSMEGDAWgBSQr2o6lFoL2JDqElZz30O0Oija5zAdBgNVHQ4E
|
100
|
+
FgQUqB8zrscqx9dRl2cEL40fKGwK79AwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB
|
101
|
+
/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMFAGA1UdIARJMEcw
|
102
|
+
OwYMKwYBBAGyMQECAQMEMCswKQYIKwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNv
|
103
|
+
bW9kby5uZXQvQ1BTMAgGBmeBDAECATBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v
|
104
|
+
Y3JsLmNvbW9kb2NhLmNvbS9DT01PRE9SU0FEb21haW5WYWxpZGF0aW9uU2VjdXJl
|
105
|
+
U2VydmVyQ0EuY3JsMIGFBggrBgEFBQcBAQR5MHcwTwYIKwYBBQUHMAKGQ2h0dHA6
|
106
|
+
Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1JTQURvbWFpblZhbGlkYXRpb25TZWN1
|
107
|
+
cmVTZXJ2ZXJDQS5jcnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9kb2Nh
|
108
|
+
LmNvbTBTBgNVHREETDBKgiFvc3MtYmluYXJpZXMucGh1c2lvbnBhc3Nlbmdlci5j
|
109
|
+
b22CJXd3dy5vc3MtYmluYXJpZXMucGh1c2lvbnBhc3Nlbmdlci5jb20wDQYJKoZI
|
110
|
+
hvcNAQELBQADggEBABx5Q+/JG7p7KGGM29reQQWYllY2r/qhkQYYZTpClehECckN
|
111
|
+
DZyweY7JN9yYK5OZK7kEbZnuW0VQm0pRfC0+k1bg9dM0uVrW5BOgAk10qj9y1N3y
|
112
|
+
x6dOtsJ+OGrFu5vK03QDQsYpUwtPMioM4d2Us+2YlfxHqmjRkFuMZvfcS4HHM6v/
|
113
|
+
qrrceb9+tOGi6DPoXV6XixChKZ95h0PJDogc+SFoev4WJOfQSi2VbZywSZVF/brR
|
114
|
+
/4QtWantedDESQAnmWZegEQTNupLIT/HseNR+5s3c7YrDDxHZdAKefOd6cbBomqb
|
115
|
+
uvzhX9c6lX5CZKsl7bq+JBV6fBtzhrqhUspdDXY=
|
116
|
+
-----END CERTIFICATE-----
|
117
|
+
-----BEGIN CERTIFICATE-----
|
118
|
+
MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB
|
119
|
+
hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
|
120
|
+
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
|
121
|
+
BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEy
|
122
|
+
MDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
|
123
|
+
EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
|
124
|
+
Q09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZh
|
125
|
+
bGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
126
|
+
ADCCAQoCggEBAI7CAhnhoFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28Sh
|
127
|
+
bXcDow+G+eMGnD4LgYqbSRutA776S9uMIO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0
|
128
|
+
Qa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4TgllfQcBhglo/uLQeTnaG6
|
129
|
+
ytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh7lgUq/51
|
130
|
+
UHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0n
|
131
|
+
c13cRTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQY
|
132
|
+
MBaAFLuvfgI9+qbxPISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz
|
133
|
+
30O0Oija5zAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNV
|
134
|
+
HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgG
|
135
|
+
BmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNv
|
136
|
+
bS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcB
|
137
|
+
AQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9E
|
138
|
+
T1JTQUFkZFRydXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21v
|
139
|
+
ZG9jYS5jb20wDQYJKoZIhvcNAQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2p
|
140
|
+
mj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/
|
141
|
+
e+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsItG8kO3KdY3RYPBps
|
142
|
+
P0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdoltMY
|
143
|
+
dVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc
|
144
|
+
2bXhc3js9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxG
|
145
|
+
V/Iz2tDIY+3GH5QFlkoakdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4
|
146
|
+
HyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBmGqW5prU5wfWYQ//u+aen/e7KJD2AFsQX
|
147
|
+
j4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODcQgPmlKidrv0PJFGUzpII
|
148
|
+
0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje3WYkN5Ap
|
149
|
+
lBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf
|
150
|
+
+AZxAeKCINT+b72x
|
151
|
+
-----END CERTIFICATE-----
|
152
|
+
-----BEGIN CERTIFICATE-----
|
153
|
+
MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv
|
154
|
+
MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
|
155
|
+
ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
|
156
|
+
eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow
|
157
|
+
gYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
|
158
|
+
BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSswKQYD
|
159
|
+
VQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkq
|
160
|
+
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkehUktIKVrGsDSTdxc9EZ3SZKzejfSNw
|
161
|
+
AHG8U9/E+ioSj0t/EFa9n3Byt2F/yUsPF6c947AEYe7/EZfH9IY+Cvo+XPmT5jR6
|
162
|
+
2RRr55yzhaCCenavcZDX7P0N+pxs+t+wgvQUfvm+xKYvT3+Zf7X8Z0NyvQwA1onr
|
163
|
+
ayzT7Y+YHBSrfuXjbvzYqOSSJNpDa2K4Vf3qwbxstovzDo2a5JtsaZn4eEgwRdWt
|
164
|
+
4Q08RWD8MpZRJ7xnw8outmvqRsfHIKCxH2XeSAi6pE6p8oNGN4Tr6MyBSENnTnIq
|
165
|
+
m1y9TBsoilwie7SrmNnu4FGDwwlGTm0+mfqVF9p8M1dBPI1R7Qu2XK8sYxrfV8g/
|
166
|
+
vOldxJuvRZnio1oktLqpVj3Pb6r/SVi+8Kj/9Lit6Tf7urj0Czr56ENCHonYhMsT
|
167
|
+
8dm74YlguIwoVqwUHZwK53Hrzw7dPamWoUi9PPevtQ0iTMARgexWO/bTouJbt7IE
|
168
|
+
IlKVgJNp6I5MZfGRAy1wdALqi2cVKWlSArvX31BqVUa/oKMoYX9w0MOiqiwhqkfO
|
169
|
+
KJwGRXa/ghgntNWutMtQ5mv0TIZxMOmm3xaG4Nj/QN370EKIf6MzOi5cHkERgWPO
|
170
|
+
GHFrK+ymircxXDpqR+DDeVnWIBqv8mqYqnK8V0rSS527EPywTEHl7R09XiidnMy/
|
171
|
+
s1Hap0flhFMCAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73g
|
172
|
+
JMtUGjAdBgNVHQ4EFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQD
|
173
|
+
AgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9
|
174
|
+
MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVy
|
175
|
+
bmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6
|
176
|
+
Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAGS/g/FfmoXQ
|
177
|
+
zbihKVcN6Fr30ek+8nYEbvFScLsePP9NDXRqzIGCJdPDoCpdTPW6i6FtxFQJdcfj
|
178
|
+
Jw5dhHk3QBN39bSsHNA7qxcS1u80GH4r6XnTq1dFDK8o+tDb5VCViLvfhVdpfZLY
|
179
|
+
Uspzgb8c8+a4bmYRBbMelC1/kZWSWfFMzqORcUx8Rww7Cxn2obFshj5cqsQugsv5
|
180
|
+
B5a6SE2Q8pTIqXOi6wZ7I53eovNNVZ96YUWYGGjHXkBrI/V5eu+MtWuLt29G9Hvx
|
181
|
+
PUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR
|
182
|
+
pu/xO28QOG8=
|
183
|
+
-----END CERTIFICATE-----
|
184
|
+
-----BEGIN CERTIFICATE-----
|
185
|
+
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
|
186
|
+
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
|
187
|
+
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
|
188
|
+
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
|
189
|
+
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
|
190
|
+
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
|
191
|
+
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
|
192
|
+
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
|
193
|
+
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
|
194
|
+
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
|
195
|
+
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
|
196
|
+
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
|
197
|
+
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
|
198
|
+
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
|
199
|
+
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
|
200
|
+
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
|
201
|
+
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
|
202
|
+
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
|
203
|
+
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
|
204
|
+
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
|
205
|
+
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
|
206
|
+
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
|
207
|
+
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
208
|
+
-----END CERTIFICATE-----
|