passenger 4.0.24 → 4.0.25

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 (37) hide show
  1. data.tar.gz.asc +7 -7
  2. data/INSTALL.md +2 -2
  3. data/NEWS +12 -0
  4. data/README.md +14 -6
  5. data/build/packaging.rb +3 -1
  6. data/doc/Users guide Apache.idmap.txt +19 -17
  7. data/doc/Users guide Apache.txt +146 -95
  8. data/doc/Users guide Nginx.txt +6 -6
  9. data/doc/Users guide Standalone.idmap.txt +19 -15
  10. data/doc/Users guide Standalone.txt +26 -1
  11. data/doc/Users guide.txt +9 -0
  12. data/doc/images/passenger_nodejs_architecture.svg +558 -0
  13. data/doc/users_guide_snippets/installation.txt +19 -16
  14. data/ext/common/AgentsStarter.h +1 -11
  15. data/ext/common/ApplicationPool2/AppTypes.cpp +5 -0
  16. data/ext/common/ApplicationPool2/AppTypes.h +1 -0
  17. data/ext/common/ApplicationPool2/Options.h +8 -4
  18. data/ext/common/ApplicationPool2/Spawner.h +1 -0
  19. data/ext/common/Constants.h +2 -2
  20. data/ext/common/ServerInstanceDir.h +9 -24
  21. data/ext/common/agents/HelperAgent/RequestHandler.h +1 -0
  22. data/ext/nginx/CacheLocationConfig.c +40 -0
  23. data/ext/nginx/ConfigurationCommands.c +30 -0
  24. data/ext/nginx/ConfigurationFields.h +6 -0
  25. data/ext/nginx/ContentHandler.c +40 -32
  26. data/ext/nginx/CreateLocationConfig.c +15 -0
  27. data/ext/nginx/MergeLocationConfig.c +18 -0
  28. data/helper-scripts/node-loader.js +2 -1
  29. data/lib/phusion_passenger.rb +3 -3
  30. data/lib/phusion_passenger/constants.rb +1 -1
  31. data/lib/phusion_passenger/nginx/config_options.rb +13 -0
  32. data/lib/phusion_passenger/standalone/start_command.rb +19 -2
  33. data/lib/phusion_passenger/utils/tmpdir.rb +0 -1
  34. data/resources/templates/standalone/config.erb +8 -1
  35. data/test/integration_tests/native_packaging_spec.rb +14 -4
  36. metadata +3 -2
  37. metadata.gz.asc +7 -7
@@ -177,3 +177,21 @@
177
177
  NGX_CONF_UNSET);
178
178
 
179
179
 
180
+
181
+ ngx_conf_merge_str_value(conf->restart_dir,
182
+ prev->restart_dir,
183
+ NULL);
184
+
185
+
186
+
187
+ ngx_conf_merge_str_value(conf->app_type,
188
+ prev->app_type,
189
+ NULL);
190
+
191
+
192
+
193
+ ngx_conf_merge_str_value(conf->startup_file,
194
+ prev->startup_file,
195
+ NULL);
196
+
197
+
@@ -112,7 +112,8 @@ function configure(_options) {
112
112
  }
113
113
 
114
114
  function loadApplication() {
115
- require(PhusionPassenger.options.app_root + '/app.js');
115
+ var startupFile = PhusionPassenger.options.startup_file || 'app.js';
116
+ require(PhusionPassenger.options.app_root + '/' + startupFile);
116
117
  }
117
118
 
118
119
  function extractCallback(args) {
@@ -30,10 +30,10 @@ module PhusionPassenger
30
30
 
31
31
  PACKAGE_NAME = 'passenger'
32
32
  # Run 'rake ext/common/Constants.h' after changing this number.
33
- VERSION_STRING = '4.0.24'
33
+ VERSION_STRING = '4.0.25'
34
34
 
35
- PREFERRED_NGINX_VERSION = '1.4.3'
36
- NGINX_SHA256_CHECKSUM = 'ae123885c923a6c3f5bab0a8b7296ef21c4fdf6087834667ebbc16338177de84'
35
+ PREFERRED_NGINX_VERSION = '1.4.4'
36
+ NGINX_SHA256_CHECKSUM = '7c989a58e5408c9593da0bebcd0e4ffc3d892d1316ba5042ddb0be5b0b4102b9'
37
37
 
38
38
  PREFERRED_PCRE_VERSION = '8.32'
39
39
  PCRE_SHA256_CHECKSUM = 'd5d8634b36baf3d08be442a627001099583b397f456bc795304a013383b6423a'
@@ -64,7 +64,7 @@ module PhusionPassenger
64
64
  PASSENGER_VERSION = PhusionPassenger::VERSION_STRING
65
65
  SERVER_INSTANCE_DIR_STRUCTURE_MAJOR_VERSION = 1
66
66
  SERVER_INSTANCE_DIR_STRUCTURE_MINOR_VERSION = 0
67
- SERVER_INSTANCE_DIR_GENERATION_STRUCTURE_MAJOR_VERSION = 2
67
+ SERVER_INSTANCE_DIR_GENERATION_STRUCTURE_MAJOR_VERSION = 3
68
68
  SERVER_INSTANCE_DIR_GENERATION_STRUCTURE_MINOR_VERSION = 0
69
69
 
70
70
  # Misc
@@ -250,6 +250,19 @@ LOCATION_CONFIGURATION_OPTIONS = [
250
250
  :name => 'passenger_request_queue_overflow_status_code',
251
251
  :type => :integer
252
252
  },
253
+ {
254
+ :name => 'passenger_restart_dir',
255
+ :type => :string
256
+ },
257
+ {
258
+ :name => 'passenger_app_type',
259
+ :type => :string,
260
+ :header => nil
261
+ },
262
+ {
263
+ :name => 'passenger_startup_file',
264
+ :type => :string
265
+ },
253
266
 
254
267
  ###### Enterprise features ######
255
268
  {
@@ -146,8 +146,17 @@ private
146
146
  @options[:environment] = value
147
147
  end
148
148
  opts.on("-R", "--rackup FILE", String,
149
- wrap_desc("If Rack application detected, run this rackup file")) do |value|
150
- ENV["RACKUP_FILE"] = value
149
+ wrap_desc("Consider application a Ruby Rack app, and use the given rackup file")) do |value|
150
+ @options[:app_type] = "rack"
151
+ @options[:startup_file] = value
152
+ end
153
+ opts.on("--app-type NAME", String,
154
+ wrap_desc("Force app to be detected as the given type")) do |value|
155
+ @options[:app_type] = value
156
+ end
157
+ opts.on("--startup-file FILENAME", String,
158
+ wrap_desc("Force given startup file to be used")) do |value|
159
+ @options[:startup_file] = value
151
160
  end
152
161
  opts.on("--max-pool-size NUMBER", Integer,
153
162
  wrap_desc("Maximum number of application processes (default: #{@options[:max_pool_size]})")) do |value|
@@ -193,6 +202,14 @@ private
193
202
  wrap_desc("Specify the SSL key path")) do |val|
194
203
  @options[:ssl_certificate_key] = File.expand_path(val)
195
204
  end
205
+ opts.on("--static-files-dir PATH", String,
206
+ wrap_desc("Specify the static files dir")) do |val|
207
+ @options[:static_files_dir] = File.expand_path(val)
208
+ end
209
+ opts.on("--restart-dir PATH", String,
210
+ wrap_desc("Specify the restart dir")) do |val|
211
+ @options[:restart_dir] = File.expand_path(val)
212
+ end
196
213
  opts.on("--union-station-gateway HOST:PORT", String,
197
214
  wrap_desc("Specify Union Station Gateway host and port")) do |value|
198
215
  host, port = value.split(":", 2)
@@ -57,7 +57,6 @@ protected
57
57
  system("mkdir", "-p", "-m", "u=rwxs,g=rwx,o=rwx", dir)
58
58
  system("mkdir", "-p", "-m", "u=rwxs,g=rwx,o=rwx", "#{dir}/generation-0")
59
59
  system("mkdir", "-p", "-m", "u=rwxs,g=rwx,o=rwx", "#{dir}/backends")
60
- system("mkdir", "-p", "-m", "u=rwxs,g=rwx,o=rwx", "#{dir}/spawn-server")
61
60
  end
62
61
  return dir
63
62
  end
@@ -89,14 +89,21 @@ http {
89
89
  server {
90
90
  listen <%= nginx_listen_address(app) %> <%= "ssl" if app[:ssl] %>;
91
91
  server_name <%= app[:server_names].join(' ') %>;
92
- root '<%= app[:root] %>/public';
92
+ <% if app[:static_files_dir] %>
93
+ root '<%= app[:static_files_dir] %>';
94
+ <% else %>
95
+ root '<%= app[:root] %>/public';
96
+ <% end %>
93
97
  passenger_app_root '<%= app[:root] %>';
94
98
  passenger_enabled on;
95
99
  passenger_app_env <%= app[:environment] %>;
96
100
  passenger_spawn_method <%= app[:spawn_method] %>;
101
+ <% if app[:app_type] %>passenger_app_type <%= app[:app_type] %>;<% end %>
102
+ <% if app[:startup_file] %>passenger_startup_file <%= app[:startup_file] %>;<% end %>
97
103
  <% if app[:concurrency_model] != DEFAULT_CONCURRENCY_MODEL %>passenger_concurrency_model <%= app[:concurrency_model] %>;<% end %>
98
104
  <% if app[:thread_count] != DEFAULT_THREAD_COUNT %>passenger_thread_count <%= app[:thread_count] %>;<% end %>
99
105
  <% if app[:min_instances] %>passenger_min_instances <%= app[:min_instances] %>;<% end %>
106
+ <% if app[:restart_dir] %>passenger_restart_dir '<%= app[:restart_dir] %>';<% end %>
100
107
  <% if app[:union_station_key] %>
101
108
  union_station_support on;
102
109
  union_station_key <%= app[:union_station_key] %>;
@@ -80,10 +80,6 @@ describe "A natively packaged Phusion Passenger" do
80
80
  end
81
81
  end
82
82
 
83
- specify "passenger-install-nginx-module is in #{BINDIR}" do
84
- which("passenger-install-nginx-module").should == "#{BINDIR}/passenger-install-nginx-module"
85
- end
86
-
87
83
  specify "passenger-status is in #{SBINDIR}" do
88
84
  which("passenger-status").should == "#{SBINDIR}/passenger-status"
89
85
  end
@@ -209,6 +205,20 @@ describe "A natively packaged Phusion Passenger" do
209
205
  end
210
206
  end
211
207
 
208
+ describe "passenger-install-nginx-module" do
209
+ it "is in #{BINDIR}" do
210
+ which("passenger-install-nginx-module").should == "#{BINDIR}/passenger-install-nginx-module"
211
+ end
212
+
213
+ it "is able to compile Nginx" do
214
+ Dir.mktmpdir do |path|
215
+ output = capture_output("passenger-install-nginx-module --auto --prefix=#{path} --auto-download 2>&1")
216
+ output.should include("passenger_root #{LOCATIONS_INI};")
217
+ File.exist?("#{path}/sbin/nginx").should be_true
218
+ end
219
+ end
220
+ end
221
+
212
222
  describe "Passenger Standalone" do
213
223
  it "is in #{BINDIR}" do
214
224
  which("passenger").should == "#{BINDIR}/passenger"
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.24
4
+ version: 4.0.25
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-11-14 00:00:00.000000000 Z
12
+ date: 2013-11-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -222,6 +222,7 @@ files:
222
222
  - doc/images/many_web_framework_protocols.png
223
223
  - doc/images/passenger_architecture.png
224
224
  - doc/images/passenger_architecture.svg
225
+ - doc/images/passenger_nodejs_architecture.svg
225
226
  - doc/images/phusion_banner.png
226
227
  - doc/images/phusion_banner_small.png
227
228
  - doc/images/rack.png
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
- iQEcBAABAgAGBQJShLLBAAoJECrHRaUKISqMJkkH/Ri041qnkbOu6pOtq3+IzZ3f
6
- v13K+rVcMojVkSFGbbSeuYNYKkFZuHz/kDqJLjtU4OU3W+9ANl3DxhQ0IB/dwVHv
7
- N9TK10QnWspJb2wLPzoUFSe72t/kHRmjOmvwJGMzJS2cgHMnCT2BjVLSBLCYo/Iw
8
- G2pyj2BakrES0GHCL2qfD2lx5JXQM7yZb+hRmIzHA7k9kb1KjjCNKg4aw3fcpGBk
9
- Uq9V7He9zasHZklDTJoUk7vzffqF8GoszvSbN6G54Bxk2p2OZwbEL4B37bsUe58B
10
- aQQTVHd3M8HPw//fv91l9wX+5qxl6dwfn0KEohUpURNHcp8UhPLI7/znQcjAuZA=
11
- =CVJw
5
+ iQEcBAABAgAGBQJSi8RJAAoJECrHRaUKISqMj44IAKnWeRi84E9hLRSt9NRodG7p
6
+ GURP17hpIVDD3A7tXLvO6wQD1gIeTvcrY1GbEdFlnFqZxSln0w9tOZUyQ1b1UcNf
7
+ cUYWgKTgLGN4HxwYH4NM+eMytsAaIyrtmSLfSwp6y/QpQkcK+iZtjhA+VxcKY8uv
8
+ G220agtA4Bxiuu02C7/uIsK+J+byw0s1xXbwe+KWzGj+5vePFL2tnkQBTDoYImgU
9
+ 6johpD5HedqdiwS6ncf9fKd9ZZNWmUct7IK7agdbXwVY8TTqkeAe3A0oxBaiSwJj
10
+ u0qC91C8Oip2K35IknG18UxrO8hgJ7In2KUqkJaoIUajXM8xBlRQI3rsSt4iIZU=
11
+ =nCXi
12
12
  -----END PGP SIGNATURE-----