passenger 4.0.27 → 4.0.28

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 (156) hide show
  1. data.tar.gz.asc +7 -7
  2. data/.gitignore +1 -0
  3. data/NEWS +22 -0
  4. data/build/preprocessor.rb +10 -0
  5. data/build/rpm.rb +74 -65
  6. data/debian.template/rules.template +8 -0
  7. data/dev/copy_boost_headers.rb +11 -2
  8. data/doc/Users guide Apache.idmap.txt +161 -145
  9. data/doc/Users guide Apache.txt +12 -1
  10. data/doc/Users guide Nginx.idmap.txt +142 -126
  11. data/doc/Users guide Nginx.txt +14 -1
  12. data/doc/Users guide Standalone.txt +1 -0
  13. data/doc/users_guide_snippets/environment_variables.txt +1 -1
  14. data/doc/users_guide_snippets/installation.txt +2 -0
  15. data/doc/users_guide_snippets/tips.txt +118 -0
  16. data/ext/apache2/Configuration.cpp +0 -6
  17. data/ext/apache2/Configuration.hpp +0 -5
  18. data/ext/apache2/ConfigurationCommands.cpp +7 -0
  19. data/ext/apache2/ConfigurationFields.hpp +2 -0
  20. data/ext/apache2/ConfigurationSetters.cpp +24 -0
  21. data/ext/apache2/CreateDirConfig.cpp +1 -0
  22. data/ext/apache2/Hooks.cpp +0 -1
  23. data/ext/apache2/MergeDirConfig.cpp +7 -0
  24. data/ext/apache2/SetHeaders.cpp +5 -1
  25. data/ext/boost/cregex.hpp +39 -0
  26. data/ext/boost/libs/regex/src/c_regex_traits.cpp +193 -0
  27. data/ext/boost/libs/regex/src/cpp_regex_traits.cpp +117 -0
  28. data/ext/boost/libs/regex/src/cregex.cpp +660 -0
  29. data/ext/boost/libs/regex/src/instances.cpp +32 -0
  30. data/ext/boost/libs/regex/src/internals.hpp +35 -0
  31. data/ext/boost/libs/regex/src/posix_api.cpp +296 -0
  32. data/ext/boost/libs/regex/src/regex.cpp +227 -0
  33. data/ext/boost/libs/regex/src/regex_debug.cpp +59 -0
  34. data/ext/boost/libs/regex/src/regex_raw_buffer.cpp +72 -0
  35. data/ext/boost/libs/regex/src/regex_traits_defaults.cpp +692 -0
  36. data/ext/boost/libs/regex/src/static_mutex.cpp +179 -0
  37. data/ext/boost/libs/regex/src/wc_regex_traits.cpp +301 -0
  38. data/ext/boost/libs/regex/src/wide_posix_api.cpp +315 -0
  39. data/ext/boost/libs/regex/src/winstances.cpp +35 -0
  40. data/ext/boost/regex.h +100 -0
  41. data/ext/boost/regex.hpp +37 -0
  42. data/ext/boost/regex/concepts.hpp +1128 -0
  43. data/ext/boost/regex/config.hpp +435 -0
  44. data/ext/boost/regex/config/borland.hpp +72 -0
  45. data/ext/boost/regex/config/cwchar.hpp +207 -0
  46. data/ext/boost/regex/mfc.hpp +190 -0
  47. data/ext/boost/regex/pattern_except.hpp +100 -0
  48. data/ext/boost/regex/pending/object_cache.hpp +165 -0
  49. data/ext/boost/regex/pending/static_mutex.hpp +179 -0
  50. data/ext/boost/regex/pending/unicode_iterator.hpp +776 -0
  51. data/ext/boost/regex/regex_traits.hpp +35 -0
  52. data/ext/boost/regex/user.hpp +93 -0
  53. data/ext/boost/regex/v4/basic_regex.hpp +782 -0
  54. data/ext/boost/regex/v4/basic_regex_creator.hpp +1571 -0
  55. data/ext/boost/regex/v4/basic_regex_parser.hpp +2874 -0
  56. data/ext/boost/regex/v4/c_regex_traits.hpp +211 -0
  57. data/ext/boost/regex/v4/char_regex_traits.hpp +81 -0
  58. data/ext/boost/regex/v4/cpp_regex_traits.hpp +1099 -0
  59. data/ext/boost/regex/v4/cregex.hpp +330 -0
  60. data/ext/boost/regex/v4/error_type.hpp +59 -0
  61. data/ext/boost/regex/v4/fileiter.hpp +455 -0
  62. data/ext/boost/regex/v4/instances.hpp +222 -0
  63. data/ext/boost/regex/v4/iterator_category.hpp +91 -0
  64. data/ext/boost/regex/v4/iterator_traits.hpp +135 -0
  65. data/ext/boost/regex/v4/match_flags.hpp +138 -0
  66. data/ext/boost/regex/v4/match_results.hpp +702 -0
  67. data/ext/boost/regex/v4/mem_block_cache.hpp +99 -0
  68. data/ext/boost/regex/v4/perl_matcher.hpp +587 -0
  69. data/ext/boost/regex/v4/perl_matcher_common.hpp +996 -0
  70. data/ext/boost/regex/v4/perl_matcher_non_recursive.hpp +1642 -0
  71. data/ext/boost/regex/v4/perl_matcher_recursive.hpp +991 -0
  72. data/ext/boost/regex/v4/primary_transform.hpp +146 -0
  73. data/ext/boost/regex/v4/protected_call.hpp +81 -0
  74. data/ext/boost/regex/v4/regbase.hpp +180 -0
  75. data/ext/boost/regex/v4/regex.hpp +202 -0
  76. data/ext/boost/regex/v4/regex_format.hpp +1156 -0
  77. data/ext/boost/regex/v4/regex_fwd.hpp +73 -0
  78. data/ext/boost/regex/v4/regex_grep.hpp +155 -0
  79. data/ext/boost/regex/v4/regex_iterator.hpp +201 -0
  80. data/ext/boost/regex/v4/regex_match.hpp +382 -0
  81. data/ext/boost/regex/v4/regex_merge.hpp +93 -0
  82. data/ext/boost/regex/v4/regex_raw_buffer.hpp +210 -0
  83. data/ext/boost/regex/v4/regex_replace.hpp +99 -0
  84. data/ext/boost/regex/v4/regex_search.hpp +217 -0
  85. data/ext/boost/regex/v4/regex_split.hpp +172 -0
  86. data/ext/boost/regex/v4/regex_token_iterator.hpp +342 -0
  87. data/ext/boost/regex/v4/regex_traits.hpp +189 -0
  88. data/ext/boost/regex/v4/regex_traits_defaults.hpp +371 -0
  89. data/ext/boost/regex/v4/regex_workaround.hpp +232 -0
  90. data/ext/boost/regex/v4/states.hpp +301 -0
  91. data/ext/boost/regex/v4/sub_match.hpp +512 -0
  92. data/ext/boost/regex/v4/syntax_type.hpp +105 -0
  93. data/ext/boost/regex/v4/u32regex_iterator.hpp +193 -0
  94. data/ext/boost/regex/v4/u32regex_token_iterator.hpp +377 -0
  95. data/ext/boost/regex/v4/w32_regex_traits.hpp +741 -0
  96. data/ext/boost/regex_fwd.hpp +33 -0
  97. data/ext/common/AgentsStarter.h +0 -11
  98. data/ext/common/ApplicationPool2/Common.h +1 -7
  99. data/ext/common/ApplicationPool2/DirectSpawner.h +3 -3
  100. data/ext/common/ApplicationPool2/Group.h +166 -69
  101. data/ext/common/ApplicationPool2/Implementation.cpp +55 -10
  102. data/ext/common/ApplicationPool2/Options.h +45 -10
  103. data/ext/common/ApplicationPool2/PipeWatcher.h +1 -2
  104. data/ext/common/ApplicationPool2/Pool.h +29 -7
  105. data/ext/common/ApplicationPool2/Process.h +22 -3
  106. data/ext/common/ApplicationPool2/Session.h +1 -0
  107. data/ext/common/ApplicationPool2/SmartSpawner.h +5 -10
  108. data/ext/common/ApplicationPool2/Spawner.h +10 -15
  109. data/ext/common/ApplicationPool2/SuperGroup.h +10 -9
  110. data/ext/common/Constants.h +1 -3
  111. data/ext/common/Hooks.h +193 -0
  112. data/ext/common/Logging.cpp +67 -2
  113. data/ext/common/Logging.h +23 -1
  114. data/ext/common/Utils.cpp +0 -21
  115. data/ext/common/Utils.h +0 -42
  116. data/ext/common/Utils/CachedFileStat.hpp +1 -1
  117. data/ext/common/Utils/StrIntUtils.h +61 -14
  118. data/ext/common/Utils/StringMap.h +4 -0
  119. data/ext/common/agents/HelperAgent/AgentOptions.h +4 -4
  120. data/ext/common/agents/HelperAgent/Main.cpp +2 -3
  121. data/ext/common/agents/HelperAgent/RequestHandler.h +65 -2
  122. data/ext/common/agents/LoggingAgent/FilterSupport.h +3 -1
  123. data/ext/common/agents/Watchdog/Main.cpp +8 -72
  124. data/ext/nginx/CacheLocationConfig.c +29 -1
  125. data/ext/nginx/Configuration.c +0 -12
  126. data/ext/nginx/Configuration.h +0 -1
  127. data/ext/nginx/ConfigurationCommands.c +10 -0
  128. data/ext/nginx/ConfigurationFields.h +2 -0
  129. data/ext/nginx/CreateLocationConfig.c +4 -0
  130. data/ext/nginx/MergeLocationConfig.c +6 -0
  131. data/ext/oxt/system_calls.cpp +7 -1
  132. data/ext/oxt/system_calls.hpp +7 -7
  133. data/helper-scripts/node-loader.js +6 -2
  134. data/helper-scripts/rack-loader.rb +5 -2
  135. data/helper-scripts/rack-preloader.rb +5 -2
  136. data/lib/phusion_passenger.rb +1 -1
  137. data/lib/phusion_passenger/apache2/config_options.rb +8 -0
  138. data/lib/phusion_passenger/constants.rb +0 -1
  139. data/lib/phusion_passenger/nginx/config_options.rb +9 -2
  140. data/lib/phusion_passenger/platform_info/apache.rb +2 -1
  141. data/lib/phusion_passenger/platform_info/compiler.rb +15 -1
  142. data/lib/phusion_passenger/platform_info/cxx_portability.rb +2 -0
  143. data/node_lib/phusion_passenger/httplib_emulation.js +85 -17
  144. data/node_lib/phusion_passenger/request_handler.js +10 -2
  145. data/rpm/Vagrantfile +32 -0
  146. data/rpm/get_distro_id.py +4 -0
  147. data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +2 -2
  148. data/test/cxx/ApplicationPool2/PoolTest.cpp +60 -9
  149. data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +2 -6
  150. data/test/cxx/CachedFileStatTest.cpp +5 -5
  151. data/test/cxx/RequestHandlerTest.cpp +3 -6
  152. data/test/cxx/UtilsTest.cpp +30 -0
  153. data/test/node/httplib_emulation_spec.js +491 -0
  154. data/test/node/spec_helper.js +25 -0
  155. metadata +78 -2
  156. metadata.gz.asc +7 -7
data.tar.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
- iQEcBAABAgAGBQJSoJfRAAoJECrHRaUKISqMhQQIAIwDG+KTIMX7DLZDCYYLz+rN
6
- WBM3NTljzYDC4FRXdek4gqfrILupsAAnrbLyEZibYb3+evJwopod2gLAvwq35BzL
7
- 3QWaDfH1ZYiYA7QgiN1yQNfHQ8hqckxYP/0UF2DqWL/j932oO47zs9XFu7eLrdYN
8
- dZTAahRvdFnil+/ZlbrvBk7sJcaLpgnEe/BIarOO6012Y45O5aGzvqJOE2vQU/p2
9
- z7iY0fM3WUbg1n0rh2wipiPvwHCIu4Rfr0mPo9AgV5fN4trsY2s8mDf7/dNyKdIf
10
- dSuXU/MThKfcHD4jvod5yuxHJdP+FVpViPx61zdJMTGRVhzSo88lo7H5BpGrNzI=
11
- =mSss
5
+ iQEcBAABAgAGBQJSqk+mAAoJECrHRaUKISqMCXMH/0yR6UfIRO+gegZ6wOXbdWK5
6
+ s4tZI2rTzfPsGCbSJOCqjiQCBPnDxThstj9WYSrQOe1hzeH8XawSg6guscHLt47/
7
+ 1FIgUo0Jkls+UTyi3+pDIfpX8LVN+y7TkP4AjSUIhQn2YqcpgmuxeUbfh1sScOQ0
8
+ hDuPuf6QCstmnMyNEXGQgOTzoU7xhYi3kwsl/Xqnw8+WvEKfauHGA4Z+bGg2FX/x
9
+ 0ULNgVMsxVb657JHK90VVXltIry5OCt6z+NEm+pX8BdHJepVeNgnaiYt09JECTyS
10
+ 1ZH8jffTTaog1teX0Izr7sxWyySxaah4ESIsZ8qf76qJthpnmhjOk+XZDmdOHbI=
11
+ =KvaW
12
12
  -----END PGP SIGNATURE-----
data/.gitignore CHANGED
@@ -1,6 +1,7 @@
1
1
  .cache
2
2
  .DS_Store
3
3
  .rbx
4
+ .vagrant
4
5
  autom4te.cache
5
6
  *.o
6
7
  *.so
data/NEWS CHANGED
@@ -1,3 +1,25 @@
1
+ Release 4.0.28
2
+ --------------
3
+
4
+ * Introduced a workaround for a GCC 4.6 bug. This bug could cause Phusion
5
+ Passsenger to crash during startup. Affected operating systems include
6
+ Ubuntu 12.04 and Amazon Linux 2013.09.01, though not every machine with
7
+ this OS installed exhibits the problem. See issue #902.
8
+ * Improved Node.js support: the Sails framework is now supported.
9
+ * Improved Node.js support: the streams2 API is now supported.
10
+ * Introduced support for hooks, allowing users to easily extend Phusion
11
+ Passenger's behavior.
12
+ * Fixed a bug in the `passenger start -R` option. It was broken because of a
13
+ change introduced in 4.0.25.
14
+ * Fixed a bug in PassengerMaxInstancesPerApp. Fixes issue #1016.
15
+ * Fixed compilation problems on Solaris.
16
+ * Fixed an encoding problem in the Apache autodetection code. Fixes
17
+ issue #1026.
18
+ * The Debian packages no longer depend on libruby.
19
+ * Application stdout and stderr are now printed without normal
20
+ Phusion Passenger debugging information, making them easier to read.
21
+
22
+
1
23
  Release 4.0.27
2
24
  --------------
3
25
 
@@ -188,6 +188,12 @@ private
188
188
  "squeeze" => "20110206",
189
189
  "wheezy" => "20130504"
190
190
  }
191
+ REDHAT_ENTERPRISE_DISTRIBUTIONS = {
192
+ "el6" => "el6.0"
193
+ }
194
+ AMAZON_DISTRIBUTIONS = {
195
+ "amazon" => "amazon"
196
+ }
191
197
 
192
198
  # Provides the DSL that's accessible within.
193
199
  class Evaluator
@@ -196,6 +202,10 @@ private
196
202
  return UBUNTU_DISTRIBUTIONS
197
203
  elsif DEBIAN_DISTRIBUTIONS.has_key?(name)
198
204
  return DEBIAN_DISTRIBUTIONS
205
+ elsif REDHAT_ENTERPRISE_DISTRIBUTIONS.has_key?(name)
206
+ return REDHAT_ENTERPRISE_DISTRIBUTIONS
207
+ elsif AMAZON_DISTRIBUTIONS.has_key?(name)
208
+ return AMAZON_DISTRIBUTIONS
199
209
  end
200
210
  end
201
211
 
@@ -1,5 +1,5 @@
1
1
  # Phusion Passenger - https://www.phusionpassenger.com/
2
- # Copyright (C) 2010 Phusion
2
+ # Copyright (C) 2010-2013 Phusion
3
3
  #
4
4
  # This program is free software; you can redistribute it and/or modify
5
5
  # it under the terms of the GNU General Public License as published by
@@ -14,80 +14,89 @@
14
14
  # with this program; if not, write to the Free Software Foundation, Inc.,
15
15
  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
16
 
17
- namespace :package do
18
- @sources_dir = nil
19
- @verbosity = 0
17
+ RPM_NAME = "passenger"
18
+ RPMBUILD_ROOT = File.expand_path("~/rpmbuild")
19
+ MOCK_OFFLINE = boolean_option('MOCK_OFFLINE', false)
20
+ ALL_RPM_DISTROS = {
21
+ "el6" => { :mock_chroot_name => "epel-6", :distro_name => "Enterprise Linux 6" },
22
+ "amazon" => { :mock_chroot_name => "epel-6", :distro_name => "Amazon Linux" }
23
+ }
20
24
 
21
- def sources_dir
22
- if !@sources_dir
23
- @sources_dir = `rpm -E '%{_sourcedir}'`.strip
24
- else
25
- @sources_dir
26
- end
27
- end
25
+ desc "Build gem for use in RPM building"
26
+ task 'rpm:gem' do
27
+ rpm_source_dir = "#{RPMBUILD_ROOT}/SOURCES"
28
+ sh "gem build #{PACKAGE_NAME}.gemspec"
29
+ sh "cp #{PACKAGE_NAME}-#{PACKAGE_VERSION}.gem #{rpm_source_dir}/"
30
+ end
28
31
 
29
- def noisy_system(*args)
30
- puts(args.join(' ')) if @verbosity > 0
31
- system(*args)
32
- end
32
+ desc "Build RPM for local machine"
33
+ task 'rpm:local' => 'rpm:gem' do
34
+ distro_id = `./rpm/get_distro_id.py`.strip
35
+ rpm_spec_dir = "#{RPMBUILD_ROOT}/SPECS"
36
+ spec_target_dir = "#{rpm_spec_dir}/#{distro_id}"
37
+ spec_target_file = "#{spec_target_dir}/#{RPM_NAME}.spec"
33
38
 
34
- def copy_tarball(verbosity = 0)
35
- FileUtils.cp(File.join('pkg', "passenger-#{PhusionPassenger::VERSION_STRING}.tar.gz"), sources_dir, :verbose => verbosity > 0)
36
- end
39
+ sh "mkdir -p #{spec_target_dir}"
40
+ puts "Generating #{spec_target_file}"
41
+ Preprocessor.new.start("rpm/#{RPM_NAME}.spec.template",
42
+ spec_target_file,
43
+ :distribution => distro_id)
37
44
 
38
- def test_setup(*args)
39
- require 'phusion_passenger'
40
- require 'phusion_passenger/abstract_installer'
41
- nginx_fetch = Class.new(PhusionPassenger::AbstractInstaller) do
42
- def fetch(dir)
43
- tarball = "nginx-#{PREFERRED_NGINX_VERSION}.tar.gz"
44
- return true if File.exists?("#{dir}/#{tarball}")
45
- download("http://www.nginx.org/download/#{tarball}", "#{dir}/#{tarball}")
46
- end
47
- end
45
+ sh "rpmbuild -ba #{spec_target_file}"
46
+ end
48
47
 
49
- ENV['BUILD_VERBOSITY'] = @verbosity.to_s
48
+ def create_rpm_build_task(distro_id, mock_chroot_name, distro_name)
49
+ desc "Build RPM for #{distro_name}"
50
+ task "rpm:#{distro_id}" => 'rpm:gem' do
51
+ rpm_spec_dir = "#{RPMBUILD_ROOT}/SPECS"
52
+ spec_target_dir = "#{rpm_spec_dir}/#{distro_id}"
53
+ spec_target_file = "#{spec_target_dir}/#{RPM_NAME}.spec"
54
+ maybe_offline = MOCK_OFFLINE ? "--offline" : nil
50
55
 
51
- result = noisy_system('./rpm/release/mocksetup-first.sh', *args)
52
- if !result
53
- # exit status 4 means that the user needs to relogin.
54
- if $?.exitstatus == 4
55
- exit
56
- else
57
- abort "Mock setup failed, see above for details"
58
- end
59
- end
60
- nginx_fetch.new.fetch(sources_dir)
61
- end
56
+ sh "mkdir -p #{spec_target_dir}"
57
+ puts "Generating #{spec_target_file}"
58
+ Preprocessor.new.start("rpm/#{RPM_NAME}.spec.template",
59
+ spec_target_file,
60
+ :distribution => distro_id)
62
61
 
63
- desc "Package the current release into a set of RPMs"
64
- task 'rpm' => [:package, :rpm_verbosity] do
65
- test_setup
66
- copy_tarball(@verbosity)
67
- noisy_system(*(%w{./rpm/release/build.rb --single} + ["--stage-dir=#{ENV['stage_dir'] || 'pkg'}", "--extra-packages=#{ENV['extra_packages'] || 'release/mock-repo'}"] + @build_verbosity))
62
+ sh "rpmbuild -bs #{spec_target_file}"
63
+ sh "mock --verbose #{maybe_offline} " +
64
+ "-r #{mock_chroot_name}-x86_64 " +
65
+ "--resultdir '#{PKG_DIR}/#{distro_id}' " +
66
+ "rebuild #{RPMBUILD_ROOT}/SRPMS/#{RPM_NAME}-#{PACKAGE_VERSION}-1#{distro_id}.src.rpm"
68
67
  end
68
+ end
69
69
 
70
- desc "Build a Yum repository for the current release"
71
- task 'yum' => [:package, :rpm_verbosity] do
72
- test_setup(*%w{-p createrepo -p rubygem-gem2rpm})
73
- copy_tarball(@verbosity)
74
- noisy_system(*(%w{./rpm/release/build.rb --include-release} + ["--stage-dir=#{ENV['stage_dir'] || 'yum-repo'}", "--extra-packages=#{ENV['extra_packages'] || 'release/mock-repo'}"] + @build_verbosity))
75
- repo=File.expand_path("#{ENV['stage_dir'] || 'yum-repo'}", 'rpm')
76
- Dir["#{repo}/{fedora,rhel}/*/{i386,x86_64}"].each do |dir|
77
- noisy_system('createrepo', dir)
78
- end
79
- FileUtils.cp(Dir["rpm/doc/*.shtml"], repo, :verbose => @verbosity > 0)
80
- FileUtils.cp('rpm/doc/example_yum_repository_htaccess', "#{repo}/.htaccess.example", :verbose => @verbosity > 0)
81
- FileUtils.cp('rpm/release/RPM-GPG-KEY-stealthymonkeys', "#{repo}/RPM-GPG-KEY-stealthymonkeys.asc")
82
- end
70
+ ALL_RPM_DISTROS.each_pair do |distro_id, info|
71
+ create_rpm_build_task(distro_id, info[:mock_chroot_name], info[:distro_name])
72
+ end
83
73
 
84
- task 'rpm_verbosity' do
85
- if ENV['verbosity'] && ENV['verbosity'] =~ /(true|yes|on)/i
86
- @verbosity = 1
87
- @build_verbosity = %w{-v}
88
- else
89
- @verbosity = ENV['verbosity'] ? ENV['verbosity'].to_i : 1
90
- @build_verbosity = %w{-v} * @verbosity
74
+ desc "Build RPMs for all distributions"
75
+ task "rpm:all" => ALL_RPM_DISTROS.keys.map { |x| "rpm:#{x}" }
76
+
77
+ desc "Publish RPMs for all distributions"
78
+ task "rpm:publish" do
79
+ server = "juvia-helper.phusion.nl"
80
+ remote_dir = "/srv/oss_binaries_passenger/yumgems/phusion-misc"
81
+ rsync = "rsync -z -r --delete --progress"
82
+
83
+ ALL_RPM_DISTROS.each_key do |distro_id|
84
+ if !File.exist?("#{PKG_DIR}/#{distro_id}")
85
+ abort "No packages built for #{distro_id}. Please run 'rake rpm:all' first."
91
86
  end
92
87
  end
88
+ ALL_RPM_DISTROS.each_key do |distro_id|
89
+ sh "rpm --resign --define '%_signature gpg' --define '%_gpg_name #{PACKAGE_SIGNING_KEY}' #{PKG_DIR}/#{distro_id}/*.rpm"
90
+ end
91
+ sh "#{rsync} #{server}:#{remote_dir}/latest/ #{PKG_DIR}/yumgems/"
92
+ ALL_RPM_DISTROS.each_key do |distro_id|
93
+ distro_dir = "#{PKG_DIR}/#{distro_id}"
94
+ repo_dir = "#{PKG_DIR}/yumgems/#{distro_id}"
95
+ sh "mkdir -p #{repo_dir}"
96
+ sh "cp #{distro_dir}/#{RPM_NAME}*.rpm #{repo_dir}/"
97
+ sh "createrepo #{repo_dir}"
98
+ end
99
+ sh "ssh #{server} 'rm -rf #{remote_dir}/new && cp -dpR #{remote_dir}/latest #{remote_dir}/new'"
100
+ sh "#{rsync} #{PKG_DIR}/yumgems/ #{server}:#{remote_dir}/new/"
101
+ sh "ssh #{server} 'rm -rf #{remote_dir}/previous && mv #{remote_dir}/latest #{remote_dir}/previous && mv #{remote_dir}/new #{remote_dir}/latest'"
93
102
  end
@@ -49,3 +49,11 @@ override_dh_auto_clean:
49
49
  cd nginx-<%= PhusionPassenger::PREFERRED_NGINX_VERSION %> && if test -f Makefile; then make clean; fi
50
50
  # Hack to prevent HTML files from being renegerated
51
51
  touch doc/*.html
52
+
53
+ # Because we include Ruby extensions, the Debian package depends on libruby.
54
+ # Since Phusion Passenger works fine without the Ruby extensions, we don't want
55
+ # to depend on libruby.
56
+ # https://github.com/phusion/passenger_apt_automation/issues/3
57
+ override_dh_shlibdeps:
58
+ dh_shlibdeps
59
+ sed -i -E 's/libruby.*?, //g' debian/*.substvars
@@ -35,17 +35,24 @@ ESSENTIALS = [
35
35
  "boost/thread",
36
36
  "libs/thread/src",
37
37
  "libs/system/src",
38
+ "libs/regex/src",
38
39
  "boost/date_time/gregorian/formatters_limited.hpp",
39
40
  "boost/date_time/date_formatting_limited.hpp",
40
41
  "boost/type_traits/make_signed.hpp",
41
42
  "boost/type_traits/detail/*",
42
43
  "boost/non_type.hpp",
43
44
  "boost/detail/fenv.hpp",
44
- "boost/foreach.hpp"
45
+ "boost/foreach.hpp",
46
+ "boost/*regex*"
45
47
  ]
46
48
  EXCLUDE = [
47
49
  "libs/thread/src/win32/*",
48
- "boost/atomic/detail/windows.hpp"
50
+ "libs/regex/src/w32_regex_traits.cpp",
51
+ "libs/regex/src/fileiter.cpp",
52
+ "libs/regex/src/icu.cpp",
53
+ "libs/regex/src/usinstances.cpp",
54
+ "boost/atomic/detail/windows.hpp",
55
+ "boost/regex/icu.hpp"
49
56
  ]
50
57
  PROGRAM_SOURCE = %q{
51
58
  #include <boost/shared_ptr.hpp>
@@ -60,6 +67,8 @@ PROGRAM_SOURCE = %q{
60
67
  #include <boost/date_time/posix_time/posix_time.hpp>
61
68
  #include <boost/foreach.hpp>
62
69
  #include <boost/unordered_map.hpp>
70
+ #include <boost/cregexp.hpp>
71
+ #include <boost/regexp.hpp>
63
72
  }
64
73
 
65
74
  require 'fileutils'
@@ -118,293 +118,309 @@
118
118
 
119
119
  5.4. Redeploying (restarting the WSGI application) => redeploying-restarting-the-wsgi-application--na7pmf
120
120
 
121
- 6. Configuring Phusion Passenger => configuring-phusion-passenger-11oztoe
121
+ 6. Deploying a Node.js application => deploying-a-node-js-application-882ecy
122
122
 
123
- 6.1. PassengerRoot <directory> => passengerroot-directory--sere8l
123
+ 7. Deploying a Meteor application => deploying-a-meteor-application-mxfmir
124
124
 
125
- 6.2. PassengerDefaultRuby <filename> => passengerdefaultruby-and-passengerruby-7zblp8
125
+ 8. Configuring Phusion Passenger => configuring-phusion-passenger-11oztoe
126
126
 
127
- 6.3. Deployment options => deployment-options-1unzrll
127
+ 8.1. PassengerRoot <directory> => passengerroot-directory--sere8l
128
128
 
129
- 6.3.1. PassengerEnabled <on|off> => passengerenabled-on-off--74rzth
129
+ 8.2. PassengerDefaultRuby <filename> => passengerdefaultruby-and-passengerruby-7zblp8
130
130
 
131
- 6.3.2. PassengerRuby <filename> => passengerruby-filename--1r3fv73
131
+ 8.3. Deployment options => deployment-options-1unzrll
132
132
 
133
- 6.3.3. PassengerPython <filename> => passengerpython-filename--1ssesv3
133
+ 8.3.1. PassengerEnabled <on|off> => passengerenabled-on-off--74rzth
134
134
 
135
- 6.3.4. PassengerNodejs <filename> => passengernodejs-filename--2mjb1j
135
+ 8.3.2. PassengerRuby <filename> => passengerruby-filename--1r3fv73
136
136
 
137
- 6.3.5. PassengerAppEnv <string> => passengerappenv-string--s3ojlc
137
+ 8.3.3. PassengerPython <filename> => passengerpython-filename--1ssesv3
138
138
 
139
- 6.3.6. RailsEnv <string> => railsenv-string--1b0xxvu
139
+ 8.3.4. PassengerNodejs <filename> => passengernodejs-filename--2mjb1j
140
140
 
141
- 6.3.7. RackEnv <string> => rackenv-string--vve9py
141
+ 8.3.5. PassengerAppEnv <string> => passengerappenv-string--s3ojlc
142
142
 
143
- 6.3.8. PassengerAppRoot <path/to/root> => passengerapproot-path-to-root--uf24yd
143
+ 8.3.6. RailsEnv <string> => railsenv-string--1b0xxvu
144
144
 
145
- 6.3.9. PassengerBaseURI <uri> => passengerbaseuri-uri--97i9mm
145
+ 8.3.7. RackEnv <string> => rackenv-string--vve9py
146
146
 
147
- 6.3.10. PassengerRestartDir <directory> => passengerrestartdir-directory--1fmhmv0
147
+ 8.3.8. PassengerAppRoot <path/to/root> => passengerapproot-path-to-root--uf24yd
148
148
 
149
- 6.3.11. PassengerRollingRestarts <on|off> => passengerrollingrestarts
149
+ 8.3.9. PassengerBaseURI <uri> => passengerbaseuri-uri--97i9mm
150
150
 
151
- 6.3.12. PassengerResistDeploymentErrors <on|off> => passengerresistdeploymenterrors
151
+ 8.3.10. PassengerRestartDir <directory> => passengerrestartdir-directory--1fmhmv0
152
152
 
153
- 6.4. Process spawning options => process-spawning-options-v2vscm
153
+ 8.3.11. PassengerRollingRestarts <on|off> => passengerrollingrestarts
154
154
 
155
- 6.4.1. PassengerSpawnMethod <string> => passengerspawnmethod-string--sodg2y
155
+ 8.3.12. PassengerResistDeploymentErrors <on|off> => passengerresistdeploymenterrors
156
156
 
157
- 6.4.2. PassengerLoadShellEnvvars <on|off> => passengerloadshellenvvars-on-off--1290yz1
157
+ 8.4. Process spawning options => process-spawning-options-v2vscm
158
158
 
159
- 6.5. Security options => security-options-1pb75ho
159
+ 8.4.1. PassengerSpawnMethod <string> => passengerspawnmethod-string--sodg2y
160
160
 
161
- 6.5.1. PassengerUserSwitching <on|off> => passengeruserswitching
161
+ 8.4.2. PassengerLoadShellEnvvars <on|off> => passengerloadshellenvvars-on-off--1290yz1
162
162
 
163
- 6.5.2. PassengerUser <username> => passengeruser
163
+ 8.5. Security options => security-options-1pb75ho
164
164
 
165
- 6.5.3. PassengerGroup <group name> => passengergroup
165
+ 8.5.1. PassengerUserSwitching <on|off> => passengeruserswitching
166
166
 
167
- 6.5.4. PassengerDefaultUser <username> => passengerdefaultuser
167
+ 8.5.2. PassengerUser <username> => passengeruser
168
168
 
169
- 6.5.5. PassengerDefaultGroup <group name> => passengerdefaultgroup
169
+ 8.5.3. PassengerGroup <group name> => passengergroup
170
170
 
171
- 6.5.6. PassengerFriendlyErrorPages <on|off> => passengerfriendlyerrorpages
171
+ 8.5.4. PassengerDefaultUser <username> => passengerdefaultuser
172
172
 
173
- 6.6. Resource control and optimization options => resource-control-and-optimization-options-zu2f7u
173
+ 8.5.5. PassengerDefaultGroup <group name> => passengerdefaultgroup
174
174
 
175
- 6.6.1. PassengerMaxPoolSize <integer> => passengermaxpoolsize-integer--am64q8
175
+ 8.5.6. PassengerFriendlyErrorPages <on|off> => passengerfriendlyerrorpages
176
176
 
177
- 6.6.2. PassengerMinInstances <integer> => passengermininstances-integer--wegq6b
177
+ 8.6. Resource control and optimization options => resource-control-and-optimization-options-zu2f7u
178
178
 
179
- 6.6.3. PassengerMaxInstances <integer> => passengermaxinstances
179
+ 8.6.1. PassengerMaxPoolSize <integer> => passengermaxpoolsize-integer--am64q8
180
180
 
181
- 6.6.4. PassengerMaxInstancesPerApp <integer> => passengermaxinstancesperapp
181
+ 8.6.2. PassengerMinInstances <integer> => passengermininstances-integer--wegq6b
182
182
 
183
- 6.6.5. PassengerPoolIdleTime <integer> => passengerpoolidletime-integer--a3gunq
183
+ 8.6.3. PassengerMaxInstances <integer> => passengermaxinstances
184
184
 
185
- 6.6.6. PassengerMaxPreloaderIdleTime <integer> => railsappspawneridletime-integer--1awgog1
185
+ 8.6.4. PassengerMaxInstancesPerApp <integer> => passengermaxinstancesperapp
186
186
 
187
- 6.6.7. PassengerStartTimeout <seconds> => passengerstarttimeout-seconds--ihnfku
187
+ 8.6.5. PassengerPoolIdleTime <integer> => passengerpoolidletime-integer--a3gunq
188
188
 
189
- 6.6.8. PassengerConcurrencyModel <process|thread> => passengerconcurrencymodel-process-thread--1eipofj
189
+ 8.6.6. PassengerMaxPreloaderIdleTime <integer> => railsappspawneridletime-integer--1awgog1
190
190
 
191
- 6.6.9. PassengerThreadCount <number> => passengerthreadcount-number--10jl64a
191
+ 8.6.7. PassengerStartTimeout <seconds> => passengerstarttimeout-seconds--ihnfku
192
192
 
193
- 6.6.10. PassengerMaxRequests <integer> => passengermaxrequests-integer--17qkw9n
193
+ 8.6.8. PassengerConcurrencyModel <process|thread> => passengerconcurrencymodel-process-thread--1eipofj
194
194
 
195
- 6.6.11. PassengerMaxRequestTime <seconds> => passengermaxrequesttime-seconds--127v1i2
195
+ 8.6.9. PassengerThreadCount <number> => passengerthreadcount-number--10jl64a
196
196
 
197
- 6.6.12. PassengerMemoryLimit <integer> => passengermemorylimit-integer--18irza1
197
+ 8.6.10. PassengerMaxRequests <integer> => passengermaxrequests-integer--17qkw9n
198
198
 
199
- 6.6.13. PassengerStatThrottleRate <integer> => passengerstatthrottlerate-integer--1dcfda3
199
+ 8.6.11. PassengerMaxRequestTime <seconds> => passengermaxrequesttime-seconds--127v1i2
200
200
 
201
- 6.6.14. PassengerPreStart <url> => passengerprestart-url--1utb57k
201
+ 8.6.12. PassengerMemoryLimit <integer> => passengermemorylimit-integer--18irza1
202
202
 
203
- 6.6.15. PassengerHighPerformance <on|off> => passengerhighperformance-on-off--nvfa86
203
+ 8.6.13. PassengerStatThrottleRate <integer> => passengerstatthrottlerate-integer--1dcfda3
204
204
 
205
- 6.7. Connection handling options => connection-handling-options-1k3zd1a
205
+ 8.6.14. PassengerPreStart <url> => passengerprestart-url--1utb57k
206
206
 
207
- 6.7.1. PassengerBufferUpload <on|off> => passengerbufferupload-on-off--1lsjr93
207
+ 8.6.15. PassengerHighPerformance <on|off> => passengerhighperformance-on-off--nvfa86
208
208
 
209
- 6.7.2. PassengerBufferResponse <on|off> => passengerbufferresponse-on-off--1y7ilka
209
+ 8.7. Connection handling options => connection-handling-options-1k3zd1a
210
210
 
211
- 6.7.3. PassengerErrorOverride <on|off> => passengererroroverride-on-off--1pq9nez
211
+ 8.7.1. PassengerBufferUpload <on|off> => passengerbufferupload-on-off--1lsjr93
212
212
 
213
- 6.7.4. PassengerMaxRequestQueueSize <number> => passenger-max-request-queue-size-number--1f1uocd
213
+ 8.7.2. PassengerBufferResponse <on|off> => passengerbufferresponse-on-off--1y7ilka
214
214
 
215
- 6.8. Compatibility options => compatibility-options-8jve5a
215
+ 8.7.3. PassengerErrorOverride <on|off> => passengererroroverride-on-off--1pq9nez
216
216
 
217
- 6.8.1. PassengerResolveSymlinksInDocumentRoot <on|off> => passengerresolvesymlinksindocumentroot-on-off--1r0qcp8
217
+ 8.7.4. PassengerMaxRequestQueueSize <number> => passenger-max-request-queue-size-number--1f1uocd
218
218
 
219
- 6.8.2. PassengerAllowEncodedSlashes <on|off> => passengerallowencodedslashes-on-off--1y3s1ww
219
+ 8.8. Compatibility options => compatibility-options-8jve5a
220
220
 
221
- 6.9. Logging and debugging options => logging-and-debugging-options-el2cuc
221
+ 8.8.1. PassengerResolveSymlinksInDocumentRoot <on|off> => passengerresolvesymlinksindocumentroot-on-off--1r0qcp8
222
222
 
223
- 6.9.1. PassengerLogLevel <integer> => passengerloglevel-integer--s3kbil
223
+ 8.8.2. PassengerAllowEncodedSlashes <on|off> => passengerallowencodedslashes-on-off--1y3s1ww
224
224
 
225
- 6.9.2. PassengerDebugLogFile <filename> => passengerdebuglogfile-filename--1wjm2j1
225
+ 8.9. Logging and debugging options => logging-and-debugging-options-el2cuc
226
226
 
227
- 6.9.3. PassengerDebugger <on|off> => passengerdebugger-on-off--19you7e
227
+ 8.9.1. PassengerLogLevel <integer> => passengerloglevel-integer--s3kbil
228
228
 
229
- 6.10. Advanced options => advanced-options-1ab1jkq
229
+ 8.9.2. PassengerDebugLogFile <filename> => passengerdebuglogfile-filename--1wjm2j1
230
230
 
231
- 6.10.1. PassengerTempDir <directory> => passengertempdir-directory--68h2ng
231
+ 8.9.3. PassengerDebugger <on|off> => passengerdebugger-on-off--19you7e
232
232
 
233
- 6.10.2. PassengerUploadBufferDir <directory> => passengeruploadbufferdir-directory--kdr8at
233
+ 8.10. Advanced options => advanced-options-1ab1jkq
234
234
 
235
- 6.11. Deprecated or removed options => deprecated-options-pm9m57
235
+ 8.10.1. PassengerTempDir <directory> => passengertempdir-directory--68h2ng
236
236
 
237
- 6.11.1. RailsRuby => railsruby-ht09ei
237
+ 8.10.2. PassengerUploadBufferDir <directory> => passengeruploadbufferdir-directory--kdr8at
238
238
 
239
- 6.11.2. RailsBaseURI and RackBaseURI => railsbaseuri-uri--1txrw3k
239
+ 8.11. Deprecated or removed options => deprecated-options-pm9m57
240
240
 
241
- 6.11.3. RailsUserSwitching => railsuserswitching-1npx8y4
241
+ 8.11.1. RailsRuby => railsruby-ht09ei
242
242
 
243
- 6.11.4. RailsDefaultUser => railsdefaultuser-19j7n3m
243
+ 8.11.2. RailsBaseURI and RackBaseURI => railsbaseuri-uri--1txrw3k
244
244
 
245
- 6.11.5. RailsAllowModRewrite => railsallowmodrewrite-1vkziro
245
+ 8.11.3. RailsUserSwitching => railsuserswitching-1npx8y4
246
246
 
247
- 6.11.6. RailsSpawnMethod => railsspawnmethod-1aljgpa
247
+ 8.11.4. RailsDefaultUser => railsdefaultuser-19j7n3m
248
248
 
249
- 6.11.7. RailsAutoDetect, RackAutoDetect and WsgiAutoDetect => railsautodetect-rackautodetect-and-wsgiautodetect-1qgakzs
249
+ 8.11.5. RailsAllowModRewrite => railsallowmodrewrite-1vkziro
250
250
 
251
- 6.11.8. RailsAppSpawnerIdleTime => railsappspawneridletime-heh41r
251
+ 8.11.6. RailsSpawnMethod => railsspawnmethod-1aljgpa
252
252
 
253
- 6.11.9. RailsFrameworkSpawnerIdleTime => railsframeworkspawneridletime-adcf9k
253
+ 8.11.7. RailsAutoDetect, RackAutoDetect and WsgiAutoDetect => railsautodetect-rackautodetect-and-wsgiautodetect-1qgakzs
254
254
 
255
- 7. Troubleshooting => troubleshooting-2ihihi
255
+ 8.11.8. RailsAppSpawnerIdleTime => railsappspawneridletime-heh41r
256
256
 
257
- 7.1. Generic troubleshooting tips => generic-troubleshooting-tips-130iuhe
257
+ 8.11.9. RailsFrameworkSpawnerIdleTime => railsframeworkspawneridletime-adcf9k
258
258
 
259
- 7.2. Why does the first request take a long time? => why-does-the-first-request-take-a-long-time--12mg452
259
+ 9. Troubleshooting => troubleshooting-2ihihi
260
260
 
261
- 7.3. OS X: The installer cannot locate MAMP’s Apache => macos-x-the-installer-cannot-locate-mamp-s-apache-or908n
261
+ 9.1. Generic troubleshooting tips => generic-troubleshooting-tips-130iuhe
262
262
 
263
- 7.4. Apache reports a "403 Forbidden" error => apache-reports-a-403-forbidden-error-140tb4p
263
+ 9.2. Why does the first request take a long time? => why-does-the-first-request-take-a-long-time--12mg452
264
264
 
265
- 7.5. Static assets such as images and stylesheets arent being displayed => static-assets-such-as-images-and-stylesheets-aren-t-being-displayed-uaptpi
265
+ 9.3. OS X: The installer cannot locate MAMPs Apache => macos-x-the-installer-cannot-locate-mamp-s-apache-or908n
266
266
 
267
- 7.6. The Apache error log says that the spawn manager script does not exist, or that it does not have permission to execute it => the-apache-error-log-says-that-the-spawn-manager-script-does-not-exist-or-that-it-does-not-have-permission-to-execute-it-1fmoozk
267
+ 9.4. Apache reports a "403 Forbidden" error => apache-reports-a-403-forbidden-error-140tb4p
268
268
 
269
- 7.7. The application thinks its not on SSL even though it is => the-application-thinks-its-not-on-ssl-even-though-it-is-u9fcp1
269
+ 9.5. Static assets such as images and stylesheets aren’t being displayed => static-assets-such-as-images-and-stylesheets-aren-t-being-displayed-uaptpi
270
270
 
271
- 7.8. Ruby on Rails-specific troubleshooting => ruby-on-rails-specific-problems-6umss5
271
+ 9.6. The Apache error log says that the spawn manager script does not exist, or that it does not have permission to execute it => the-apache-error-log-says-that-the-spawn-manager-script-does-not-exist-or-that-it-does-not-have-permission-to-execute-it-1fmoozk
272
272
 
273
- 7.8.1. The "About your application’s environment" link does not work => the-about-your-application-s-environment-link-does-not-work-7k4tlm
273
+ 9.7. The application thinks its not on SSL even though it is => the-application-thinks-its-not-on-ssl-even-though-it-is-u9fcp1
274
274
 
275
- 7.8.2. The Rails application reports that it’s unable to start because of a permission error => the-rails-application-reports-that-it-s-unable-to-start-because-of-a-permission-error-v53i6s
275
+ 9.8. Ruby on Rails-specific troubleshooting => ruby-on-rails-specific-problems-6umss5
276
276
 
277
- 7.8.3. The Rails application’s log file is not being written to => my-rails-application-s-log-file-is-not-being-written-to-3i747l
277
+ 9.8.1. The "About your application’s environment" link does not work => the-about-your-application-s-environment-link-does-not-work-7k4tlm
278
278
 
279
- 7.9. Conflicting Apache modules => conflicting-apache-modules-1uwpixk
279
+ 9.8.2. The Rails application reports that it’s unable to start because of a permission error => the-rails-application-reports-that-it-s-unable-to-start-because-of-a-permission-error-v53i6s
280
280
 
281
- 7.9.1. mod_userdir => mod-userdir-x5e2te
281
+ 9.8.3. The Rails application’s log file is not being written to => my-rails-application-s-log-file-is-not-being-written-to-3i747l
282
282
 
283
- 7.9.2. MultiViews (mod_negotiation) => multiviews-mod-negotiation--zchfg0
283
+ 9.9. Conflicting Apache modules => conflicting-apache-modules-1uwpixk
284
284
 
285
- 7.9.3. VirtualDocumentRoot => virtualdocumentroot-14cwd7l
285
+ 9.9.1. mod_userdir => mod-userdir-x5e2te
286
286
 
287
- 8. Analysis and system maintenance => analysis-and-system-maintenance-qvkwzr
287
+ 9.9.2. MultiViews (mod_negotiation) => multiviews-mod-negotiation--zchfg0
288
288
 
289
- 8.1. Inspecting memory usage => inspecting-memory-usage-1bkis6i
289
+ 9.9.3. VirtualDocumentRoot => virtualdocumentroot-14cwd7l
290
290
 
291
- 8.2. Inspecting Phusion Passenger’s internal status => inspecting-phusion-passenger-s-internal-status-ukekf7
291
+ 10. Analysis and system maintenance => analysis-and-system-maintenance-qvkwzr
292
292
 
293
- 8.3. Debugging frozen applications => debugging-frozen-applications-1qsjqq7
293
+ 10.1. Inspecting memory usage => inspecting-memory-usage-1bkis6i
294
294
 
295
- 8.4. Accessing individual application processes => accessing-individual-application-processes-1p0j4jb
295
+ 10.2. Inspecting Phusion Passenger’s internal status => inspecting-phusion-passenger-s-internal-status-ukekf7
296
296
 
297
- 8.5. Attaching an IRB console to an application process => attaching-an-irb-console-to-an-application-process-1cma32j
297
+ 10.3. Debugging frozen applications => debugging-frozen-applications-1qsjqq7
298
298
 
299
- 9. Tips => tips-19cwwf7
299
+ 10.4. Accessing individual application processes => accessing-individual-application-processes-1p0j4jb
300
300
 
301
- 9.1. User Switching (security feature) => user-switching-security--8njx1x
301
+ 10.5. Attaching an IRB console to an application process => attaching-an-irb-console-to-an-application-process-1cma32j
302
302
 
303
- 9.1.1. Requirements => requirements-yxvtxo
303
+ 11. Tips => tips-19cwwf7
304
304
 
305
- 9.1.2. Effects => effects-1lko7vo
305
+ 11.1. User Switching (security feature) => user-switching-security--8njx1x
306
306
 
307
- 9.1.3. Caveats & troubleshooting => caveats-troubleshooting-161hgge
307
+ 11.1.1. Requirements => requirements-yxvtxo
308
308
 
309
- 9.1.4. Finding out what user an application is running as => finding-out-what-user-an-application-is-running-as-7uwrol
309
+ 11.1.2. Effects => effects-1lko7vo
310
310
 
311
- 9.2. Copy-on-write memory support (reducing memory consumption of Ruby applications) => reducing-memory-consumption-of-ruby-on-rails-applications-by-33--1ubxnq0
311
+ 11.1.3. Caveats & troubleshooting => caveats-troubleshooting-161hgge
312
312
 
313
- 9.3. Capistrano recipe => capistrano-recipe-syzgo7
313
+ 11.1.4. Finding out what user an application is running as => finding-out-what-user-an-application-is-running-as-7uwrol
314
314
 
315
- 9.4. Bundler support => bundler-support-cf72ih
315
+ 11.2. Copy-on-write memory support (reducing memory consumption of Ruby applications) => reducing-memory-consumption-of-ruby-on-rails-applications-by-33--1ubxnq0
316
316
 
317
- 9.4.1. Does Phusion Passenger itself need to be added to the Gemfile? => does-phusion-passenger-itself-need-to-be-added-to-the-gemfile--17whimp
317
+ 11.3. Capistrano recipe => capistrano-recipe-syzgo7
318
318
 
319
- 9.5. Installing multiple Ruby on Rails versions => installing-multiple-ruby-on-rails-versions-mi5j14
319
+ 11.4. Bundler support => bundler-support-cf72ih
320
320
 
321
- 9.6. Making the application restart after each request => making-the-application-restart-after-each-request-183bezx
321
+ 11.4.1. Does Phusion Passenger itself need to be added to the Gemfile? => does-phusion-passenger-itself-need-to-be-added-to-the-gemfile--17whimp
322
322
 
323
- 9.7. How to fix broken images/CSS/JavaScript URIs in sub-URI deployments => how-to-fix-broken-images-css-javascript-uris-in-sub-uri-deployments-a63b6r
323
+ 11.5. Installing multiple Ruby on Rails versions => installing-multiple-ruby-on-rails-versions-mi5j14
324
324
 
325
- 9.8. Out-of-Band Work and Out-of-Band Garbage Collection => out-of-band-work-and-out-of-band-garbage-collection-kav2p8
325
+ 11.6. Making the application restart after each request => making-the-application-restart-after-each-request-183bezx
326
326
 
327
- 9.9. Flying Passenger => flying-passenger-q916f7
327
+ 11.7. How to fix broken images/CSS/JavaScript URIs in sub-URI deployments => how-to-fix-broken-images-css-javascript-uris-in-sub-uri-deployments-a63b6r
328
328
 
329
- 9.9.1. Requirements => requirements-1ntkin3
329
+ 11.8. Out-of-Band Work and Out-of-Band Garbage Collection => out-of-band-work-and-out-of-band-garbage-collection-kav2p8
330
330
 
331
- 9.9.2. Basic usage => basic-usage-joifsk
331
+ 11.9. Hooks => hooks-bcltgp
332
332
 
333
- 9.9.3. Configuring Flying Passenger => configuring-flying-passenger-1v35vgg
333
+ 11.9.1. Example => example-icjf0z
334
334
 
335
- 9.9.4. Managing the Flying Passenger daemon => managing-the-flying-passenger-daemon-1bng2bu
335
+ 11.9.2. Environment => environment-1amls4v
336
336
 
337
- 9.9.5. Using Flying Passenger with MRI 1.8 or JRuby => using-flying-passenger-with-mri-1-8-or-jruby-f5tbvs
337
+ 11.9.3. Blocking and concurrency => blocking-and-concurrency-cxpbyu
338
338
 
339
- 9.9.6. Caveats and limitations => caveats-and-limitations-lz3rbb
339
+ 11.9.4. Error handling => error-handling-1a1uvod
340
340
 
341
- 9.10. X-Sendfile support => x-sendfile-support-1cgyykw
341
+ 11.9.5. Available hooks => available-hooks-159anc3
342
342
 
343
- 9.11. Upload progress => upload-progress-71cyl7
343
+ 11.10. Flying Passenger => flying-passenger-q916f7
344
344
 
345
- 10. Under the hood => under-the-hood-21ue5t
345
+ 11.10.1. Requirements => requirements-1ntkin3
346
346
 
347
- 10.1. Page caching support => page-caching-support-kwq9b9
347
+ 11.10.2. Basic usage => basic-usage-joifsk
348
348
 
349
- 10.2. Phusion Passenger and its relationship with Ruby => phusion-passenger-and-its-relationship-with-ruby-1eq08ff
349
+ 11.10.3. Configuring Flying Passenger => configuring-flying-passenger-1v35vgg
350
350
 
351
- 10.2.1. How Ruby is used => how-ruby-is-used-14r83nr
351
+ 11.10.4. Managing the Flying Passenger daemon => managing-the-flying-passenger-daemon-1bng2bu
352
352
 
353
- 10.2.2. When the system has multiple Ruby interpreters => when-the-system-has-multiple-ruby-interpreters-10tm1fq
353
+ 11.10.5. Using Flying Passenger with MRI 1.8 or JRuby => using-flying-passenger-with-mri-1-8-or-jruby-f5tbvs
354
354
 
355
- 10.3. Static assets serving => static-assets-serving-wo2d9v
355
+ 11.10.6. Caveats and limitations => caveats-and-limitations-lz3rbb
356
356
 
357
- 10.4. How Phusion Passenger detects whether a virtual host is a web application => how-phusion-passenger-detects-whether-a-virtual-host-is-a-web-application-179mp8m
357
+ 11.11. X-Sendfile support => x-sendfile-support-1cgyykw
358
358
 
359
- 11. Appendix A: About this document => appendix-a-about-this-document-103toqs
359
+ 11.12. Upload progress => upload-progress-71cyl7
360
360
 
361
- 12. Appendix B: Terminology => appendix-b-terminology-h4eaf4
361
+ 12. Under the hood => under-the-hood-21ue5t
362
362
 
363
- 12.1. Application root => application-root-otx6xf
363
+ 12.1. Page caching support => page-caching-support-kwq9b9
364
364
 
365
- 12.2. Idle process => idle-process-potb6g
365
+ 12.2. Phusion Passenger and its relationship with Ruby => phusion-passenger-and-its-relationship-with-ruby-1eq08ff
366
366
 
367
- 12.3. Inactive process => inactive-process-16gjv2e
367
+ 12.2.1. How Ruby is used => how-ruby-is-used-14r83nr
368
368
 
369
- 13. Appendix C: Spawning methods explained => appendix-c-spawning-methods-explained-owghi9
369
+ 12.2.2. When the system has multiple Ruby interpreters => when-the-system-has-multiple-ruby-interpreters-10tm1fq
370
370
 
371
- 13.1. The most straightforward and traditional way: direct spawning => the-most-straightforward-and-traditional-way-conservative-spawning-1ybbli2
371
+ 12.3. Static assets serving => static-assets-serving-wo2d9v
372
372
 
373
- 13.2. The smart spawning method => the-smart-spawning-method-1cvu9dd
373
+ 12.4. How Phusion Passenger detects whether a virtual host is a web application => how-phusion-passenger-detects-whether-a-virtual-host-is-a-web-application-179mp8m
374
374
 
375
- 13.2.1. How it works => how-it-works-672zja
375
+ 13. Appendix A: About this document => appendix-a-about-this-document-103toqs
376
376
 
377
- 13.2.2. Summary of benefits => summary-of-benefits-1yrihfb
377
+ 14. Appendix B: Terminology => appendix-b-terminology-h4eaf4
378
378
 
379
- 13.3. Smart spawning gotcha #1: unintentional file descriptor sharing => smart-spawning-gotcha-1-unintentional-file-descriptor-sharing-z1y55l
379
+ 14.1. Application root => application-root-otx6xf
380
380
 
381
- 13.3.1. Example 1: Memcached connection sharing (harmful) => example-1-memcached-connection-sharing-harmful--c71wqw
381
+ 14.2. Idle process => idle-process-potb6g
382
382
 
383
- 13.3.2. Example 2: Log file sharing (not harmful) => example-2-log-file-sharing-not-harmful--1p2yuol
383
+ 14.3. Inactive process => inactive-process-16gjv2e
384
384
 
385
- 13.4. Smart spawning gotcha #2: the need to revive threads => smart-spawning-gotcha-2-the-need-to-revive-threads-1k6cj7d
385
+ 15. Appendix C: Spawning methods explained => appendix-c-spawning-methods-explained-owghi9
386
386
 
387
- 13.5. Smart spawning gotcha #3: code load order => smart-spawning-gotcha-3-code-load-order-nkotiy
387
+ 15.1. The most straightforward and traditional way: direct spawning => the-most-straightforward-and-traditional-way-conservative-spawning-1ybbli2
388
388
 
389
- 14. Appendix D: About environment variables => appendix-d-about-environment-variables-1lebv1u
389
+ 15.2. The smart spawning method => the-smart-spawning-method-1cvu9dd
390
390
 
391
- 14.1. Working with environment variables => working-with-environment-variables-85e6aa
391
+ 15.2.1. How it works => how-it-works-672zja
392
392
 
393
- 14.2. The PATH environment variable => the-path-environment-variable-p8e32r
393
+ 15.2.2. Summary of benefits => summary-of-benefits-1yrihfb
394
394
 
395
- 14.2.1. Adding Phusion Passenger’s administration tools to PATH => adding-phusion-passenger-s-administration-tools-to-path-xwppud
395
+ 15.3. Smart spawning gotcha #1: unintentional file descriptor sharing => smart-spawning-gotcha-1-unintentional-file-descriptor-sharing-z1y55l
396
396
 
397
- 14.3. Making environment variables permanent => making-environment-variables-permanent-13x0l4h
397
+ 15.3.1. Example 1: Memcached connection sharing (harmful) => example-1-memcached-connection-sharing-harmful--c71wqw
398
398
 
399
- 14.3.1. bash => bash-1pktn63
399
+ 15.3.2. Example 2: Log file sharing (not harmful) => example-2-log-file-sharing-not-harmful--1p2yuol
400
400
 
401
- 14.3.2. Apache => apache-15zqjvi
401
+ 15.4. Smart spawning gotcha #2: the need to revive threads => smart-spawning-gotcha-2-the-need-to-revive-threads-1k6cj7d
402
402
 
403
- 14.3.3. Nginx => nginx-l7ztbb
403
+ 15.5. Smart spawning gotcha #3: code load order => smart-spawning-gotcha-3-code-load-order-nkotiy
404
404
 
405
- 14.3.4. cron => cron-1kjp7ck
405
+ 16. Appendix D: About environment variables => appendix-d-about-environment-variables-1lebv1u
406
406
 
407
- 14.3.5. Phusion Passenger-served apps => phusion-passenger-served-apps-478vyt
407
+ 16.1. Working with environment variables => working-with-environment-variables-85e6aa
408
408
 
409
- 14.4. Environment variables and sudo => environment-variables-and-sudo-1odzcpz
409
+ 16.2. The PATH environment variable => the-path-environment-variable-p8e32r
410
+
411
+ 16.2.1. Adding Phusion Passenger’s administration tools to PATH => adding-phusion-passenger-s-administration-tools-to-path-xwppud
412
+
413
+ 16.3. Making environment variables permanent => making-environment-variables-permanent-13x0l4h
414
+
415
+ 16.3.1. bash => bash-1pktn63
416
+
417
+ 16.3.2. Apache => apache-15zqjvi
418
+
419
+ 16.3.3. Nginx => nginx-l7ztbb
420
+
421
+ 16.3.4. cron => cron-1kjp7ck
422
+
423
+ 16.3.5. Phusion Passenger-served apps => phusion-passenger-served-apps-478vyt
424
+
425
+ 16.4. Environment variables and sudo => environment-variables-and-sudo-1odzcpz
410
426