passenger 4.0.25 → 4.0.26

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 (38) hide show
  1. data.tar.gz.asc +7 -7
  2. data/NEWS +11 -0
  3. data/build/packaging.rb +3 -3
  4. data/debian.template/passenger.install.template +1 -1
  5. data/debian.template/rules.template +2 -1
  6. data/doc/Users guide Apache.idmap.txt +5 -3
  7. data/doc/Users guide Apache.txt +22 -0
  8. data/doc/Users guide Nginx.txt +12 -12
  9. data/doc/Users guide Standalone.txt +10 -1
  10. data/ext/apache2/ConfigurationCommands.cpp +18 -0
  11. data/ext/apache2/ConfigurationFields.hpp +6 -0
  12. data/ext/apache2/ConfigurationSetters.cpp +27 -0
  13. data/ext/apache2/CreateDirConfig.cpp +3 -0
  14. data/ext/apache2/DirectoryMapper.h +15 -6
  15. data/ext/apache2/Hooks.cpp +34 -10
  16. data/ext/apache2/MergeDirConfig.cpp +21 -0
  17. data/ext/apache2/SetHeaders.cpp +4 -0
  18. data/ext/common/Constants.h +1 -1
  19. data/ext/common/Utils.cpp +0 -1
  20. data/ext/common/Utils/VariantMap.h +1 -1
  21. data/ext/common/agents/HelperAgent/AgentOptions.h +4 -0
  22. data/ext/common/agents/HelperAgent/Main.cpp +10 -3
  23. data/ext/nginx/ContentHandler.c +2 -7
  24. data/helper-scripts/download_binaries/extconf.rb +7 -5
  25. data/lib/phusion_passenger.rb +1 -1
  26. data/lib/phusion_passenger/abstract_installer.rb +7 -22
  27. data/lib/phusion_passenger/admin_tools/memory_stats.rb +1 -1
  28. data/lib/phusion_passenger/apache2/config_options.rb +20 -0
  29. data/lib/phusion_passenger/standalone/runtime_installer.rb +69 -49
  30. data/lib/phusion_passenger/standalone/runtime_locator.rb +3 -3
  31. data/lib/phusion_passenger/standalone/start_command.rb +13 -1
  32. data/lib/phusion_passenger/utils/download.rb +193 -0
  33. data/resources/templates/standalone/config.erb +20 -3
  34. data/test/ruby/standalone/runtime_installer_spec.rb +69 -69
  35. data/test/ruby/standalone/runtime_locator_spec.rb +3 -3
  36. metadata +3 -3
  37. metadata.gz.asc +7 -7
  38. data/resources/templates/standalone/welcome.txt.erb +0 -8
@@ -79,3 +79,7 @@
79
79
  addHeader(r, output, "PASSENGER_LOAD_SHELL_ENVVARS", config->loadShellEnvvars);
80
80
 
81
81
 
82
+
83
+ addHeader(output, "PASSENGER_STARTUP_FILE", config->startupFile);
84
+
85
+
@@ -80,7 +80,7 @@
80
80
 
81
81
  #define NGINX_DOC_URL "http://www.modrails.com/documentation/Users%20guide%20Nginx.html"
82
82
 
83
- #define PASSENGER_VERSION "4.0.25"
83
+ #define PASSENGER_VERSION "4.0.26"
84
84
 
85
85
  #define POOL_HELPER_THREAD_STACK_SIZE 262144
86
86
 
@@ -284,7 +284,6 @@ extractDirName(const StaticString &path) {
284
284
 
285
285
  StaticString
286
286
  extractDirNameStatic(const StaticString &path) {
287
- breakpoint();
288
287
  if (path.empty()) {
289
288
  return StaticString(".", 1);
290
289
  }
@@ -106,7 +106,7 @@ public:
106
106
  }
107
107
 
108
108
  /** The key that wasn't found. */
109
- string getKey() const {
109
+ const string &getKey() const {
110
110
  return key;
111
111
  }
112
112
  };
@@ -27,11 +27,13 @@
27
27
 
28
28
  #include <sys/types.h>
29
29
  #include <string>
30
+ #include <boost/shared_ptr.hpp>
30
31
  #include <Utils/VariantMap.h>
31
32
 
32
33
  namespace Passenger {
33
34
 
34
35
  using namespace std;
36
+ using namespace boost;
35
37
 
36
38
 
37
39
  struct AgentOptions {
@@ -99,6 +101,8 @@ struct AgentOptions {
99
101
  }
100
102
  };
101
103
 
104
+ typedef boost::shared_ptr<AgentOptions> AgentOptionsPtr;
105
+
102
106
 
103
107
  } // namespace Passenger
104
108
 
@@ -603,8 +603,15 @@ public:
603
603
  int
604
604
  main(int argc, char *argv[]) {
605
605
  TRACE_POINT();
606
- AgentOptions options(initializeAgent(argc, argv, "PassengerHelperAgent"));
607
- if (options.testBinary) {
606
+ AgentOptionsPtr options;
607
+ try {
608
+ options = boost::make_shared<AgentOptions>(
609
+ initializeAgent(argc, argv, "PassengerHelperAgent"));
610
+ } catch (const VariantMap::MissingKeyException &e) {
611
+ fprintf(stderr, "Option required: %s\n", e.getKey().c_str());
612
+ return 1;
613
+ }
614
+ if (options->testBinary) {
608
615
  printf("PASS\n");
609
616
  exit(0);
610
617
  }
@@ -614,7 +621,7 @@ main(int argc, char *argv[]) {
614
621
 
615
622
  try {
616
623
  UPDATE_TRACE_POINT();
617
- Server server(FileDescriptor(FEEDBACK_FD), options);
624
+ Server server(FileDescriptor(FEEDBACK_FD), *options);
618
625
  P_WARN("PassengerHelperAgent online, listening at unix:" <<
619
626
  server.getRequestSocketFilename());
620
627
 
@@ -325,9 +325,6 @@ create_request(ngx_http_request_t *r)
325
325
  passenger_loc_conf_t *slcf;
326
326
  passenger_context_t *context;
327
327
  ngx_http_script_len_code_pt lcode;
328
- #if (NGX_HTTP_SSL)
329
- ngx_http_ssl_srv_conf_t *ssl_conf;
330
- #endif
331
328
 
332
329
  cscf = ngx_http_get_module_srv_conf(r, ngx_http_core_module);
333
330
  slcf = ngx_http_get_module_loc_conf(r, ngx_http_passenger_module);
@@ -403,8 +400,7 @@ create_request(ngx_http_request_t *r)
403
400
  }
404
401
 
405
402
  #if (NGX_HTTP_SSL)
406
- ssl_conf = ngx_http_get_module_srv_conf(r, ngx_http_ssl_module);
407
- if (ssl_conf->enable) {
403
+ if (r->http_connection->ssl) {
408
404
  len += sizeof("HTTPS") + sizeof("on");
409
405
  }
410
406
  #endif
@@ -575,8 +571,7 @@ create_request(ngx_http_request_t *r)
575
571
  }
576
572
 
577
573
  #if (NGX_HTTP_SSL)
578
- ssl_conf = ngx_http_get_module_srv_conf(r, ngx_http_ssl_module);
579
- if (ssl_conf->enable) {
574
+ if (r->http_connection->ssl) {
580
575
  b->last = ngx_copy(b->last, "HTTPS", sizeof("HTTPS"));
581
576
  b->last = ngx_copy(b->last, "on", sizeof("on"));
582
577
  }
@@ -62,17 +62,19 @@ FileUtils.mkdir_p(PhusionPassenger.download_cache_dir)
62
62
  Dir.chdir(PhusionPassenger.download_cache_dir)
63
63
 
64
64
  # Initiate downloads
65
+ require 'phusion_passenger/utils/download'
66
+ require 'logger'
65
67
  def download(name)
66
68
  if !File.exist?(name)
67
69
  url = "#{PhusionPassenger::BINARIES_URL_ROOT}/#{PhusionPassenger::VERSION_STRING}/#{name}"
68
70
  cert = PhusionPassenger.binaries_ca_cert_path
69
71
  puts "Attempting to download #{url} into #{Dir.pwd}"
70
72
  File.unlink("#{name}.tmp") rescue nil
71
- if PhusionPassenger::PlatformInfo.find_command("wget")
72
- result = system("wget", "--tries=3", "-O", "#{name}.tmp", "--ca-certificate=#{cert}", url)
73
- else
74
- result = system("curl", url, "-f", "-L", "-o", "#{name}.tmp", "--cacert", cert)
75
- end
73
+ logger = Logger.new(STDOUT)
74
+ logger.level = Logger::WARN
75
+ logger.formatter = proc { |severity, datetime, progname, msg| "*** #{msg}\n" }
76
+ result = PhusionPassenger::Utils::Download.download(url, "#{name}.tmp",
77
+ :cacert => cert, :logger => logger)
76
78
  if result
77
79
  File.rename("#{name}.tmp", name)
78
80
  else
@@ -30,7 +30,7 @@ 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.25'
33
+ VERSION_STRING = '4.0.26'
34
34
 
35
35
  PREFERRED_NGINX_VERSION = '1.4.4'
36
36
  NGINX_SHA256_CHECKSUM = '7c989a58e5408c9593da0bebcd0e4ffc3d892d1316ba5042ddb0be5b0b4102b9'
@@ -27,7 +27,9 @@ require 'phusion_passenger/console_text_template'
27
27
  require 'phusion_passenger/platform_info'
28
28
  require 'phusion_passenger/platform_info/operating_system'
29
29
  require 'phusion_passenger/utils/ansi_colors'
30
+ require 'phusion_passenger/utils/download'
30
31
  require 'fileutils'
32
+ require 'logger'
31
33
  require 'etc'
32
34
 
33
35
  # IMPORTANT: do not directly or indirectly require native_support; we can't compile
@@ -415,28 +417,11 @@ protected
415
417
  end
416
418
 
417
419
  def download(url, output, options = {})
418
- if options[:use_cache] && cache_dir = PhusionPassenger.download_cache_dir
419
- basename = url.sub(/.*\//, '')
420
- if File.exist?("#{cache_dir}/#{basename}")
421
- puts "Copying #{basename} from #{cache_dir}..."
422
- FileUtils.cp("#{cache_dir}/#{basename}", output)
423
- return true
424
- end
425
- end
426
-
427
- args = []
428
- if PlatformInfo.find_command("wget")
429
- if options[:cacert]
430
- args << "--ca-certificate=#{options[:cacert]}"
431
- end
432
- return sh("wget", "--tries=3", "-O", output, url, *args)
433
- else
434
- if options[:cacert]
435
- args << "--cacert"
436
- args << options[:cacert]
437
- end
438
- return sh("curl", url, "-f", "-L", "-o", output, *args)
439
- end
420
+ logger = Logger.new(STDOUT)
421
+ logger.level = Logger::WARN
422
+ logger.formatter = proc { |severity, datetime, progname, msg| "*** #{msg}\n" }
423
+ options[:logger] = logger
424
+ return PhusionPassenger::Utils::Download.download(url, output, options)
440
425
  end
441
426
 
442
427
  def list_parent_directories(dir)
@@ -88,7 +88,7 @@ class MemoryStats
88
88
  # Phusion Passenger is not running.
89
89
  def passenger_processes
90
90
  @passenger_processes ||= list_processes(:match =>
91
- /((^| )Passenger |(^| )Rails:|(^| )Rack:|PassengerHelperAgent|PassengerWatchdog|PassengerLoggingAgent|wsgi-loader.py)/)
91
+ /((^| )Passenger|(^| )Rails:|(^| )Rack:|wsgi-loader.py)/)
92
92
  end
93
93
 
94
94
  # Returns the sum of the memory usages of all given processes.
@@ -131,5 +131,25 @@ APACHE2_DIRECTORY_CONFIGURATION_OPTIONS = [
131
131
  :name => "PassengerLoadShellEnvvars",
132
132
  :type => :flag,
133
133
  :desc => "Whether to load environment variables from the shell before running the application."
134
+ },
135
+ {
136
+ :name => "PassengerBufferUpload",
137
+ :type => :flag,
138
+ :context => ["OR_ALL"],
139
+ :desc => "Whether to buffer file uploads.",
140
+ :header => nil
141
+ },
142
+ {
143
+ :name => 'PassengerAppType',
144
+ :type => :string,
145
+ :context => ["OR_ALL"],
146
+ :desc => "Force specific application type.",
147
+ :header => nil
148
+ },
149
+ {
150
+ :name => 'PassengerStartupFile',
151
+ :context => ["OR_ALL"],
152
+ :desc => "Force specific startup file.",
153
+ :type => :string
134
154
  }
135
155
  ]
@@ -124,13 +124,9 @@ protected
124
124
  end
125
125
 
126
126
  def run_steps
127
- show_welcome_screen if @nginx_dir
128
127
  check_whether_os_is_broken
129
128
  check_for_download_tool
130
129
  download_or_compile_binaries
131
- puts
132
- puts "<green><b>All done!</b></green>"
133
- puts
134
130
  end
135
131
 
136
132
  def before_install
@@ -149,19 +145,17 @@ protected
149
145
  end
150
146
 
151
147
  private
152
- def show_welcome_screen
153
- render_template 'standalone/welcome',
154
- :version => @nginx_version,
155
- :dir => @nginx_dir
156
- puts
157
- end
158
-
159
148
  def check_for_download_tool
149
+ require 'phusion_passenger/platform_info/depcheck'
150
+ PlatformInfo::Depcheck.load('depcheck_specs/utilities')
151
+ result = PlatformInfo::Depcheck.find('download-tool').check
152
+ # Don't output anything if there is a download tool.
153
+ # We want to be as quiet as possible.
154
+ return if result && result[:found]
155
+
160
156
  puts "<banner>Checking for basic prerequities...</banner>"
161
157
  puts
162
158
 
163
- require 'phusion_passenger/platform_info/depcheck'
164
- PlatformInfo::Depcheck.load('depcheck_specs/utilities')
165
159
  runner = PlatformInfo::Depcheck::ConsoleRunner.new
166
160
  runner.add('download-tool')
167
161
 
@@ -195,6 +189,7 @@ private
195
189
  "because --no-compile-runtime is given."
196
190
  exit(1)
197
191
  end
192
+ puts
198
193
  check_dependencies(false) || exit(1)
199
194
  puts
200
195
  if should_compile_support_binaries
@@ -234,29 +229,29 @@ private
234
229
  def download_support_binaries
235
230
  return false if !should_download_binaries?
236
231
 
237
- puts "<banner>Downloading Passenger support binaries for your platform, if available...</banner>"
232
+ puts " --> Downloading #{PROGRAM_NAME} support binaries for your platform"
238
233
  basename = "support-#{PlatformInfo.cxx_binary_compatibility_id}.tar.gz"
239
234
  url = "#{@binaries_url_root}/#{PhusionPassenger::VERSION_STRING}/#{basename}"
240
235
  tarball = "#{@working_dir}/#{basename}"
241
236
  if !download(url, tarball, :cacert => PhusionPassenger.binaries_ca_cert_path, :use_cache => true)
242
- puts "<b>No binaries are available for your platform. But don't worry, the " +
243
- "necessary binaries will be compiled from source instead.</b>"
244
- puts
237
+ puts " No binaries are available for your platform. Will compile them from source"
245
238
  return false
246
239
  end
247
240
 
248
241
  FileUtils.mkdir_p(@support_dir)
249
242
  Dir.mkdir("#{@working_dir}/support")
250
243
  Dir.chdir("#{@working_dir}/support") do
251
- puts "Extracting tarball..."
252
- return false if !extract_tarball(tarball)
244
+ if !extract_tarball(tarball)
245
+ @stderr.puts " *** Error: cannot extract tarball"
246
+ return false
247
+ end
253
248
  return false if !check_support_binaries
254
249
  end
255
250
 
256
251
  if system("mv '#{@working_dir}/support'/* '#{@support_dir}'/")
257
252
  return true
258
253
  else
259
- @stderr.puts "Error: could not move extracted files to the support directory"
254
+ @stderr.puts " *** Error: could not move extracted files to the support directory"
260
255
  return false
261
256
  end
262
257
  rescue Interrupt
@@ -265,42 +260,42 @@ private
265
260
 
266
261
  def check_support_binaries
267
262
  ["PassengerWatchdog", "PassengerHelperAgent", "PassengerLoggingAgent"].each do |exe|
268
- puts "Checking whether the downloaded #{exe} binary is usable..."
263
+ puts " Checking whether the downloaded #{exe.sub(/^Passenger/, '')} binary is usable"
269
264
  output = `env LD_BIND_NOW=1 DYLD_BIND_AT_LAUNCH=1 ./agents/#{exe} --test-binary 1`
270
265
  if !$? || $?.exitstatus != 0 || output != "PASS\n"
271
- @stderr.puts "Binary #{exe} is not usable."
266
+ @stderr.puts " --> Not usable, will compile from source"
272
267
  return false
273
268
  end
274
269
  end
275
- puts "All support binaries are usable."
270
+ puts " All good"
276
271
  return true
277
272
  end
278
273
 
279
274
  def download_nginx_binary
280
275
  return false if !should_download_binaries?
281
276
 
282
- puts "<banner>Downloading Nginx binary for your platform, if available...</banner>"
283
- basename = "nginx-#{@nginx_version}-#{PlatformInfo.cxx_binary_compatibility_id}.tar.gz"
277
+ puts " --> Downloading web helper for your platform"
278
+ basename = "webhelper-#{@nginx_version}-#{PlatformInfo.cxx_binary_compatibility_id}.tar.gz"
284
279
  url = "#{@binaries_url_root}/#{PhusionPassenger::VERSION_STRING}/#{basename}"
285
280
  tarball = "#{@working_dir}/#{basename}"
286
281
  if !download(url, tarball, :cacert => PhusionPassenger.binaries_ca_cert_path, :use_cache => true)
287
- puts "<b>No binary available for your platform. But don't worry, the " +
288
- "necessary binary will be compiled from source instead.</b>"
289
- puts
282
+ puts " No binary are available for your platform. Will compile them from source"
290
283
  return false
291
284
  end
292
285
 
293
286
  FileUtils.mkdir_p(@nginx_dir)
294
287
  Dir.mkdir("#{@working_dir}/nginx")
295
288
  Dir.chdir("#{@working_dir}/nginx") do
296
- puts "Extracting tarball..."
297
289
  result = extract_tarball(tarball)
298
- return false if !result
290
+ if !result
291
+ @stderr.puts " *** Error: cannot extract tarball"
292
+ return false
293
+ end
299
294
  if check_nginx_binary
300
295
  if system("mv '#{@working_dir}/nginx'/* '#{@nginx_dir}'/")
301
296
  return true
302
297
  else
303
- @stderr.puts "Error: could not move extracted Nginx binary to the right directory"
298
+ @stderr.puts " *** Error: could not move extracted web helper binary to the right directory"
304
299
  return false
305
300
  end
306
301
  else
@@ -312,20 +307,20 @@ private
312
307
  end
313
308
 
314
309
  def check_nginx_binary
315
- puts "Checking whether the downloaded binary is usable..."
316
- output = `env LD_BIND_NOW=1 DYLD_BIND_AT_LAUNCH=1 ./nginx -v 2>&1`
310
+ puts " Checking whether the downloaded binary is usable"
311
+ output = `env LD_BIND_NOW=1 DYLD_BIND_AT_LAUNCH=1 ./PassengerWebHelper -v 2>&1`
317
312
  if $? && $?.exitstatus == 0 && output =~ /nginx version:/
318
- puts "Nginx binary is usable."
313
+ puts " All good"
319
314
  return true
320
315
  else
321
- @stderr.puts "Nginx binary is not usable."
316
+ @stderr.puts " --> Not usable, will compile from source"
322
317
  return false
323
318
  end
324
319
  end
325
320
 
326
321
  def download_and_extract_nginx_sources
327
322
  begin_progress_bar
328
- puts "Downloading Nginx..."
323
+ puts "Downloading web helper source code..."
329
324
  if @nginx_tarball
330
325
  tarball = @nginx_tarball
331
326
  else
@@ -343,13 +338,14 @@ private
343
338
  begin_progress_bar
344
339
  begin
345
340
  result = extract_tarball(tarball) do |progress, total|
346
- show_progress(progress / total * 0.1, 1.0, 1, 1, "Extracting Nginx sources...")
341
+ show_progress(progress / total * 0.1, 1.0, 1, 1, "Extracting web helper source...")
347
342
  end
348
343
  rescue Exception
349
344
  puts
350
345
  raise
351
346
  end
352
347
  if result
348
+ rename_nginx_proctitle("#{@working_dir}/#{nginx_sources_name}")
353
349
  return "#{@working_dir}/#{nginx_sources_name}"
354
350
  else
355
351
  puts
@@ -361,16 +357,25 @@ private
361
357
  exit 2
362
358
  end
363
359
 
360
+ def rename_nginx_proctitle(source_dir)
361
+ filename = "#{source_dir}/src/os/unix/ngx_setproctitle.c"
362
+ if File.exist?(filename)
363
+ source = File.open(filename, "r") { |f| f.read }
364
+ source.gsub!('"nginx: "', '"PassengerWebHelper: "')
365
+ File.open(filename, "w") { |f| f.write(source) }
366
+ end
367
+ end
368
+
364
369
  def compile_support_binaries
365
370
  begin_progress_bar
366
- show_progress(0, 1, 1, 1, "Preparing Phusion Passenger...")
371
+ show_progress(0, 1, 1, 1, "Preparing #{PROGRAM_NAME}...")
367
372
  Dir.chdir(PhusionPassenger.source_root) do
368
373
  args = "nginx_without_native_support" +
369
374
  " CACHING=false" +
370
375
  " OUTPUT_DIR='#{@support_dir}'"
371
376
  begin
372
377
  run_rake_task!(args) do |progress, total|
373
- show_progress(progress, total, 1, 1, "Compiling Phusion Passenger...")
378
+ show_progress(progress, total, 1, 1, "Compiling #{PROGRAM_NAME}...")
374
379
  end
375
380
  ensure
376
381
  puts
@@ -398,6 +403,7 @@ private
398
403
  install_nginx_from_source(nginx_source_dir) do |progress, total, status_text|
399
404
  show_progress(0.1 + progress / total.to_f * 0.9, 1.0, 1, 1, status_text)
400
405
  end
406
+ puts
401
407
  end
402
408
 
403
409
  def check_whether_we_can_write_to(dir)
@@ -451,7 +457,7 @@ private
451
457
  def begin_progress_bar
452
458
  if !@begun
453
459
  @begun = true
454
- puts "<banner>Installing Phusion Passenger Standalone...</banner>"
460
+ puts "<banner>Installing #{PROGRAM_NAME} Standalone...</banner>"
455
461
  end
456
462
  end
457
463
 
@@ -578,37 +584,51 @@ private
578
584
  command << "#{shell} ./configure --prefix=/tmp " <<
579
585
  "#{STANDALONE_NGINX_CONFIGURE_OPTIONS} " <<
580
586
  "'--add-module=#{PhusionPassenger.nginx_module_source_dir}'"
581
- run_command_with_throbber(command, "Preparing Nginx...") do |status_text|
587
+ run_command_with_throbber(command, "Preparing web helper...") do |status_text|
582
588
  yield(0, 1, status_text)
583
589
  end
584
590
 
585
591
  backlog = ""
586
- total_lines = `#{PlatformInfo.gnu_make} --dry-run`.split("\n").size
592
+
593
+ # Capture and index the `make --dry-run` output for
594
+ # progress determination.
595
+ total_lines = 0
596
+ dry_run_output = {}
597
+ `#{PlatformInfo.gnu_make} --dry-run`.split("\n").each do |line|
598
+ total_lines += 1
599
+ dry_run_output[line] = true
600
+ end
601
+
587
602
  IO.popen("#{PlatformInfo.gnu_make} 2>&1", "r") do |io|
588
603
  progress = 1
589
604
  while !io.eof?
590
605
  line = io.readline
591
606
  backlog << line
592
- yield(progress, total_lines, "Compiling Nginx core...")
593
- progress += 1
607
+ # If the output is part of what we saw when dry-running,
608
+ # then increase progress bar. Otherwise it could be compiler
609
+ # warnings or something, so ignore those.
610
+ if dry_run_output[line.chomp]
611
+ yield(progress, total_lines, "Compiling web helper...")
612
+ progress += 1
613
+ end
594
614
  end
595
615
  end
596
616
  if $?.exitstatus != 0
597
617
  @stderr.puts
598
- @stderr.puts "*** ERROR: unable to compile Nginx."
618
+ @stderr.puts "*** ERROR: unable to compile web helper."
599
619
  @stderr.puts backlog
600
620
  exit 1
601
621
  end
602
622
 
603
623
  yield(1, 1, 'Copying files...')
604
- if !system("cp -pR objs/nginx '#{@nginx_dir}/'")
624
+ if !system("cp -pR objs/nginx '#{@nginx_dir}/PassengerWebHelper'")
605
625
  @stderr.puts
606
- @stderr.puts "*** ERROR: unable to copy Nginx binary."
626
+ @stderr.puts "*** ERROR: unable to copy web helper binary."
607
627
  exit 1
608
628
  end
609
- if !strip_binary("#{@nginx_dir}/nginx")
629
+ if !strip_binary("#{@nginx_dir}/PassengerWebHelper")
610
630
  @stderr.puts
611
- @stderr.puts "*** ERROR: unable to strip debugging symbols from the Nginx binary."
631
+ @stderr.puts "*** ERROR: unable to strip debugging symbols from the web helper binary."
612
632
  exit 1
613
633
  end
614
634
  end