passenger 4.0.14 → 4.0.16

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.

Files changed (121) hide show
  1. data.tar.gz.asc +7 -7
  2. data/NEWS +69 -0
  3. data/bin/passenger-install-apache2-module +7 -1
  4. data/bin/passenger-install-nginx-module +18 -1
  5. data/build/apache2.rb +25 -1
  6. data/build/basics.rb +7 -4
  7. data/build/debian.rb +72 -25
  8. data/build/nginx.rb +24 -0
  9. data/build/packaging.rb +45 -3
  10. data/debian.template/{control → control.template} +17 -8
  11. data/debian.template/ruby-passenger.install.template +1 -0
  12. data/debian.template/rules.template +9 -3
  13. data/dev/run_travis.sh +14 -0
  14. data/doc/Users guide Apache.idmap.txt +64 -48
  15. data/doc/Users guide Apache.txt +127 -93
  16. data/doc/Users guide Nginx.idmap.txt +46 -28
  17. data/doc/Users guide Nginx.txt +100 -12
  18. data/doc/images/{conservative_spawning.png → direct_spawning.png} +0 -0
  19. data/doc/images/{conservative_spawning.svg → direct_spawning.svg} +0 -0
  20. data/doc/users_guide_snippets/installation.txt +107 -66
  21. data/doc/users_guide_snippets/passenger_spawn_method.txt +1 -1
  22. data/doc/users_guide_snippets/rvm_helper_tool.txt +0 -12
  23. data/doc/users_guide_snippets/tips.txt +70 -3
  24. data/doc/users_guide_snippets/under_the_hood/page_caching_support.txt +2 -0
  25. data/doc/users_guide_snippets/under_the_hood/relationship_with_ruby.txt +114 -0
  26. data/ext/apache2/Configuration.cpp +53 -101
  27. data/ext/apache2/Configuration.hpp +19 -41
  28. data/ext/apache2/ConfigurationCommands.cpp +95 -0
  29. data/ext/apache2/ConfigurationCommands.cpp.erb +91 -0
  30. data/ext/apache2/ConfigurationFields.hpp +59 -0
  31. data/ext/apache2/ConfigurationFields.hpp.erb +89 -0
  32. data/ext/apache2/ConfigurationSetters.cpp +223 -0
  33. data/ext/apache2/ConfigurationSetters.cpp.erb +126 -0
  34. data/ext/apache2/CreateDirConfig.cpp +50 -0
  35. data/ext/apache2/CreateDirConfig.cpp.erb +71 -0
  36. data/ext/apache2/Hooks.cpp +6 -0
  37. data/ext/apache2/MergeDirConfig.cpp +103 -0
  38. data/ext/apache2/MergeDirConfig.cpp.erb +81 -0
  39. data/ext/common/ApplicationPool2/AppTypes.cpp +2 -0
  40. data/ext/common/ApplicationPool2/AppTypes.h +2 -0
  41. data/ext/common/ApplicationPool2/Common.h +1 -1
  42. data/ext/common/ApplicationPool2/Group.h +56 -7
  43. data/ext/common/ApplicationPool2/Implementation.cpp +133 -31
  44. data/ext/common/ApplicationPool2/Options.h +23 -2
  45. data/ext/common/ApplicationPool2/Pool.h +8 -1
  46. data/ext/common/ApplicationPool2/Process.h +9 -0
  47. data/ext/common/ApplicationPool2/Session.h +1 -0
  48. data/ext/common/ApplicationPool2/Spawner.h +21 -19
  49. data/ext/common/ApplicationPool2/SuperGroup.h +1 -1
  50. data/ext/common/Constants.h +21 -17
  51. data/ext/common/Constants.h.erb +1 -1
  52. data/ext/common/Exceptions.h +19 -0
  53. data/ext/common/ServerInstanceDir.h +8 -4
  54. data/ext/common/Utils.cpp +33 -1
  55. data/ext/common/Utils.h +14 -0
  56. data/ext/common/Utils/StrIntUtils.cpp +16 -0
  57. data/ext/common/Utils/StrIntUtils.h +5 -0
  58. data/ext/common/agents/HelperAgent/Main.cpp +5 -5
  59. data/ext/common/agents/HelperAgent/RequestHandler.h +94 -45
  60. data/ext/common/agents/LoggingAgent/Main.cpp +10 -26
  61. data/ext/common/agents/Watchdog/Main.cpp +4 -15
  62. data/ext/nginx/CacheLocationConfig.c +501 -0
  63. data/ext/nginx/CacheLocationConfig.c.erb +140 -0
  64. data/ext/nginx/Configuration.c +29 -453
  65. data/ext/nginx/Configuration.h +3 -21
  66. data/ext/nginx/ConfigurationCommands.c +501 -0
  67. data/ext/nginx/ConfigurationCommands.c.erb +136 -0
  68. data/ext/nginx/ConfigurationFields.h +89 -0
  69. data/ext/nginx/ConfigurationFields.h.erb +85 -0
  70. data/ext/nginx/ContentHandler.c +3 -166
  71. data/ext/nginx/CreateLocationConfig.c +146 -0
  72. data/ext/nginx/CreateLocationConfig.c.erb +70 -0
  73. data/ext/nginx/MergeLocationConfig.c +166 -0
  74. data/ext/nginx/MergeLocationConfig.c.erb +72 -0
  75. data/ext/nginx/config +4 -0
  76. data/ext/oxt/detail/tracable_exception_disabled.hpp +21 -1
  77. data/ext/oxt/detail/tracable_exception_enabled.hpp +4 -1
  78. data/ext/oxt/implementation.cpp +7 -1
  79. data/ext/oxt/macros.hpp +9 -7
  80. data/helper-scripts/backtrace-sanitizer.rb +23 -0
  81. data/helper-scripts/classic-rails-loader.rb +23 -0
  82. data/helper-scripts/classic-rails-preloader.rb +23 -0
  83. data/helper-scripts/download_binaries/extconf.rb +10 -5
  84. data/helper-scripts/meteor-loader.rb +127 -0
  85. data/helper-scripts/node-loader.js +1 -1
  86. data/helper-scripts/rack-preloader.rb +23 -0
  87. data/helper-scripts/system-memory-stats.py +22 -0
  88. data/helper-scripts/touch-dir.sh +48 -0
  89. data/lib/phusion_passenger.rb +1 -1
  90. data/lib/phusion_passenger/apache2/config_options.rb +104 -0
  91. data/lib/phusion_passenger/constants.rb +8 -0
  92. data/lib/phusion_passenger/native_support.rb +9 -1
  93. data/lib/phusion_passenger/nginx/config_options.rb +328 -0
  94. data/lib/phusion_passenger/packaging.rb +2 -2
  95. data/lib/phusion_passenger/platform_info/apache.rb +8 -0
  96. data/lib/phusion_passenger/platform_info/compiler.rb +2 -2
  97. data/lib/phusion_passenger/rails3_extensions/init.rb +19 -4
  98. data/lib/phusion_passenger/ruby_core_enhancements.rb +4 -1
  99. data/lib/phusion_passenger/standalone/app_finder.rb +3 -2
  100. data/lib/phusion_passenger/standalone/command.rb +1 -0
  101. data/lib/phusion_passenger/standalone/runtime_installer.rb +1 -6
  102. data/lib/phusion_passenger/standalone/runtime_locator.rb +9 -2
  103. data/lib/phusion_passenger/standalone/start_command.rb +45 -9
  104. data/lib/phusion_passenger/utils.rb +4 -1
  105. data/resources/templates/{nginx → installer_common}/run_installer_as_root.txt.erb +3 -1
  106. data/resources/templates/nginx/nginx_module_sources_not_available.txt.erb +6 -0
  107. data/resources/templates/standalone/config.erb +8 -8
  108. data/test/cxx/ApplicationPool2/PoolTest.cpp +120 -3
  109. data/test/cxx/RequestHandlerTest.cpp +66 -3
  110. data/test/integration_tests/native_packaging_spec.rb +41 -0
  111. data/test/integration_tests/nginx_tests.rb +1 -0
  112. data/test/integration_tests/standalone_tests.rb +4 -0
  113. data/test/ruby/shared/rails/analytics_logging_extensions_sharedspec.rb +22 -0
  114. data/test/stub/rails3.0/config/initializers/passenger.rb +2 -1
  115. data/test/stub/rails3.1/config/initializers/passenger.rb +2 -1
  116. data/test/stub/rails3.2/config/initializers/passenger.rb +2 -1
  117. data/test/stub/rails4.0/config/initializers/passenger.rb +5 -1
  118. data/test/stub/wsgi/passenger_wsgi.py +5 -0
  119. metadata +32 -7
  120. metadata.gz.asc +7 -7
  121. data/resources/templates/apache2/run_installer_as_root.txt.erb +0 -8
@@ -31,6 +31,7 @@ namespace tut {
31
31
  BackgroundEventLoop bg;
32
32
  SpawnerFactoryPtr spawnerFactory;
33
33
  PoolPtr pool;
34
+ Pool::DebugSupportPtr debug;
34
35
  shared_ptr<RequestHandler> handler;
35
36
  FileDescriptor connection;
36
37
  map<string, string> defaultHeaders;
@@ -73,6 +74,11 @@ namespace tut {
73
74
  bg.start();
74
75
  }
75
76
 
77
+ void initPoolDebugging() {
78
+ pool->initDebugging();
79
+ debug = pool->debugSupport;
80
+ }
81
+
76
82
  FileDescriptor &connect() {
77
83
  connection = connectToUnixServer(serverFilename);
78
84
  return connection;
@@ -802,9 +808,9 @@ namespace tut {
802
808
  // Get a reference to the orignal process and verify oobw has been requested.
803
809
  ProcessPtr origProcess;
804
810
  {
805
- unique_lock<boost::mutex> lock(pool->syncher);
811
+ LockGuard l(pool->syncher);
806
812
  origProcess = pool->superGroups.get(wsgiAppPath)->defaultGroup->disablingProcesses.front();
807
- ensure(origProcess->oobwStatus == Process::OOBW_REQUESTED);
813
+ ensure("OOBW requested", origProcess->oobwStatus == Process::OOBW_IN_PROGRESS);
808
814
  }
809
815
  ensure("sanity check", origPid == origProcess->pid); // just a sanity check
810
816
 
@@ -817,7 +823,7 @@ namespace tut {
817
823
  "PATH_INFO", "/pid",
818
824
  NULL);
819
825
  string response = readAll(connection);
820
- ensure(containsSubstring(response, "Status: 200 OK\r\n"));
826
+ ensure("status is 200", containsSubstring(response, "Status: 200 OK\r\n"));
821
827
  pid = atoi(stripHeaders(response));
822
828
  result = (pid != origPid);
823
829
  );
@@ -851,6 +857,63 @@ namespace tut {
851
857
  ensure(result.find("Date: ") != string::npos);
852
858
  }
853
859
 
860
+ TEST_METHOD(48) {
861
+ set_test_name("It should write an appropriate response if the request queue is overflown");
862
+
863
+ initPoolDebugging();
864
+ debug->restarting = false;
865
+ debug->spawning = false;
866
+ debug->testOverflowRequestQueue = true;
867
+ init();
868
+ connect();
869
+ sendHeaders(defaultHeaders,
870
+ "PASSENGER_APP_ROOT", wsgiAppPath.c_str(),
871
+ "PATH_INFO", "/",
872
+ NULL);
873
+ string response = readAll(connection);
874
+ ensure(response.find("Status: 503 Service Unavailable") != string::npos);
875
+ ensure(response.find("This website is under heavy load") != string::npos);
876
+ }
877
+
878
+ TEST_METHOD(49) {
879
+ set_test_name("It should use the status code dictated by PASSENGER_REQUEST_QUEUE_OVERFLOW_STATUS_CODE "
880
+ "if the request queue is overflown");
881
+
882
+ initPoolDebugging();
883
+ debug->restarting = false;
884
+ debug->spawning = false;
885
+ debug->testOverflowRequestQueue = true;
886
+ init();
887
+ connect();
888
+ sendHeaders(defaultHeaders,
889
+ "PASSENGER_APP_ROOT", wsgiAppPath.c_str(),
890
+ "PATH_INFO", "/",
891
+ "PASSENGER_REQUEST_QUEUE_OVERFLOW_STATUS_CODE", "504",
892
+ NULL);
893
+ string response = readAll(connection);
894
+ ensure(response.find("Status: 504 Gateway Timeout") != string::npos);
895
+ ensure(response.find("This website is under heavy load") != string::npos);
896
+ }
897
+
898
+ TEST_METHOD(50) {
899
+ set_test_name("PASSENGER_REQUEST_QUEUE_OVERFLOW_STATUS_CODE should work even if it is an unknown code");
900
+
901
+ initPoolDebugging();
902
+ debug->restarting = false;
903
+ debug->spawning = false;
904
+ debug->testOverflowRequestQueue = true;
905
+ init();
906
+ connect();
907
+ sendHeaders(defaultHeaders,
908
+ "PASSENGER_APP_ROOT", wsgiAppPath.c_str(),
909
+ "PATH_INFO", "/",
910
+ "PASSENGER_REQUEST_QUEUE_OVERFLOW_STATUS_CODE", "604",
911
+ NULL);
912
+ string response = readAll(connection);
913
+ ensure(response.find("Status: 604 Unknown Reason-Phrase") != string::npos);
914
+ ensure(response.find("This website is under heavy load") != string::npos);
915
+ }
916
+
854
917
  // Test small response buffering.
855
918
  // Test large response buffering.
856
919
  }
@@ -35,6 +35,9 @@ abort "Please set the LOCATIONS_INI environment variable to the right locations.
35
35
  source_root = File.expand_path("../..", File.dirname(__FILE__))
36
36
  $LOAD_PATH.unshift("#{source_root}/lib")
37
37
  require 'phusion_passenger'
38
+ require 'tmpdir'
39
+ require 'fileutils'
40
+ require 'open-uri'
38
41
 
39
42
  BINDIR = "/usr/bin"
40
43
  SBINDIR = "/usr/sbin"
@@ -60,6 +63,12 @@ describe "A natively packaged Phusion Passenger" do
60
63
  return capture_output("which #{command}")
61
64
  end
62
65
 
66
+ def sh(*command)
67
+ if !system(*command)
68
+ abort "Command failed: #{command.join(' ')}"
69
+ end
70
+ end
71
+
63
72
  specify "locations.ini only refers to existent filesystem locations" do
64
73
  File.read(LOCATIONS_INI).split("\n").each do |line|
65
74
  if line =~ /=/
@@ -199,4 +208,36 @@ describe "A natively packaged Phusion Passenger" do
199
208
  output.should include("PassengerRoot #{LOCATIONS_INI}")
200
209
  end
201
210
  end
211
+
212
+ describe "Passenger Standalone" do
213
+ it "is in #{BINDIR}" do
214
+ which("passenger").should == "#{BINDIR}/passenger"
215
+ end
216
+
217
+ it "works" do
218
+ Dir.mktmpdir do |dir|
219
+ File.chmod(0755, dir)
220
+ Dir.chdir(dir) do
221
+ File.open("config.ru", "w") do |f|
222
+ f.write(%Q{
223
+ app = lambda do |env|
224
+ [200, { "Content-Type" => "text/plain" }, ["ok"]]
225
+ end
226
+ run app
227
+ })
228
+ end
229
+ Dir.mkdir("public")
230
+ Dir.mkdir("tmp")
231
+ sh("passenger start --no-compile-runtime -p 4000 -d >/dev/null")
232
+ begin
233
+ open("http://127.0.0.1:4000/") do |f|
234
+ f.read.should == "ok"
235
+ end
236
+ ensure
237
+ sh("passenger stop -p 4000")
238
+ end
239
+ end
240
+ end
241
+ end
242
+ end
202
243
  end
@@ -281,6 +281,7 @@ describe "Phusion Passenger for Nginx" do
281
281
  create_nginx_controller
282
282
  @server = "http://passenger.test:#{@nginx.port}"
283
283
  @stub = RackStub.new('rack')
284
+ @nginx.set(:max_pool_size => 2)
284
285
  @nginx.add_server do |server|
285
286
  server[:server_name] = "passenger.test"
286
287
  server[:root] = "#{@stub.full_app_root}/public"
@@ -13,6 +13,8 @@ ENV['PATH'] = "#{PhusionPassenger.bin_dir}:#{ENV['PATH']}"
13
13
  # This environment variable changes Passenger Standalone's behavior,
14
14
  # so ensure that it's not set.
15
15
  ENV.delete('PASSENGER_DEBUG')
16
+ ENV['PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY'] = '0'
17
+ ENV['PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY'] = '0'
16
18
 
17
19
  describe "Passenger Standalone" do
18
20
  after :each do
@@ -234,7 +236,9 @@ describe "Passenger Standalone" do
234
236
  File.exist?("#{PhusionPassenger.source_root}/buildout").should be_false
235
237
 
236
238
  test_serving_application("#{command} --no-compile-runtime")
239
+ File.exist?("#{PhusionPassenger.source_root}/buildout").should be_false
237
240
  ensure
241
+ FileUtils.rm_rf("#{PhusionPassenger.source_root}/buildout")
238
242
  File.rename("#{PhusionPassenger.source_root}/buildout.renamed",
239
243
  "#{PhusionPassenger.source_root}/buildout")
240
244
  end
@@ -167,6 +167,28 @@ shared_examples_for "analytics logging extensions for Rails" do
167
167
  log =~ /END: DB BENCHMARK: .* \(.*\)$/
168
168
  end
169
169
  end
170
+
171
+ it "applies event preprocessor to log events" do
172
+ File.write("#{@stub.app_root}/app/controllers/foo_controller.rb", %Q{
173
+ class FooController < ActionController::Base
174
+ def index
175
+ db = ActiveRecord::Base.connection
176
+ db.execute("CREATE TABLE foobar (id INT)--secret")
177
+ db.execute("INSERT INTO foobar VALUES (1)")
178
+ render :nothing => true
179
+ end
180
+ end
181
+ })
182
+ start!(@options.merge("active_record" => true))
183
+ send_request_to_app("PATH_INFO" => "/foo")
184
+ extra_info_regex = Regexp.escape(base64("SQL\nCREATE TABLE foobar (id INT)--PASSWORD"))
185
+ eventually(5) do
186
+ flush_logging_agent(@logging_agent_password, @socket_address)
187
+ log = read_log
188
+ log =~ /BEGIN: DB BENCHMARK: .* \(.*\) #{extra_info_regex}$/ &&
189
+ log =~ /END: DB BENCHMARK: .* \(.*\)$/
190
+ end
191
+ end
170
192
 
171
193
  it "logs failed SQL queries" do
172
194
  File.write("#{@stub.app_root}/app/controllers/foo_controller.rb", %Q{
@@ -1 +1,2 @@
1
- PhusionPassenger.install_framework_extensions! if defined?(PhusionPassenger)
1
+ event_preprocessor = lambda { |e| e.payload[:sql].gsub!("secret","PASSWORD") if e.payload[:sql] }
2
+ PhusionPassenger.install_framework_extensions!(:event_preprocessor => event_preprocessor ) if defined?(PhusionPassenger)
@@ -1 +1,2 @@
1
- PhusionPassenger.install_framework_extensions! if defined?(PhusionPassenger)
1
+ event_preprocessor = lambda { |e| e.payload[:sql].gsub!("secret","PASSWORD") if e.payload[:sql] }
2
+ PhusionPassenger.install_framework_extensions!(:event_preprocessor => event_preprocessor ) if defined?(PhusionPassenger)
@@ -1 +1,2 @@
1
- PhusionPassenger.install_framework_extensions! if defined?(PhusionPassenger)
1
+ event_preprocessor = lambda { |e| e.payload[:sql].gsub!("secret","PASSWORD") if e.payload[:sql] }
2
+ PhusionPassenger.install_framework_extensions!(:event_preprocessor => event_preprocessor ) if defined?(PhusionPassenger)
@@ -1 +1,5 @@
1
- PhusionPassenger.install_framework_extensions! if defined?(PhusionPassenger)
1
+ if defined?(PhusionPassenger)
2
+ PhusionPassenger.install_framework_extensions!(
3
+ event_preprocessor: ->(e) { e.payload[:sql].gsub!("secret","PASSWORD") if e.payload[:sql] }
4
+ )
5
+ end
@@ -60,6 +60,11 @@ def application(env, start_response):
60
60
  i += 1
61
61
  start_response(status, [('Content-Type', 'text/html'), ('Transfer-Encoding', 'chunked')])
62
62
  return body()
63
+ elif path == '/sleep':
64
+ sleep_time = float(env.get('HTTP_X_SLEEP', 5))
65
+ time.sleep(sleep_time)
66
+ status = 200
67
+ body = 'ok'
63
68
  elif path == '/blob':
64
69
  size = int(env.get('HTTP_X_SIZE', 1024 * 1024 * 10))
65
70
  def body():
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passenger
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.14
4
+ version: 4.0.16
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-19 00:00:00.000000000 Z
12
+ date: 2013-09-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -109,6 +109,7 @@ files:
109
109
  - lib/phusion_passenger/admin_tools/server_instance.rb
110
110
  - lib/phusion_passenger/admin_tools.rb
111
111
  - lib/phusion_passenger/analytics_logger.rb
112
+ - lib/phusion_passenger/apache2/config_options.rb
112
113
  - lib/phusion_passenger/classic_rails/cgi_fixed.rb
113
114
  - lib/phusion_passenger/classic_rails/thread_handler_extension.rb
114
115
  - lib/phusion_passenger/common_library.rb
@@ -119,6 +120,7 @@ files:
119
120
  - lib/phusion_passenger/message_channel.rb
120
121
  - lib/phusion_passenger/message_client.rb
121
122
  - lib/phusion_passenger/native_support.rb
123
+ - lib/phusion_passenger/nginx/config_options.rb
122
124
  - lib/phusion_passenger/packaging.rb
123
125
  - lib/phusion_passenger/platform_info/apache.rb
124
126
  - lib/phusion_passenger/platform_info/apache_detector.rb
@@ -182,8 +184,8 @@ files:
182
184
  - doc/DebuggingAndStressTesting.md
183
185
  - doc/definitions.h
184
186
  - doc/images/by_sa.png
185
- - doc/images/conservative_spawning.png
186
- - doc/images/conservative_spawning.svg
187
+ - doc/images/direct_spawning.png
188
+ - doc/images/direct_spawning.svg
187
189
  - doc/images/glyphicons-halflings-white.png
188
190
  - doc/images/glyphicons-halflings.png
189
191
  - doc/images/icons/callouts/1.png
@@ -256,13 +258,14 @@ files:
256
258
  - doc/users_guide_snippets/support_information.txt
257
259
  - doc/users_guide_snippets/tips.txt
258
260
  - doc/users_guide_snippets/under_the_hood/page_caching_support.txt
261
+ - doc/users_guide_snippets/under_the_hood/relationship_with_ruby.txt
259
262
  - man/passenger-config.1
260
263
  - man/passenger-memory-stats.8
261
264
  - man/passenger-status.8
262
265
  - man/passenger-stress-test.1
263
266
  - debian.template/changelog
264
267
  - debian.template/compat
265
- - debian.template/control
268
+ - debian.template/control.template
266
269
  - debian.template/copyright
267
270
  - debian.template/libapache2-mod-passenger.install
268
271
  - debian.template/libapache2-mod-passenger.postinst
@@ -308,11 +311,13 @@ files:
308
311
  - helper-scripts/classic-rails-loader.rb
309
312
  - helper-scripts/classic-rails-preloader.rb
310
313
  - helper-scripts/download_binaries/extconf.rb
314
+ - helper-scripts/meteor-loader.rb
311
315
  - helper-scripts/node-loader.js
312
316
  - helper-scripts/prespawn
313
317
  - helper-scripts/rack-loader.rb
314
318
  - helper-scripts/rack-preloader.rb
315
319
  - helper-scripts/system-memory-stats.py
320
+ - helper-scripts/touch-dir.sh
316
321
  - helper-scripts/wsgi-loader.py
317
322
  - helper-scripts/wsgi-preloader.py
318
323
  - ext/common/agents/Base.cpp
@@ -440,21 +445,41 @@ files:
440
445
  - ext/common/Constants.h.erb
441
446
  - ext/apache2/Bucket.cpp
442
447
  - ext/apache2/Configuration.cpp
448
+ - ext/apache2/ConfigurationCommands.cpp
449
+ - ext/apache2/ConfigurationSetters.cpp
450
+ - ext/apache2/CreateDirConfig.cpp
443
451
  - ext/apache2/Hooks.cpp
452
+ - ext/apache2/MergeDirConfig.cpp
444
453
  - ext/apache2/Bucket.h
445
454
  - ext/apache2/Configuration.h
446
455
  - ext/apache2/DirectoryMapper.h
447
456
  - ext/apache2/Hooks.h
448
457
  - ext/apache2/Configuration.hpp
458
+ - ext/apache2/ConfigurationFields.hpp
449
459
  - ext/apache2/mod_passenger.c
460
+ - ext/apache2/ConfigurationCommands.cpp.erb
461
+ - ext/apache2/ConfigurationFields.hpp.erb
462
+ - ext/apache2/ConfigurationSetters.cpp.erb
463
+ - ext/apache2/CreateDirConfig.cpp.erb
464
+ - ext/apache2/MergeDirConfig.cpp.erb
465
+ - ext/nginx/CacheLocationConfig.c
450
466
  - ext/nginx/Configuration.c
467
+ - ext/nginx/ConfigurationCommands.c
451
468
  - ext/nginx/ContentHandler.c
469
+ - ext/nginx/CreateLocationConfig.c
470
+ - ext/nginx/MergeLocationConfig.c
452
471
  - ext/nginx/ngx_http_passenger_module.c
453
472
  - ext/nginx/StaticContentHandler.c
454
473
  - ext/nginx/Configuration.h
474
+ - ext/nginx/ConfigurationFields.h
455
475
  - ext/nginx/ContentHandler.h
456
476
  - ext/nginx/ngx_http_passenger_module.h
457
477
  - ext/nginx/StaticContentHandler.h
478
+ - ext/nginx/CacheLocationConfig.c.erb
479
+ - ext/nginx/ConfigurationCommands.c.erb
480
+ - ext/nginx/ConfigurationFields.h.erb
481
+ - ext/nginx/CreateLocationConfig.c.erb
482
+ - ext/nginx/MergeLocationConfig.c.erb
458
483
  - ext/nginx/config
459
484
  - ext/boost/algorithm/string/case_conv.hpp
460
485
  - ext/boost/algorithm/string/compare.hpp
@@ -2256,26 +2281,26 @@ files:
2256
2281
  - resources/templates/apache2/deployment_example.txt.erb
2257
2282
  - resources/templates/apache2/no_write_permission_to_passenger_root.txt.erb
2258
2283
  - resources/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb
2259
- - resources/templates/apache2/run_installer_as_root.txt.erb
2260
2284
  - resources/templates/apache2/welcome.txt.erb
2261
2285
  - resources/templates/error_layout.css
2262
2286
  - resources/templates/error_layout.html.template
2263
2287
  - resources/templates/general_error.html.template
2264
2288
  - resources/templates/general_error_with_html.html.template
2265
2289
  - resources/templates/installer_common/low_amount_of_memory_warning.txt.erb
2290
+ - resources/templates/installer_common/run_installer_as_root.txt.erb
2266
2291
  - resources/templates/nginx/ask_for_extra_configure_flags.txt.erb
2267
2292
  - resources/templates/nginx/cannot_write_to_dir.txt.erb
2268
2293
  - resources/templates/nginx/config_snippets.txt.erb
2269
2294
  - resources/templates/nginx/config_snippets_inserted.txt.erb
2270
2295
  - resources/templates/nginx/confirm_extra_configure_flags.txt.erb
2271
2296
  - resources/templates/nginx/deployment_example.txt.erb
2297
+ - resources/templates/nginx/nginx_module_sources_not_available.txt.erb
2272
2298
  - resources/templates/nginx/pcre_checksum_could_not_be_verified.txt.erb
2273
2299
  - resources/templates/nginx/pcre_could_not_be_downloaded.txt.erb
2274
2300
  - resources/templates/nginx/pcre_could_not_be_extracted.txt.erb
2275
2301
  - resources/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb
2276
2302
  - resources/templates/nginx/possible_solutions_for_download_and_extraction_problems.txt.erb
2277
2303
  - resources/templates/nginx/query_download_and_install.txt.erb
2278
- - resources/templates/nginx/run_installer_as_root.txt.erb
2279
2304
  - resources/templates/nginx/welcome.txt.erb
2280
2305
  - resources/templates/standalone/cannot_write_to_dir.txt.erb
2281
2306
  - resources/templates/standalone/config.erb
metadata.gz.asc CHANGED
@@ -2,11 +2,11 @@
2
2
  Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
3
3
  Comment: GPGTools - http://gpgtools.org
4
4
 
5
- iQEcBAABAgAGBQJSEm1+AAoJECrHRaUKISqMbS8H/AqQwpqtfJ2nzmQTlLg9ePVV
6
- Z1BJbm4OFlbjONYhdtNxg6fCqj5AVIN1qa+pQSnXXMYdIqk8wZbCWjzOpYGFpZpS
7
- N9ZRiVdFXoCVd/yYE/o9CStTXA5C7p/VFYespyL8qrqrgcjC6OncMOTQnnRl0TJT
8
- hnMo/MIHS6CoD+0+mvBjyJWzxcgyiWpEShNJ0hPeWsNET/UsQCt8WwTJ99luI+Q7
9
- SFOZF+PnCg+xkPYkrfxVl4+lCNmV5+KbSuuL9Oa1BJCSsRvu5SMpTgJw2eKVYVy/
10
- JqfWbTFGWIdlBZuH2VhHCvX5NAJwnZsLze7oTmHOOTYGUKpsZ3WvIMFsuEAsTEA=
11
- =vDNO
5
+ iQEcBAABAgAGBQJSKZrGAAoJECrHRaUKISqMSgEH/0piSIDZIAab2vN4/ds5hfCC
6
+ FcOPzSBreoKcCGVZlY+HBnS5DIRMpYr9OYhIUtJUHWxAcyfdSvU5MoaCRHFvVFEK
7
+ s2j+gtX22SccQBfukx50d6EVBOTh8r7Aq0/Uq8EDqkq8Zd/1UcB3xcfRDhQ73OXW
8
+ Tqe/KC7zlXw4JEClvw3s9gFOUepXWCTQex2fnkmDLNm3PQIGVc+ePuCFAbZK97gj
9
+ L7O8Ug3lYJ1WdLQKPTx64Z2GXq5IWPnq6zTvCfzDvuSnI+UCC5K7ZBtpKk5973el
10
+ V8Ii+y0/wdLxeWztBdDHEeQAhnEqZHRRAaDCAUhXSmFeD5nJM+dcLCZQCexvnCM=
11
+ =0YE2
12
12
  -----END PGP SIGNATURE-----
@@ -1,8 +0,0 @@
1
- <red>Permission problems</red>
2
-
3
- This installer must be able to write to the following directory:
4
-
5
- <b><%= @path || ::PASSENGER_ROOT %></b>
6
-
7
- But it can't do that, because you're running the installer as <b><%= `whoami`.strip %></b>.
8
- Please re-run this installer as <b>root</b>.