passenger 3.9.2.beta → 4.0.0.rc4

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 (159) hide show
  1. data/.travis.yml +3 -0
  2. data/NEWS +77 -7
  3. data/README.md +3 -11
  4. data/bin/passenger-install-apache2-module +24 -20
  5. data/bin/passenger-install-nginx-module +25 -23
  6. data/build/agents.rb +11 -0
  7. data/build/apache2.rb +9 -5
  8. data/build/basics.rb +37 -30
  9. data/build/common_library.rb +4 -1
  10. data/build/cplusplus_support.rb +5 -5
  11. data/build/cxx_tests.rb +28 -8
  12. data/build/integration_tests.rb +6 -3
  13. data/build/nginx.rb +3 -3
  14. data/build/packaging.rb +95 -57
  15. data/build/ruby_extension.rb +34 -21
  16. data/build/ruby_tests.rb +4 -2
  17. data/build/test_basics.rb +1 -1
  18. data/dev/run_travis.sh +36 -1
  19. data/doc/Users guide Apache.html +425 -308
  20. data/doc/Users guide Apache.idmap.txt +78 -70
  21. data/doc/Users guide Apache.index.sqlite3 +0 -0
  22. data/doc/Users guide Apache.txt +33 -92
  23. data/doc/Users guide Nginx.html +519 -220
  24. data/doc/Users guide Nginx.idmap.txt +78 -60
  25. data/doc/Users guide Nginx.txt +115 -26
  26. data/doc/Users guide Standalone.html +8 -2
  27. data/doc/users_guide_snippets/analysis_and_system_maintenance.txt +1 -7
  28. data/doc/users_guide_snippets/installation.txt +167 -22
  29. data/doc/users_guide_snippets/rackup_specifications.txt +4 -0
  30. data/doc/users_guide_snippets/since_version.txt +1 -0
  31. data/doc/users_guide_snippets/support_information.txt +3 -7
  32. data/doc/users_guide_snippets/tips.txt +0 -24
  33. data/ext/apache2/Configuration.cpp +11 -33
  34. data/ext/apache2/Configuration.hpp +3 -18
  35. data/ext/apache2/DirectoryMapper.h +20 -70
  36. data/ext/apache2/Hooks.cpp +2 -2
  37. data/ext/common/AgentsStarter.cpp +0 -2
  38. data/ext/common/AgentsStarter.h +0 -1
  39. data/ext/common/AgentsStarter.hpp +1 -3
  40. data/ext/common/ApplicationPool2/AppTypes.cpp +74 -0
  41. data/ext/common/ApplicationPool2/AppTypes.h +202 -0
  42. data/ext/common/ApplicationPool2/Common.h +12 -10
  43. data/ext/common/ApplicationPool2/DirectSpawner.h +256 -0
  44. data/ext/common/ApplicationPool2/DummySpawner.h +90 -0
  45. data/ext/common/ApplicationPool2/Group.h +311 -94
  46. data/ext/common/ApplicationPool2/Implementation.cpp +405 -145
  47. data/ext/common/ApplicationPool2/Options.h +24 -26
  48. data/ext/common/ApplicationPool2/PipeWatcher.h +20 -13
  49. data/ext/common/ApplicationPool2/Pool.h +326 -183
  50. data/ext/common/ApplicationPool2/Process.h +205 -55
  51. data/ext/common/ApplicationPool2/README.md +1 -1
  52. data/ext/common/ApplicationPool2/Session.h +21 -10
  53. data/ext/common/ApplicationPool2/SmartSpawner.h +801 -0
  54. data/ext/common/ApplicationPool2/Spawner.h +141 -1149
  55. data/ext/common/ApplicationPool2/SpawnerFactory.h +132 -0
  56. data/ext/common/ApplicationPool2/SuperGroup.h +146 -223
  57. data/ext/common/Constants.h +4 -2
  58. data/ext/common/Exceptions.h +23 -1
  59. data/ext/common/Logging.cpp +17 -6
  60. data/ext/common/Logging.h +37 -7
  61. data/ext/common/ResourceLocator.h +1 -1
  62. data/ext/common/Utils.cpp +49 -1
  63. data/ext/common/Utils.h +13 -4
  64. data/ext/common/{AnsiColorConstants.h → Utils/AnsiColorConstants.h} +0 -0
  65. data/ext/common/{BCrypt.cpp → Utils/BCrypt.cpp} +0 -0
  66. data/ext/common/{BCrypt.h → Utils/BCrypt.h} +0 -0
  67. data/ext/common/{Blowfish.c → Utils/Blowfish.c} +0 -0
  68. data/ext/common/{Blowfish.h → Utils/Blowfish.h} +0 -0
  69. data/ext/common/Utils/CachedFileStat.hpp +27 -25
  70. data/ext/common/Utils/Curl.h +184 -0
  71. data/ext/common/{HttpConstants.h → Utils/HttpConstants.h} +3 -0
  72. data/ext/common/Utils/IOUtils.cpp +6 -2
  73. data/ext/common/{IniFile.h → Utils/IniFile.h} +0 -0
  74. data/ext/common/Utils/LargeFiles.cpp +30 -0
  75. data/ext/common/Utils/LargeFiles.h +40 -0
  76. data/ext/common/Utils/StrIntUtils.cpp +72 -8
  77. data/ext/common/Utils/StrIntUtils.h +24 -2
  78. data/ext/common/Utils/StringMap.h +12 -2
  79. data/ext/common/Utils/VariantMap.h +51 -2
  80. data/ext/common/Utils/jsoncpp.cpp +1 -1
  81. data/ext/common/agents/Base.cpp +147 -11
  82. data/ext/common/agents/HelperAgent/AgentOptions.h +14 -6
  83. data/ext/common/agents/HelperAgent/Main.cpp +79 -19
  84. data/ext/common/agents/HelperAgent/RequestHandler.h +36 -16
  85. data/ext/common/agents/LoggingAgent/LoggingServer.h +3 -5
  86. data/ext/common/agents/LoggingAgent/Main.cpp +2 -4
  87. data/ext/common/agents/LoggingAgent/RemoteSender.h +18 -24
  88. data/ext/common/agents/SpawnPreparer.cpp +7 -0
  89. data/ext/common/agents/Watchdog/Main.cpp +96 -38
  90. data/ext/nginx/Configuration.c +26 -22
  91. data/ext/nginx/Configuration.h +4 -2
  92. data/ext/nginx/ContentHandler.c +23 -52
  93. data/ext/nginx/ContentHandler.h +5 -11
  94. data/ext/nginx/config +10 -3
  95. data/ext/nginx/ngx_http_passenger_module.c +21 -6
  96. data/ext/nginx/ngx_http_passenger_module.h +4 -1
  97. data/ext/oxt/dynamic_thread_group.hpp +9 -1
  98. data/ext/oxt/system_calls.cpp +2 -2
  99. data/ext/ruby/extconf.rb +2 -1
  100. data/helper-scripts/backtrace-sanitizer.rb +2 -0
  101. data/helper-scripts/wsgi-loader.py +54 -21
  102. data/lib/phusion_passenger.rb +5 -3
  103. data/lib/phusion_passenger/abstract_installer.rb +18 -41
  104. data/lib/phusion_passenger/admin_tools/memory_stats.rb +2 -2
  105. data/lib/phusion_passenger/admin_tools/server_instance.rb +2 -2
  106. data/lib/phusion_passenger/common_library.rb +23 -3
  107. data/lib/phusion_passenger/debug_logging.rb +10 -3
  108. data/lib/phusion_passenger/packaging.rb +1 -0
  109. data/lib/phusion_passenger/platform_info.rb +113 -115
  110. data/lib/phusion_passenger/platform_info/compiler.rb +224 -134
  111. data/lib/phusion_passenger/platform_info/cxx_portability.rb +143 -0
  112. data/lib/phusion_passenger/platform_info/depcheck.rb +371 -0
  113. data/lib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +124 -0
  114. data/lib/phusion_passenger/platform_info/depcheck_specs/compiler_toolchain.rb +97 -0
  115. data/lib/phusion_passenger/platform_info/depcheck_specs/gems.rb +39 -0
  116. data/lib/phusion_passenger/platform_info/depcheck_specs/libs.rb +118 -0
  117. data/lib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +137 -0
  118. data/lib/phusion_passenger/platform_info/depcheck_specs/utilities.rb +15 -0
  119. data/lib/phusion_passenger/platform_info/operating_system.rb +6 -5
  120. data/lib/phusion_passenger/platform_info/ruby.rb +45 -34
  121. data/lib/phusion_passenger/request_handler.rb +35 -22
  122. data/lib/phusion_passenger/request_handler/thread_handler.rb +5 -6
  123. data/lib/phusion_passenger/ruby_core_enhancements.rb +7 -1
  124. data/lib/phusion_passenger/standalone/runtime_installer.rb +43 -34
  125. data/lib/phusion_passenger/utils/robust_interruption.rb +34 -18
  126. data/passenger.gemspec +25 -0
  127. data/resources/templates/standalone/config.erb +3 -1
  128. data/test/config.json.travis +2 -2
  129. data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +37 -5
  130. data/test/cxx/ApplicationPool2/PoolTest.cpp +143 -50
  131. data/test/cxx/ApplicationPool2/ProcessTest.cpp +8 -0
  132. data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +28 -17
  133. data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +31 -26
  134. data/test/cxx/RequestHandlerTest.cpp +17 -1
  135. data/test/cxx/UtilsTest.cpp +84 -10
  136. data/test/integration_tests/apache2_tests.rb +49 -163
  137. data/test/integration_tests/hello_world_wsgi_spec.rb +2 -2
  138. data/test/integration_tests/mycook_spec.rb +1 -1
  139. data/test/integration_tests/nginx_tests.rb +37 -19
  140. data/test/ruby/request_handler_spec.rb +1 -0
  141. data/test/ruby/spec_helper.rb +52 -1
  142. data/test/stub/nginx/nginx.conf.erb +2 -0
  143. data/test/stub/rack/start.rb +5 -0
  144. data/test/stub/rails3.0/Gemfile.lock +30 -30
  145. data/test/stub/rails3.1/Gemfile +1 -1
  146. data/test/stub/rails3.1/Gemfile.lock +3 -3
  147. data/test/stub/rails3.2/Gemfile +1 -1
  148. data/test/stub/rails3.2/Gemfile.lock +4 -4
  149. data/test/stub/rails_apps/2.3/mycook/app/controllers/welcome_controller.rb +1 -1
  150. data/test/stub/rails_apps/2.3/mycook/app/helpers/recipes_helper.rb +2 -0
  151. data/test/stub/rails_apps/2.3/mycook/app/helpers/test_helper.rb +2 -0
  152. data/test/stub/rails_apps/2.3/mycook/app/helpers/uploads_helper.rb +2 -0
  153. data/test/stub/rails_apps/2.3/mycook/app/helpers/welcome_helper.rb +2 -0
  154. data/test/support/nginx_controller.rb +2 -1
  155. metadata +160 -156
  156. data/build/gempackagetask.rb +0 -99
  157. data/build/packagetask.rb +0 -186
  158. data/ext/common/StringListCreator.h +0 -83
  159. data/lib/phusion_passenger/dependencies.rb +0 -657
@@ -46,7 +46,7 @@ end
46
46
  desc "Install developer dependencies"
47
47
  task 'test:install_deps' do
48
48
  gem_install = PlatformInfo.gem_command + " install --no-rdoc --no-ri"
49
- gem_install = "sudo #{gem_install}" if boolean_option('SUDO')
49
+ gem_install = "#{PlatformInfo.ruby_sudo_command} #{gem_install}" if boolean_option('SUDO')
50
50
  sh "#{gem_install} rails -v 2.3.15"
51
51
  sh "#{gem_install} bundler rspec mime-types daemon_controller json"
52
52
  if boolean_option('RAILS_BUNDLES', true)
@@ -1,6 +1,19 @@
1
1
  #!/bin/bash
2
2
  set -e
3
3
 
4
+ export VERBOSE=1
5
+ export TRACE=1
6
+
7
+ sudo sh -c 'cat >> /etc/hosts' <<EOF
8
+ 127.0.0.1 passenger.test
9
+ 127.0.0.1 mycook.passenger.test
10
+ 127.0.0.1 zsfa.passenger.test
11
+ 127.0.0.1 norails.passenger.test
12
+ 127.0.0.1 1.passenger.test 2.passenger.test 3.passenger.test
13
+ 127.0.0.1 4.passenger.test 5.passenger.test 6.passenger.test
14
+ 127.0.0.1 7.passenger.test 8.passenger.test 9.passenger.test
15
+ EOF
16
+
4
17
  if [[ "$TEST_RUBY_VERSION" != "" ]]; then
5
18
  echo "$ rvm use $TEST_RUBY_VERSION"
6
19
  source ~/.rvm/scripts/rvm
@@ -24,7 +37,7 @@ fi
24
37
 
25
38
  if [[ "$TEST_CXX" = 1 ]]; then
26
39
  echo "$ rake test:install_deps RAILS_BUNDLES=no"
27
- rake test:install_deps
40
+ rake test:install_deps RAILS_BUNDLES=no
28
41
  echo "$ rake test:cxx"
29
42
  rake test:cxx
30
43
  echo "$ rake test:oxt"
@@ -37,3 +50,25 @@ if [[ "$TEST_RUBY" = 1 ]]; then
37
50
  echo "$ rake test:ruby"
38
51
  rake test:ruby
39
52
  fi
53
+
54
+ if [[ "$TEST_NGINX" = 1 ]]; then
55
+ echo "$ rake test:install_deps RAILS_BUNDLES=no"
56
+ rake test:install_deps RAILS_BUNDLES=no
57
+ echo "$ gem install rack daemon_controller --no-rdoc --no-ri"
58
+ gem install rack daemon_controller --no-rdoc --no-ri
59
+ echo "$ ./bin/passenger-install-nginx-module --auto --prefix=/tmp/nginx --auto-download"
60
+ ./bin/passenger-install-nginx-module --auto --prefix=/tmp/nginx --auto-download
61
+ echo "$ rake test:integration:nginx"
62
+ rake test:integration:nginx
63
+ fi
64
+
65
+ if [[ "$TEST_APACHE2" = 1 ]]; then
66
+ echo "$ rake test:install_deps RAILS_BUNDLES=no"
67
+ rake test:install_deps RAILS_BUNDLES=no
68
+ echo "$ gem install rack --no-rdoc --no-ri"
69
+ gem install rack --no-rdoc --no-ri
70
+ echo "$ rake apache2"
71
+ rake apache2
72
+ echo "$ rake test:integration:apache2"
73
+ rake test:integration:apache2
74
+ fi
@@ -1105,16 +1105,21 @@ using the command line.</p></div>
1105
1105
  <div class="foo toclevel3"><a href="#_supported_operating_systems">1.1. Supported operating systems</a></div>
1106
1106
  <div class="foo toclevel3"><a href="#_where_to_get_support">1.2. Where to get support</a></div>
1107
1107
  <div class="foo toclevel2"><a href="#_installation">2. Installation</a></div>
1108
- <div class="foo toclevel3"><a href="#rubygems_generic_install">2.1. Generic installation, upgrade and downgrade method: via RubyGems</a></div>
1109
- <div class="foo toclevel3"><a href="#tarball_generic_install">2.2. Generic installation, upgrade and downgrade method: via tarball</a></div>
1110
- <div class="foo toclevel3"><a href="#_installing_or_upgrading_on_ubuntu">2.3. Installing or upgrading on Ubuntu</a></div>
1111
- <div class="foo toclevel3"><a href="#_installing_or_upgrading_on_red_hat_fedora_centos_or_scientificlinux">2.4. Installing or upgrading on Red Hat, Fedora, CentOS or ScientificLinux</a></div>
1112
- <div class="foo toclevel3"><a href="#_upgrading_from_open_source_to_enterprise">2.5. Upgrading from open source to Enterprise</a></div>
1113
- <div class="foo toclevel3"><a href="#_non_interactive_automatic_headless_installs_or_upgrades">2.6. Non-interactive, automatic, headless installs or upgrades</a></div>
1114
- <div class="foo toclevel3"><a href="#locating_apache_conf">2.7. Locating the Apache configuration file</a></div>
1115
- <div class="foo toclevel3"><a href="#_disabling_without_uninstalling">2.8. Disabling without uninstalling</a></div>
1116
- <div class="foo toclevel3"><a href="#uninstalling">2.9. Uninstalling</a></div>
1117
- <div class="foo toclevel3"><a href="#moving_phusion_passenger">2.10. Moving to a different directory</a></div>
1108
+ <div class="foo toclevel3"><a href="#_synopsis">2.1. Synopsis</a></div>
1109
+ <div class="foo toclevel3"><a href="#rubygems_generic_install">2.2. Generic installation, upgrade and downgrade method: via RubyGems</a></div>
1110
+ <div class="foo toclevel3"><a href="#tarball_generic_install">2.3. Generic installation, upgrade and downgrade method: via tarball</a></div>
1111
+ <div class="foo toclevel3"><a href="#_installing_or_upgrading_on_debian_6_or_ubuntu">2.4. Installing or upgrading on Debian 6 or Ubuntu</a></div>
1112
+ <div class="foo toclevel3"><a href="#_installing_or_upgrading_on_red_hat_fedora_centos_or_scientificlinux">2.5. Installing or upgrading on Red Hat, Fedora, CentOS or ScientificLinux</a></div>
1113
+ <div class="foo toclevel3"><a href="#_upgrading_from_open_source_to_enterprise">2.6. Upgrading from open source to Enterprise</a></div>
1114
+ <div class="foo toclevel3"><a href="#_non_interactive_automatic_headless_installs_or_upgrades">2.7. Non-interactive, automatic, headless installs or upgrades</a></div>
1115
+ <div class="foo toclevel3"><a href="#_customizing_the_compilation_process">2.8. Customizing the compilation process</a></div>
1116
+ <div class="foo toclevel4"><a href="#_setting_the_compiler">2.8.1. Setting the compiler</a></div>
1117
+ <div class="foo toclevel4"><a href="#_adding_additional_compiler_or_linker_flags">2.8.2. Adding additional compiler or linker flags</a></div>
1118
+ <div class="foo toclevel4"><a href="#_forcing_location_of_certain_command_line_tools">2.8.3. Forcing location of certain command line tools</a></div>
1119
+ <div class="foo toclevel3"><a href="#working_with_apache_conf">2.9. Working with the Apache configuration file</a></div>
1120
+ <div class="foo toclevel3"><a href="#_disabling_without_uninstalling">2.10. Disabling without uninstalling</a></div>
1121
+ <div class="foo toclevel3"><a href="#uninstalling">2.11. Uninstalling</a></div>
1122
+ <div class="foo toclevel3"><a href="#moving_phusion_passenger">2.12. Moving to a different directory</a></div>
1118
1123
  <div class="foo toclevel2"><a href="#_deploying_a_ruby_on_rails_1_x_or_2_x_but_not_rails_gt_3_x_application">3. Deploying a Ruby on Rails 1.x or 2.x (but NOT Rails &gt;= 3.x) application</a></div>
1119
1124
  <div class="foo toclevel3"><a href="#_deploying_to_a_virtual_host_8217_s_root">3.1. Deploying to a virtual host’s root</a></div>
1120
1125
  <div class="foo toclevel3"><a href="#deploying_rails_to_sub_uri">3.2. Deploying to a sub URI</a></div>
@@ -1140,58 +1145,58 @@ using the command line.</p></div>
1140
1145
  <div class="foo toclevel2"><a href="#_configuring_phusion_passenger">6. Configuring Phusion Passenger</a></div>
1141
1146
  <div class="foo toclevel3"><a href="#_passengerroot_lt_directory_gt">6.1. PassengerRoot &lt;directory&gt;</a></div>
1142
1147
  <div class="foo toclevel3"><a href="#PassengerRuby">6.2. PassengerRuby &lt;filename&gt;</a></div>
1143
- <div class="foo toclevel3"><a href="#PassengerAppRoot">6.3. PassengerAppRoot &lt;path/to/root&gt;</a></div>
1144
- <div class="foo toclevel3"><a href="#PassengerSpawnMethod">6.4. PassengerSpawnMethod &lt;string&gt;</a></div>
1145
- <div class="foo toclevel3"><a href="#_passengerenabled_lt_on_off_gt">6.5. PassengerEnabled &lt;on|off&gt;</a></div>
1146
- <div class="foo toclevel3"><a href="#PassengerTempDir">6.6. PassengerTempDir &lt;directory&gt;</a></div>
1147
- <div class="foo toclevel3"><a href="#PassengerUploadBufferDir">6.7. PassengerUploadBufferDir &lt;directory&gt;</a></div>
1148
- <div class="foo toclevel3"><a href="#_passengerrestartdir_lt_directory_gt">6.8. PassengerRestartDir &lt;directory&gt;</a></div>
1149
- <div class="foo toclevel3"><a href="#PassengerBufferResponse">6.9. PassengerBufferResponse &lt;on|off&gt;</a></div>
1150
- <div class="foo toclevel3"><a href="#PassengerRollingRestarts">6.10. PassengerRollingRestarts &lt;on|off&gt;</a></div>
1151
- <div class="foo toclevel3"><a href="#_passengerresistdeploymenterrors_lt_on_off_gt">6.11. PassengerResistDeploymentErrors &lt;on|off&gt;</a></div>
1152
- <div class="foo toclevel3"><a href="#_security_options">6.12. Security options</a></div>
1153
- <div class="foo toclevel4"><a href="#PassengerUserSwitching">6.12.1. PassengerUserSwitching &lt;on|off&gt;</a></div>
1154
- <div class="foo toclevel4"><a href="#_passengeruser_lt_username_gt">6.12.2. PassengerUser &lt;username&gt;</a></div>
1155
- <div class="foo toclevel4"><a href="#_passengergroup_lt_group_name_gt">6.12.3. PassengerGroup &lt;group name&gt;</a></div>
1156
- <div class="foo toclevel4"><a href="#PassengerDefaultUser">6.12.4. PassengerDefaultUser &lt;username&gt;</a></div>
1157
- <div class="foo toclevel4"><a href="#PassengerDefaultGroup">6.12.5. PassengerDefaultGroup &lt;group name&gt;</a></div>
1158
- <div class="foo toclevel4"><a href="#_passengerfriendlyerrorpages_lt_on_off_gt">6.12.6. PassengerFriendlyErrorPages &lt;on|off&gt;</a></div>
1159
- <div class="foo toclevel3"><a href="#_resource_control_and_optimization_options">6.13. Resource control and optimization options</a></div>
1160
- <div class="foo toclevel4"><a href="#_passengermaxpoolsize_lt_integer_gt">6.13.1. PassengerMaxPoolSize &lt;integer&gt;</a></div>
1161
- <div class="foo toclevel4"><a href="#PassengerMinInstances">6.13.2. PassengerMinInstances &lt;integer&gt;</a></div>
1162
- <div class="foo toclevel4"><a href="#_passengermaxinstances_lt_integer_gt">6.13.3. PassengerMaxInstances &lt;integer&gt;</a></div>
1163
- <div class="foo toclevel4"><a href="#_passengermaxinstancesperapp_lt_integer_gt">6.13.4. PassengerMaxInstancesPerApp &lt;integer&gt;</a></div>
1164
- <div class="foo toclevel4"><a href="#PassengerPoolIdleTime">6.13.5. PassengerPoolIdleTime &lt;integer&gt;</a></div>
1165
- <div class="foo toclevel4"><a href="#_passengermaxpreloaderidletime_lt_integer_gt">6.13.6. PassengerMaxPreloaderIdleTime &lt;integer&gt;</a></div>
1166
- <div class="foo toclevel4"><a href="#PassengerConcurrencyModel">6.13.7. PassengerConcurrencyModel &lt;process|thread&gt;</a></div>
1167
- <div class="foo toclevel4"><a href="#PassengerThreadCount">6.13.8. PassengerThreadCount &lt;number&gt;</a></div>
1168
- <div class="foo toclevel4"><a href="#PassengerMaxRequests">6.13.9. PassengerMaxRequests &lt;integer&gt;</a></div>
1169
- <div class="foo toclevel4"><a href="#PassengerMaxRequestTime">6.13.10. PassengerMaxRequestTime &lt;seconds&gt;</a></div>
1170
- <div class="foo toclevel4"><a href="#PassengerMemoryLimit">6.13.11. PassengerMemoryLimit &lt;integer&gt;</a></div>
1171
- <div class="foo toclevel4"><a href="#_passengerstatthrottlerate_lt_integer_gt">6.13.12. PassengerStatThrottleRate &lt;integer&gt;</a></div>
1172
- <div class="foo toclevel4"><a href="#PassengerPreStart">6.13.13. PassengerPreStart &lt;url&gt;</a></div>
1173
- <div class="foo toclevel4"><a href="#PassengerHighPerformance">6.13.14. PassengerHighPerformance &lt;on|off&gt;</a></div>
1174
- <div class="foo toclevel3"><a href="#_compatibility_options">6.14. Compatibility options</a></div>
1175
- <div class="foo toclevel4"><a href="#PassengerResolveSymlinksInDocumentRoot">6.14.1. PassengerResolveSymlinksInDocumentRoot &lt;on|off&gt;</a></div>
1176
- <div class="foo toclevel4"><a href="#_passengerallowencodedslashes_lt_on_off_gt">6.14.2. PassengerAllowEncodedSlashes &lt;on|off&gt;</a></div>
1177
- <div class="foo toclevel3"><a href="#_logging_and_debugging_options">6.15. Logging and debugging options</a></div>
1178
- <div class="foo toclevel4"><a href="#_passengerloglevel_lt_integer_gt">6.15.1. PassengerLogLevel &lt;integer&gt;</a></div>
1179
- <div class="foo toclevel4"><a href="#_passengerdebuglogfile_lt_filename_gt">6.15.2. PassengerDebugLogFile &lt;filename&gt;</a></div>
1180
- <div class="foo toclevel4"><a href="#_passengerdebugger_lt_on_off_gt">6.15.3. PassengerDebugger &lt;on|off&gt;</a></div>
1181
- <div class="foo toclevel3"><a href="#_classic_ruby_on_rails_8656_2_x_specific_options">6.16. Classic Ruby on Rails (⇐ 2.x)-specific options</a></div>
1182
- <div class="foo toclevel4"><a href="#_railsautodetect_lt_on_off_gt">6.16.1. RailsAutoDetect &lt;on|off&gt;</a></div>
1183
- <div class="foo toclevel4"><a href="#RailsBaseURI">6.16.2. RailsBaseURI &lt;uri&gt;</a></div>
1184
- <div class="foo toclevel4"><a href="#rails_env">6.16.3. RailsEnv &lt;string&gt;</a></div>
1185
- <div class="foo toclevel3"><a href="#_rack_and_rails_gt_3_specific_options">6.17. Rack and Rails &gt;= 3 specific options</a></div>
1186
- <div class="foo toclevel4"><a href="#_rackautodetect_lt_on_off_gt">6.17.1. RackAutoDetect &lt;on|off&gt;</a></div>
1187
- <div class="foo toclevel4"><a href="#RackBaseURI">6.17.2. RackBaseURI &lt;uri&gt;</a></div>
1188
- <div class="foo toclevel4"><a href="#rack_env">6.17.3. RackEnv &lt;string&gt;</a></div>
1189
- <div class="foo toclevel3"><a href="#_deprecated_options">6.18. Deprecated options</a></div>
1190
- <div class="foo toclevel4"><a href="#_railsruby">6.18.1. RailsRuby</a></div>
1191
- <div class="foo toclevel4"><a href="#_railsuserswitching">6.18.2. RailsUserSwitching</a></div>
1192
- <div class="foo toclevel4"><a href="#_railsdefaultuser">6.18.3. RailsDefaultUser</a></div>
1193
- <div class="foo toclevel4"><a href="#_railsallowmodrewrite">6.18.4. RailsAllowModRewrite</a></div>
1194
- <div class="foo toclevel4"><a href="#_railsspawnmethod">6.18.5. RailsSpawnMethod</a></div>
1148
+ <div class="foo toclevel3"><a href="#_passengerpython_lt_filename_gt">6.3. PassengerPython &lt;filename&gt;</a></div>
1149
+ <div class="foo toclevel3"><a href="#PassengerAppRoot">6.4. PassengerAppRoot &lt;path/to/root&gt;</a></div>
1150
+ <div class="foo toclevel3"><a href="#PassengerSpawnMethod">6.5. PassengerSpawnMethod &lt;string&gt;</a></div>
1151
+ <div class="foo toclevel3"><a href="#PassengerEnabled">6.6. PassengerEnabled &lt;on|off&gt;</a></div>
1152
+ <div class="foo toclevel3"><a href="#PassengerTempDir">6.7. PassengerTempDir &lt;directory&gt;</a></div>
1153
+ <div class="foo toclevel3"><a href="#PassengerUploadBufferDir">6.8. PassengerUploadBufferDir &lt;directory&gt;</a></div>
1154
+ <div class="foo toclevel3"><a href="#_passengerrestartdir_lt_directory_gt">6.9. PassengerRestartDir &lt;directory&gt;</a></div>
1155
+ <div class="foo toclevel3"><a href="#PassengerBufferResponse">6.10. PassengerBufferResponse &lt;on|off&gt;</a></div>
1156
+ <div class="foo toclevel3"><a href="#PassengerRollingRestarts">6.11. PassengerRollingRestarts &lt;on|off&gt;</a></div>
1157
+ <div class="foo toclevel3"><a href="#_passengerresistdeploymenterrors_lt_on_off_gt">6.12. PassengerResistDeploymentErrors &lt;on|off&gt;</a></div>
1158
+ <div class="foo toclevel3"><a href="#_security_options">6.13. Security options</a></div>
1159
+ <div class="foo toclevel4"><a href="#PassengerUserSwitching">6.13.1. PassengerUserSwitching &lt;on|off&gt;</a></div>
1160
+ <div class="foo toclevel4"><a href="#_passengeruser_lt_username_gt">6.13.2. PassengerUser &lt;username&gt;</a></div>
1161
+ <div class="foo toclevel4"><a href="#_passengergroup_lt_group_name_gt">6.13.3. PassengerGroup &lt;group name&gt;</a></div>
1162
+ <div class="foo toclevel4"><a href="#PassengerDefaultUser">6.13.4. PassengerDefaultUser &lt;username&gt;</a></div>
1163
+ <div class="foo toclevel4"><a href="#PassengerDefaultGroup">6.13.5. PassengerDefaultGroup &lt;group name&gt;</a></div>
1164
+ <div class="foo toclevel4"><a href="#_passengerfriendlyerrorpages_lt_on_off_gt">6.13.6. PassengerFriendlyErrorPages &lt;on|off&gt;</a></div>
1165
+ <div class="foo toclevel3"><a href="#_resource_control_and_optimization_options">6.14. Resource control and optimization options</a></div>
1166
+ <div class="foo toclevel4"><a href="#_passengermaxpoolsize_lt_integer_gt">6.14.1. PassengerMaxPoolSize &lt;integer&gt;</a></div>
1167
+ <div class="foo toclevel4"><a href="#PassengerMinInstances">6.14.2. PassengerMinInstances &lt;integer&gt;</a></div>
1168
+ <div class="foo toclevel4"><a href="#_passengermaxinstances_lt_integer_gt">6.14.3. PassengerMaxInstances &lt;integer&gt;</a></div>
1169
+ <div class="foo toclevel4"><a href="#_passengermaxinstancesperapp_lt_integer_gt">6.14.4. PassengerMaxInstancesPerApp &lt;integer&gt;</a></div>
1170
+ <div class="foo toclevel4"><a href="#PassengerPoolIdleTime">6.14.5. PassengerPoolIdleTime &lt;integer&gt;</a></div>
1171
+ <div class="foo toclevel4"><a href="#_passengermaxpreloaderidletime_lt_integer_gt">6.14.6. PassengerMaxPreloaderIdleTime &lt;integer&gt;</a></div>
1172
+ <div class="foo toclevel4"><a href="#PassengerConcurrencyModel">6.14.7. PassengerConcurrencyModel &lt;process|thread&gt;</a></div>
1173
+ <div class="foo toclevel4"><a href="#PassengerThreadCount">6.14.8. PassengerThreadCount &lt;number&gt;</a></div>
1174
+ <div class="foo toclevel4"><a href="#PassengerMaxRequests">6.14.9. PassengerMaxRequests &lt;integer&gt;</a></div>
1175
+ <div class="foo toclevel4"><a href="#PassengerMaxRequestTime">6.14.10. PassengerMaxRequestTime &lt;seconds&gt;</a></div>
1176
+ <div class="foo toclevel4"><a href="#PassengerMemoryLimit">6.14.11. PassengerMemoryLimit &lt;integer&gt;</a></div>
1177
+ <div class="foo toclevel4"><a href="#_passengerstatthrottlerate_lt_integer_gt">6.14.12. PassengerStatThrottleRate &lt;integer&gt;</a></div>
1178
+ <div class="foo toclevel4"><a href="#PassengerPreStart">6.14.13. PassengerPreStart &lt;url&gt;</a></div>
1179
+ <div class="foo toclevel4"><a href="#PassengerHighPerformance">6.14.14. PassengerHighPerformance &lt;on|off&gt;</a></div>
1180
+ <div class="foo toclevel3"><a href="#_compatibility_options">6.15. Compatibility options</a></div>
1181
+ <div class="foo toclevel4"><a href="#PassengerResolveSymlinksInDocumentRoot">6.15.1. PassengerResolveSymlinksInDocumentRoot &lt;on|off&gt;</a></div>
1182
+ <div class="foo toclevel4"><a href="#_passengerallowencodedslashes_lt_on_off_gt">6.15.2. PassengerAllowEncodedSlashes &lt;on|off&gt;</a></div>
1183
+ <div class="foo toclevel3"><a href="#_logging_and_debugging_options">6.16. Logging and debugging options</a></div>
1184
+ <div class="foo toclevel4"><a href="#_passengerloglevel_lt_integer_gt">6.16.1. PassengerLogLevel &lt;integer&gt;</a></div>
1185
+ <div class="foo toclevel4"><a href="#_passengerdebuglogfile_lt_filename_gt">6.16.2. PassengerDebugLogFile &lt;filename&gt;</a></div>
1186
+ <div class="foo toclevel4"><a href="#_passengerdebugger_lt_on_off_gt">6.16.3. PassengerDebugger &lt;on|off&gt;</a></div>
1187
+ <div class="foo toclevel3"><a href="#_classic_ruby_on_rails_8656_2_x_specific_options">6.17. Classic Ruby on Rails (⇐ 2.x)-specific options</a></div>
1188
+ <div class="foo toclevel4"><a href="#RailsBaseURI">6.17.1. RailsBaseURI &lt;uri&gt;</a></div>
1189
+ <div class="foo toclevel4"><a href="#rails_env">6.17.2. RailsEnv &lt;string&gt;</a></div>
1190
+ <div class="foo toclevel3"><a href="#_rack_and_rails_gt_3_specific_options">6.18. Rack and Rails &gt;= 3 specific options</a></div>
1191
+ <div class="foo toclevel4"><a href="#RackBaseURI">6.18.1. RackBaseURI &lt;uri&gt;</a></div>
1192
+ <div class="foo toclevel4"><a href="#rack_env">6.18.2. RackEnv &lt;string&gt;</a></div>
1193
+ <div class="foo toclevel3"><a href="#_deprecated_or_removed_options">6.19. Deprecated or removed options</a></div>
1194
+ <div class="foo toclevel4"><a href="#_railsruby">6.19.1. RailsRuby</a></div>
1195
+ <div class="foo toclevel4"><a href="#_railsuserswitching">6.19.2. RailsUserSwitching</a></div>
1196
+ <div class="foo toclevel4"><a href="#_railsdefaultuser">6.19.3. RailsDefaultUser</a></div>
1197
+ <div class="foo toclevel4"><a href="#_railsallowmodrewrite">6.19.4. RailsAllowModRewrite</a></div>
1198
+ <div class="foo toclevel4"><a href="#_railsspawnmethod">6.19.5. RailsSpawnMethod</a></div>
1199
+ <div class="foo toclevel4"><a href="#_railsautodetect_rackautodetect_and_wsgiautodetect">6.19.6. RailsAutoDetect, RackAutoDetect and WsgiAutoDetect</a></div>
1195
1200
  <div class="foo toclevel2"><a href="#troubleshooting">7. Troubleshooting</a></div>
1196
1201
  <div class="foo toclevel3"><a href="#_operating_system_specific_problems">7.1. Operating system-specific problems</a></div>
1197
1202
  <div class="foo toclevel4"><a href="#_macos_x_the_installer_cannot_locate_mamp_8217_s_apache">7.1.1. MacOS X: The installer cannot locate MAMP’s Apache</a></div>
@@ -1225,13 +1230,12 @@ using the command line.</p></div>
1225
1230
  <div class="foo toclevel3"><a href="#reducing_memory_usage">9.2. Reducing memory consumption of Ruby on Rails applications by 33%</a></div>
1226
1231
  <div class="foo toclevel3"><a href="#capistrano">9.3. Capistrano recipe</a></div>
1227
1232
  <div class="foo toclevel3"><a href="#bundler_support">9.4. Bundler support</a></div>
1228
- <div class="foo toclevel3"><a href="#moving_phusion_passenger">9.5. Moving Phusion Passenger to a different directory</a></div>
1229
- <div class="foo toclevel3"><a href="#_installing_multiple_ruby_on_rails_versions">9.6. Installing multiple Ruby on Rails versions</a></div>
1230
- <div class="foo toclevel3"><a href="#_making_the_application_restart_after_each_request">9.7. Making the application restart after each request</a></div>
1231
- <div class="foo toclevel3"><a href="#sub_uri_deployment_uri_fix">9.8. How to fix broken images/CSS/JavaScript URIs in sub-URI deployments</a></div>
1232
- <div class="foo toclevel3"><a href="#_out_of_band_garbage_work_and_out_of_band_garbage_collection">9.9. Out-of-Band Garbage Work and Out-of-Band Garbage Collection</a></div>
1233
- <div class="foo toclevel3"><a href="#_x_sendfile_support">9.10. X-Sendfile support</a></div>
1234
- <div class="foo toclevel3"><a href="#_upload_progress">9.11. Upload progress</a></div>
1233
+ <div class="foo toclevel3"><a href="#_installing_multiple_ruby_on_rails_versions">9.5. Installing multiple Ruby on Rails versions</a></div>
1234
+ <div class="foo toclevel3"><a href="#_making_the_application_restart_after_each_request">9.6. Making the application restart after each request</a></div>
1235
+ <div class="foo toclevel3"><a href="#sub_uri_deployment_uri_fix">9.7. How to fix broken images/CSS/JavaScript URIs in sub-URI deployments</a></div>
1236
+ <div class="foo toclevel3"><a href="#_out_of_band_garbage_work_and_out_of_band_garbage_collection">9.8. Out-of-Band Garbage Work and Out-of-Band Garbage Collection</a></div>
1237
+ <div class="foo toclevel3"><a href="#_x_sendfile_support">9.9. X-Sendfile support</a></div>
1238
+ <div class="foo toclevel3"><a href="#_upload_progress">9.10. Upload progress</a></div>
1235
1239
  <div class="foo toclevel2"><a href="#_under_the_hood">10. Under the hood</a></div>
1236
1240
  <div class="foo toclevel3"><a href="#_static_assets_serving">10.1. Static assets serving</a></div>
1237
1241
  <div class="foo toclevel3"><a href="#_page_caching_support">10.2. Page caching support</a></div>
@@ -1264,10 +1268,8 @@ using the command line.</p></div>
1264
1268
  words: practically any operating system on earth, except Microsoft Windows.</p></div>
1265
1269
  <div class="paragraph"><p>Phusion Passenger is confirmed on a large number of operating systems and Linux
1266
1270
  distributions, including, but not limited to, Ubuntu, Debian, CentOS/Fedora/RHEL,
1267
- Gentoo, Mac OS X, FreeBSD and Solaris. Both 32-bit and 64-bit platforms are supported.</p></div>
1268
- <div class="paragraph"><p>The only POSIX-compliant operating system on which Phusion Passenger for Apache is
1269
- known not to work at this time, is OpenBSD. Please use Phusion Passenger for Nginx
1270
- or Phusion Passenger Standalone instead.</p></div>
1271
+ Gentoo, Mac OS X, FreeBSD and Solaris. OpenBSD is supported since version 5.2.
1272
+ Both 32-bit and 64-bit platforms are supported.</p></div>
1271
1273
  <div class="paragraph"><p>Please
1272
1274
  <a href="http://code.google.com/p/phusion-passenger/issues/list">report a bug</a>
1273
1275
  or
@@ -1299,6 +1301,11 @@ Email <a href="mailto:support@phusion.nl">support@phusion.nl</a> if you are a <a
1299
1301
  <a href="https://www.phusionpassenger.com/commercial_support">Commercial support contracts</a> are also available.
1300
1302
  </p>
1301
1303
  </li>
1304
+ <li>
1305
+ <p>
1306
+ Report security vulnerabilities to <a href="mailto:support@phusion.nl">support@phusion.nl</a>. We will do our best to respond to you as quickly as we can, so please do not disclose the vulnerability until then.
1307
+ </p>
1308
+ </li>
1302
1309
  </ul></div>
1303
1310
  <div class="paragraph"><p>Please consult <a href="https://www.phusionpassenger.com/support">the Phusion Passenger website</a> for a full list of support resources.</p></div>
1304
1311
  </div>
@@ -1307,6 +1314,8 @@ Email <a href="mailto:support@phusion.nl">support@phusion.nl</a> if you are a <a
1307
1314
  <div class="sect1">
1308
1315
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_installation"></span><h2 data-comment-topic="installing-upgrading-and-uninstalling-phusion-passenger-laryvs" data-anchor="_installation">2. Installation</h2>
1309
1316
  <div class="sectionbody">
1317
+ <div class="sect2">
1318
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_synopsis"></span><h3 data-comment-topic="synopsis-l0om5d" data-anchor="_synopsis">2.1. Synopsis</h3>
1310
1319
  <div class="paragraph"><p>The Phusion Passenger installation process consists of two steps:</p></div>
1311
1320
  <div class="olist arabic"><ol class="arabic">
1312
1321
  <li>
@@ -1320,11 +1329,13 @@ The <strong>integration step</strong>, where you configure Phusion Passenger so
1320
1329
  </p>
1321
1330
  </li>
1322
1331
  </ol></div>
1323
- <div class="paragraph"><p>Because Phusion Passenger is designed to run in a wide variety of operating systems and configurations, both steps can be done in multiple ways. Most users will be satisfied with the generic installation instructions which covers both steps, but some users may prefer OS-specific installation instructions in order to integrate better.</p></div>
1332
+ <div class="paragraph"><p>Because Phusion Passenger is designed to run in a wide variety of operating systems and configurations, both steps can be done in multiple ways. Most users — especially first-time users — will be satisfied with the <em>generic installation instructions</em> which covers both steps. However some users may prefer <em>OS-specific installation instructions</em>, which allow Phusion Passenger to better integrate into the operating system. Better integration is characterized by following OS-specific conventions.</p></div>
1324
1333
  <div class="paragraph"><p>If you are not familiar with system administration and do not understand all the choices, then we recommend you to go with the <a href="#rubygems_generic_install">RubyGems generic installation method</a> (if you’re a Ruby user) or the <a href="#tarball_generic_install">tarball generic installation method</a> (if you’re not a Ruby user).</p></div>
1325
1334
  <div class="paragraph"><p>The steps for upgrading or downgrading Phusion Passenger is almost the same as the steps for installing. All the installation guides in this section will also teach you how to upgrade and downgrade.</p></div>
1335
+ </div>
1326
1336
  <div class="sect2">
1327
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="rubygems_generic_install"></span><h3 data-comment-topic="installing-via-the-gem-39jw1u" data-anchor="rubygems_generic_install">2.1. Generic installation, upgrade and downgrade method: via RubyGems</h3>
1337
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="rubygems_generic_install"></span><h3 data-comment-topic="installing-via-the-gem-39jw1u" data-anchor="rubygems_generic_install">2.2. Generic installation, upgrade and downgrade method: via RubyGems</h3>
1338
+ <div class="paragraph"><p>RubyGems is only used as a method to obtain the Phusion Passenger files, so in case you have multiple Ruby versions it does not matter which Ruby’s RubyGems you use for installation. Once installed, Phusion Passenger can work with all other Ruby versions on your system.</p></div>
1328
1339
  <span class="anchor_helper" id="is_ruby_home_or_system_wide_installed"></span><h4 class="float" data-anchor="is_ruby_home_or_system_wide_installed">Step 1: figuring out whether your Ruby is installed the home directory or system-wide</h4>
1329
1340
  <div class="paragraph"><p>Ruby may either be installed in the home directory, or system-wide. If it’s installed system-wide then we will want to install gems system-wide as well, so you need to switch to a root prompt first. If Ruby is installed in the home directory then we will want to install gems to the home directory as well, as a normal user.</p></div>
1330
1341
  <div class="paragraph"><p>To find out which case applies, run the following command to find out where the <span class="monospaced">ruby</span> command is:</p></div>
@@ -1392,7 +1403,7 @@ Is <em>sudo</em> not installed on your system? Run <span class="monospaced">su -
1392
1403
  </div>
1393
1404
  </div>
1394
1405
  <span class="anchor_helper" id="add_rubygems_bin_dir_to_path"></span><h4 class="float" data-anchor="add_rubygems_bin_dir_to_path">Step 3: add the RubyGems bin directory to your $PATH</h4>
1395
- <div class="paragraph"><p>If you all the following are applicable to you:</p></div>
1406
+ <div class="paragraph"><p>If you all of the following are applicable to you:</p></div>
1396
1407
  <div class="ulist"><ul>
1397
1408
  <li>
1398
1409
  <p>
@@ -1445,7 +1456,7 @@ chmod o+x /home/phusion</pre>
1445
1456
  </div>
1446
1457
  </div>
1447
1458
  <div class="paragraph"><p>At the end of the installation process, you will be asked to copy and paste a configuration snippet (containing <span class="monospaced">LoadModule</span>, <span class="monospaced">PassengerRoot</span>, etc.) into your Apache configuration file. If you’re upgrading, then you already had a similar configuration snippet. Be sure to remove the old one before pasting the new one.</p></div>
1448
- <div class="paragraph"><p>If you have trouble finding the Apache configuration file, see <a href="#locating_apache_conf">Locating the Apache configuration file</a>. If you’re on OS X Server &gt;= 10.8 (Mountain Lion) and you’re running Web Services, then you should definitely read that section because the configuration file may not be where you think it is.</p></div>
1459
+ <div class="paragraph"><p>Different operating systems and Apache installations have different conventions with regard to where the Apache configuration file is and how it is organized. Please read <a href="#working_with_apache_conf">Working with the Apache configuration file</a> if you’re not familiar with it. That section is especially of interest for OS X Server &gt;= 10.8 users because the configuration file may not be at a surprising location.</p></div>
1449
1460
  <div class="paragraph"><p>If compilation doesn’t succeed, then please consult the <a href="#troubleshooting">Troubleshooting</a> section.</p></div>
1450
1461
  <div class="paragraph">
1451
1462
  <div class="title">What does the installer do?</div>
@@ -1464,7 +1475,7 @@ configuration file. However, it doesn’t copy any files to outside the Phusion
1464
1475
  <div class="paragraph"><p>If the output is not as expected, then please refer to the <a href="#troubleshooting">Troubleshooting</a> section.</p></div>
1465
1476
  </div>
1466
1477
  <div class="sect2">
1467
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="tarball_generic_install"></span><h3 data-comment-topic="installing-via-the-source-tarball-1cgxrqc" data-anchor="tarball_generic_install">2.2. Generic installation, upgrade and downgrade method: via tarball</h3>
1478
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="tarball_generic_install"></span><h3 data-comment-topic="installing-via-the-source-tarball-1cgxrqc" data-anchor="tarball_generic_install">2.3. Generic installation, upgrade and downgrade method: via tarball</h3>
1468
1479
  <span class="anchor_helper" id="_step_1_download_and_extract_the_tarball"></span><h4 class="float" data-anchor="_step_1_download_and_extract_the_tarball">Step 1: download and extract the tarball</h4>
1469
1480
  <div class="paragraph"><p>Download the open source Phusion Passenger tarball from <a href="https://www.phusionpassenger.com/download#open_source">the Phusion Passenger website</a>. If you want a specific version, please refer to the release archive on <a href="http://rubyforge.org/frs/?group_id=5873&amp;release_id=46919">RubyForge</a>.</p></div>
1470
1481
  <div class="paragraph"><p>If you a <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a> customer, download the Phusion Passenger Enterprise tarball from the <a href="https://www.phusionpassenger.com/orders">Customer Area</a>. Also be sure to download the <strong>license key</strong> and save it as <em>/etc/passenger-enterprise-license</em>.</p></div>
@@ -1537,7 +1548,7 @@ sudo apt-get install ruby rake</pre>
1537
1548
  sudo apt-get update</pre>
1538
1549
  </div>
1539
1550
  </div>
1540
- <div class="paragraph"><p>If you’re on the older Ubuntu 8.04 Hardy release, the <em>apt-add-repository</em> command isn’t available so you have to install the repository and the key by hand:</p></div>
1551
+ <div class="paragraph"><p>If you’re on the older Ubuntu 8.04 Hardy release, the <span class="monospaced">apt-add-repository</span> command isn’t available so you have to install the repository and the key by hand:</p></div>
1541
1552
  <div class="listingblock">
1542
1553
  <div class="content monospaced">
1543
1554
  <pre>sudo sh -c 'echo "deb http://ppa.launchpad.net/brightbox/passenger/ubuntu hardy main" &gt; /etc/apt/sources.list.d/brightbox-passenger.list'
@@ -1563,32 +1574,97 @@ Note that the <span class="monospaced">passenger-install-apache2-module</span> c
1563
1574
  <div class="paragraph"><p>Please refer to <a href="#verify_passenger_running">this section</a>. Note that all Phusion Passenger administration scripts are located inside the <em>bin</em> subdirectory of the Phusion Passenger source directory, so you would have to run something like <em>/opt/passenger/passenger-x.x.x/bin/passenger-memory-stats</em>.</p></div>
1564
1575
  </div>
1565
1576
  <div class="sect2">
1566
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_installing_or_upgrading_on_ubuntu"></span><h3 data-comment-topic="installing-or-upgrading-on-ubuntu-1xg22xs" data-anchor="_installing_or_upgrading_on_ubuntu">2.3. Installing or upgrading on Ubuntu</h3>
1567
- <div class="paragraph"><p>John Leach from Brightbox has kindly provided a Ubuntu packages for Phusion Passenger. The packages are available from the <a href="http://wiki.brightbox.co.uk/docs:phusion-passenger">Brightbox repository</a>. Only packages for the open source version of Phusion Passenger are provided. <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a> customers should use the <a href="#rubygems_generic_install">generic RubyGems installation method</a> or <a href="#tarball_generic_install">the generic tarball installation method</a> instead.</p></div>
1568
- <div class="paragraph"><p>Add the following line to the Third Party Software Sources:</p></div>
1577
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_installing_or_upgrading_on_debian_6_or_ubuntu"></span><h3 data-comment-topic="installing-or-upgrading-on-ubuntu-1xg22xs" data-anchor="_installing_or_upgrading_on_debian_6_or_ubuntu">2.4. Installing or upgrading on Debian 6 or Ubuntu</h3>
1578
+ <div class="paragraph"><p>John Leach from Brightbox has kindly provided Ubuntu packages for Phusion Passenger. The Ubuntu Lucid packages are compatible with Debian 6. The packages are available from the <a href="http://wiki.brightbox.co.uk/docs:phusion-passenger">Brightbox repository</a>. Only packages for the open source version of Phusion Passenger are provided. <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a> customers should use the <a href="#rubygems_generic_install">generic RubyGems installation method</a> or <a href="#tarball_generic_install">the generic tarball installation method</a> instead.</p></div>
1579
+ <div class="paragraph"><p>If you use these packages to install Phusion Passenger then you do not need to run <span class="monospaced">passenger-install-apache2-module</span> or <span class="monospaced">passenger-install-nginx-module</span>. These packages contain all the binaries that you need.</p></div>
1580
+ <div class="paragraph">
1581
+ <div class="title">Apache</div>
1582
+ <p>On Ubuntu versions newer than 8.04 Hardy, register the Brightbox Apache PPA as follows:</p>
1583
+ </div>
1584
+ <div class="listingblock">
1585
+ <div class="content monospaced">
1586
+ <pre>sudo apt-add-repository ppa:brightbox/passenger
1587
+ sudo apt-get update</pre>
1588
+ </div>
1589
+ </div>
1590
+ <div class="paragraph"><p>On Ubuntu 8.04 Hardy and on Debian, the <span class="monospaced">apt-add-repository</span> command isn’t available so you have to install the repository and the key by hand.</p></div>
1591
+ <div class="paragraph"><p>Debian 6:</p></div>
1592
+ <div class="listingblock">
1593
+ <div class="content monospaced">
1594
+ <pre>sudo sh -c 'echo "deb http://ppa.launchpad.net/brightbox/passenger/ubuntu lucid main" &gt; /etc/apt/sources.list.d/brightbox-passenger.list'
1595
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6
1596
+ sudo apt-get update</pre>
1597
+ </div>
1598
+ </div>
1599
+ <div class="paragraph"><p>Ubuntu 8.04 Hardy:</p></div>
1569
1600
  <div class="listingblock">
1570
1601
  <div class="content monospaced">
1571
- <pre>deb http://apt.brightbox.net hardy main</pre>
1602
+ <pre>sudo sh -c 'echo "deb http://ppa.launchpad.net/brightbox/passenger/ubuntu hardy main" &gt; /etc/apt/sources.list.d/brightbox-passenger.list'
1603
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6
1604
+ sudo apt-get update</pre>
1572
1605
  </div>
1573
1606
  </div>
1574
- <div class="paragraph"><p>The simplest way to do that is to create a file in <em>/etc/apt/sources.list.d</em> containing the deb instruction, and then run <span class="monospaced">sudo apt-get update</span>.</p></div>
1575
- <div class="paragraph"><p>Once you’ve done that, you can proceed with installing Phusion Passenger by running:</p></div>
1607
+ <div class="paragraph"><p>You can proceed with installing Phusion Passenger by running:</p></div>
1576
1608
  <div class="listingblock">
1577
1609
  <div class="content monospaced">
1578
1610
  <pre>sudo apt-get install libapache2-mod-passenger</pre>
1579
1611
  </div>
1580
1612
  </div>
1581
- <div class="paragraph"><p>or, for the Nginx version:</p></div>
1613
+ <div class="paragraph"><p>The Apache package provides configuration snippets for you, so you don’t need to modify any Apache configuration to get it to load Phusion Passenger.</p></div>
1614
+ <div class="paragraph">
1615
+ <div class="title">Nginx</div>
1616
+ <p>On Ubuntu versions newer than 8.04 Hardy, register the Brightbox Apache PPA as follows:</p>
1617
+ </div>
1618
+ <div class="listingblock">
1619
+ <div class="content monospaced">
1620
+ <pre>sudo apt-add-repository ppa:brightbox/passenger-nginx
1621
+ sudo apt-get update</pre>
1622
+ </div>
1623
+ </div>
1624
+ <div class="paragraph"><p>On Ubuntu 8.04 Hardy and on Debian, the <span class="monospaced">apt-add-repository</span> command isn’t available so you have to install the repository and the key by hand.</p></div>
1625
+ <div class="paragraph"><p>Debian 6:</p></div>
1626
+ <div class="listingblock">
1627
+ <div class="content monospaced">
1628
+ <pre>sudo sh -c 'echo "deb http://ppa.launchpad.net/brightbox/passenger-nginx/ubuntu lucid main" &gt; /etc/apt/sources.list.d/brightbox-passenger-nginx.list'
1629
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6
1630
+ sudo apt-get update</pre>
1631
+ </div>
1632
+ </div>
1633
+ <div class="paragraph"><p>Ubuntu 8.04 Hardy:</p></div>
1582
1634
  <div class="listingblock">
1583
1635
  <div class="content monospaced">
1584
- <pre>sudo apt-get install nginx-brightbox</pre>
1636
+ <pre>sudo sh -c 'echo "deb http://ppa.launchpad.net/brightbox/passenger/ubuntu hardy main" &gt; /etc/apt/sources.list.d/brightbox-passenger-nginx.list'
1637
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6
1638
+ sudo apt-get update</pre>
1585
1639
  </div>
1586
1640
  </div>
1587
- <div class="paragraph"><p>Please also visit <a href="http://wiki.brightbox.co.uk/docs:phusion-passenger">the package’s wiki page</a> for more documentation about this package.</p></div>
1641
+ <div class="paragraph"><p>Then:</p></div>
1642
+ <div class="listingblock">
1643
+ <div class="content monospaced">
1644
+ <pre>sudo apt-get install nginx-full</pre>
1645
+ </div>
1646
+ </div>
1647
+ <div class="paragraph"><p>You’ll then need to enable the Phusion Passenger module in Nginx by creating the following configuration file:</p></div>
1648
+ <div class="listingblock">
1649
+ <div class="content monospaced">
1650
+ <pre>sudo sh -c 'echo "passenger_root /usr/lib/phusion-passenger;" &gt; /etc/nginx/conf.d/passenger.conf'</pre>
1651
+ </div>
1652
+ </div>
1653
+ <div class="paragraph"><p>Then restart Nginx to apply the changes:</p></div>
1654
+ <div class="listingblock">
1655
+ <div class="content monospaced">
1656
+ <pre>sudo /etc/init.d/nginx restart</pre>
1657
+ </div>
1658
+ </div>
1659
+ <div class="paragraph">
1660
+ <div class="title">Standalone</div>
1661
+ <p>Unfortunately, no packages are provided for Phusion Passenger Standalone.</p>
1662
+ </div>
1588
1663
  </div>
1589
1664
  <div class="sect2">
1590
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_installing_or_upgrading_on_red_hat_fedora_centos_or_scientificlinux"></span><h3 data-comment-topic="installing-or-upgrading-on-red-hat-fedora-centos-or-scientificlinux-1y5ie8b" data-anchor="_installing_or_upgrading_on_red_hat_fedora_centos_or_scientificlinux">2.4. Installing or upgrading on Red Hat, Fedora, CentOS or ScientificLinux</h3>
1665
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_installing_or_upgrading_on_red_hat_fedora_centos_or_scientificlinux"></span><h3 data-comment-topic="installing-or-upgrading-on-red-hat-fedora-centos-or-scientificlinux-1y5ie8b" data-anchor="_installing_or_upgrading_on_red_hat_fedora_centos_or_scientificlinux">2.5. Installing or upgrading on Red Hat, Fedora, CentOS or ScientificLinux</h3>
1591
1666
  <div class="paragraph"><p>YUM repositories with RPMs are maintained by <a href="https://github.com/erikogan/passenger">Erik Ogan</a> and <a href="http://stealthymonkeys.com/">Stealthy Monkeys Consulting</a>. Only packages for the open source version of Phusion Passenger are provided. <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a> customers should use the <a href="#rubygems_generic_install">generic RubyGems installation method</a> or <a href="#tarball_generic_install">the generic tarball installation method</a> instead.</p></div>
1667
+ <div class="paragraph"><p>If you use YUM to install Phusion Passenger then you do not need to run <span class="monospaced">passenger-install-apache2-module</span> or <span class="monospaced">passenger-install-nginx-module</span>. The YUM packages contain all the binaries that you need. You also don’t need to modify any Apache or Nginx configuration to get them to load Phusion Passenger, the packages provide configuration snippets for you as well.</p></div>
1592
1668
  <span class="anchor_helper" id="_step_1_install_the_release_package"></span><h4 class="float" data-anchor="_step_1_install_the_release_package">Step 1: Install the release package</h4>
1593
1669
  <div class="paragraph"><p>The easiest way to install Phusion Passenger and keep it up to date is to install the passenger-release package from the <a href="http://passenger.stealthymonkeys.com/">main repository</a>.</p></div>
1594
1670
  <div class="paragraph"><p>Fedora Core 15:</p></div>
@@ -1620,13 +1696,13 @@ Note that the <span class="monospaced">passenger-install-apache2-module</span> c
1620
1696
  <div class="paragraph"><p>Phusion Passenger for Apache:</p></div>
1621
1697
  <div class="listingblock">
1622
1698
  <div class="content monospaced">
1623
- <pre>yum install nginx-passenger</pre>
1699
+ <pre>yum install mod_passenger</pre>
1624
1700
  </div>
1625
1701
  </div>
1626
1702
  <div class="paragraph"><p>Phusion Passenger for Nginx:</p></div>
1627
1703
  <div class="listingblock">
1628
1704
  <div class="content monospaced">
1629
- <pre>yum install mod_passenger</pre>
1705
+ <pre>yum install nginx-passenger</pre>
1630
1706
  </div>
1631
1707
  </div>
1632
1708
  <div class="paragraph"><p>Phusion Passenger Standalone:</p></div>
@@ -1639,7 +1715,7 @@ Note that the <span class="monospaced">passenger-install-apache2-module</span> c
1639
1715
  <div class="paragraph"><p>There are instructions for building your own packages and Yum repositories in the <a href="https://github.com/FooBarWidget/passenger/tree/master/rpm#readme">rpm directory ReadMe</a> within the <a href="https://github.com/FooBarWidget/passenger">GitHub repository</a>.</p></div>
1640
1716
  </div>
1641
1717
  <div class="sect2">
1642
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_upgrading_from_open_source_to_enterprise"></span><h3 data-comment-topic="upgrading-from-open-source-to-enterprise-b17h8g" data-anchor="_upgrading_from_open_source_to_enterprise">2.5. Upgrading from open source to Enterprise</h3>
1718
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_upgrading_from_open_source_to_enterprise"></span><h3 data-comment-topic="upgrading-from-open-source-to-enterprise-b17h8g" data-anchor="_upgrading_from_open_source_to_enterprise">2.6. Upgrading from open source to Enterprise</h3>
1643
1719
  <div class="paragraph"><p>Phusion Passenger comes in two variants: an open source version, as well as an <a href="https://www.phusionpassenger.com/enterprise">Enterprise version</a> which introduces a myriad of useful features that can improve stability and performance and efficiency.</p></div>
1644
1720
  <div class="paragraph"><p>Customers who have bought Phusion Passenger Enterprise can upgrade their open source installation to Enterprise as follows:</p></div>
1645
1721
  <div class="olist arabic"><ol class="arabic">
@@ -1657,16 +1733,159 @@ Install the Enterprise version by following one of the installation guides in th
1657
1733
  <div class="paragraph"><p>The uninstallation is necessary because the Enterprise Ruby gem has a different gem name (<em>passenger-enterprise-server</em> instead of <em>passenger</em>), but the same administration command names (e.g. <span class="monospaced">passenger-status</span>). Uninstalling the open source version avoids any conflicts.</p></div>
1658
1734
  </div>
1659
1735
  <div class="sect2">
1660
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_non_interactive_automatic_headless_installs_or_upgrades"></span><h3 data-comment-topic="non-interactive-automatic-headless-installs-or-upgrades-1arnxii" data-anchor="_non_interactive_automatic_headless_installs_or_upgrades">2.6. Non-interactive, automatic, headless installs or upgrades</h3>
1736
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_non_interactive_automatic_headless_installs_or_upgrades"></span><h3 data-comment-topic="non-interactive-automatic-headless-installs-or-upgrades-1arnxii" data-anchor="_non_interactive_automatic_headless_installs_or_upgrades">2.7. Non-interactive, automatic, headless installs or upgrades</h3>
1661
1737
  <div class="paragraph"><p>By default, the installer (<span class="monospaced">passenger-install-apache2-module</span>) is interactive. If you want to automate installation then you can do so by passing <span class="monospaced">--auto</span> to the installer. See also <span class="monospaced">passenger-install-apache2-module --help</span> for more options.</p></div>
1662
1738
  </div>
1663
1739
  <div class="sect2">
1664
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="locating_apache_conf"></span><h3 data-comment-topic="locating-the-apache-configuration-file-1fterqv" data-anchor="locating_apache_conf">2.7. Locating the Apache configuration file</h3>
1665
- <div class="paragraph"><p>On most systems, the Apache configuration file is located in either <em>/etc/apache2/httpd.conf</em> or <em>/etc/apache2/apache2.conf</em>.</p></div>
1666
- <div class="paragraph"><p>Not so on OS X Server &gt;= 10.8 Mountain Lion with Web Services. If you do not use Web Services then the configuration file <strong>is</strong> in <em>/etc</em>, but if you do use Web Services then the configuration file is in <em>/Library/Server/Web/Config/apache2/httpd_server_app.conf</em>.</p></div>
1740
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_customizing_the_compilation_process"></span><h3 data-comment-topic="customizing-the-compilation-process-1sds3od" data-anchor="_customizing_the_compilation_process">2.8. Customizing the compilation process</h3>
1741
+ <div class="sect3">
1742
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_setting_the_compiler"></span><h4 data-comment-topic="setting-the-compiler-1symq7h" data-anchor="_setting_the_compiler">2.8.1. Setting the compiler</h4>
1743
+ <div class="paragraph"><p>You can force the Phusion Passenger build system to use a specific C or C++ compiler by setting the <span class="monospaced">CC</span> and <span class="monospaced">CXX</span> environment variables. These may be set to any arbitrary shell commands.</p></div>
1744
+ <div class="paragraph"><p>For example, contributors who want to hack on Phusion Passenger may want to use Clang for faster compilation and <a href="http://ccache.samba.org/">ccache</a> for faster recompilation, and may want to enable more error-catching compilation flags:</p></div>
1745
+ <div class="listingblock">
1746
+ <div class="content monospaced">
1747
+ <pre>export CC='ccache clang -fcolor-diagnostics -Qunused-arguments -fcatch-undefined-behavior -ftrapv'
1748
+ export CXX='ccache clang++ -fcolor-diagnostics -Qunused-arguments -fcatch-undefined-behavior -ftrapv'</pre>
1749
+ </div>
1750
+ </div>
1751
+ </div>
1752
+ <div class="sect3">
1753
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_adding_additional_compiler_or_linker_flags"></span><h4 data-comment-topic="adding-additional-compiler-or-linker-flags-wzu0ey" data-anchor="_adding_additional_compiler_or_linker_flags">2.8.2. Adding additional compiler or linker flags</h4>
1754
+ <div class="paragraph"><p>On some systems, C/C++ libraries and headers that Phusion Passenger requires may be located in a non-standard directory. You can force the Phusion Passenger build system to look in those locations by injecting compiler and linker flags using the following environment variables:</p></div>
1755
+ <div class="dlist"><dl>
1756
+ <dt class="hdlist1">
1757
+ <span class="monospaced">EXTRA_PRE_CFLAGS</span>
1758
+ </dt>
1759
+ <dd>
1760
+ <p>
1761
+ These flags are injected into all C compiler invocations that involve compiling C or C++ source files. This includes compiler invocations that compile <strong>and</strong> link. The flags are injected at the beginning of the command string, even before <span class="monospaced">EXTRA_PRE_LDFLAGS</span>.
1762
+ </p>
1763
+ </dd>
1764
+ <dt class="hdlist1">
1765
+ <span class="monospaced">EXTRA_CFLAGS</span>
1766
+ </dt>
1767
+ <dd>
1768
+ <p>
1769
+ Similar to <span class="monospaced">EXTRA_PRE_CFLAGS</span>, but injected at the end of the command string, before <span class="monospaced">EXTRA_LDFLAGS</span>.
1770
+ </p>
1771
+ </dd>
1772
+ <dt class="hdlist1">
1773
+ <span class="monospaced">EXTRA_PRE_CXXFLAGS</span>
1774
+ </dt>
1775
+ <dd>
1776
+ <p>
1777
+ Similar to <span class="monospaced">EXTRA_PRE_CFLAGS</span>, but for C++ compiler invocations.
1778
+ </p>
1779
+ </dd>
1780
+ <dt class="hdlist1">
1781
+ <span class="monospaced">EXTRA_CXXFLAGS</span>
1782
+ </dt>
1783
+ <dd>
1784
+ <p>
1785
+ Similar to <span class="monospaced">EXTRA_CFLAGS</span>, but for C++ compiler invocations.
1786
+ </p>
1787
+ </dd>
1788
+ <dt class="hdlist1">
1789
+ <span class="monospaced">EXTRA_PRE_LDFLAGS</span>
1790
+ </dt>
1791
+ <dd>
1792
+ <p>
1793
+ These flags are injected into all C/C++ compiler invocations that involve linking. This includes compiler invocations that compile <strong>and</strong> link. The flags are injected at the beginning of the command string, but after <span class="monospaced">EXTRA_PRE_CFLAGS</span> and <span class="monospaced">EXTRA_PRE_CXXFLAGS</span>.
1794
+ </p>
1795
+ </dd>
1796
+ <dt class="hdlist1">
1797
+ <span class="monospaced">EXTRA_LDFLAGS</span>
1798
+ </dt>
1799
+ <dd>
1800
+ <p>
1801
+ Similar to <span class="monospaced">EXTRA_PRE_LDFLAGS</span>, but injected at the very end of the command string, even after <span class="monospaced">EXTRA_CFLAGS</span> and <span class="monospaced">EXTRA_CXXFLAGS</span>.
1802
+ </p>
1803
+ </dd>
1804
+ </dl></div>
1805
+ </div>
1806
+ <div class="sect3">
1807
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_forcing_location_of_certain_command_line_tools"></span><h4 data-comment-topic="forcing-location-of-certain-command-line-tools-1hym30u" data-anchor="_forcing_location_of_certain_command_line_tools">2.8.3. Forcing location of certain command line tools</h4>
1808
+ <div class="paragraph"><p>The Phusion Passenger build system attempts to autodetect many things by locating relevant helper tools. For example, to find out which compiler flags it should use for compiling Apache modules, it locates the <span class="monospaced">apxs2</span> command and queries it. To find out which compiler flags it should use for libcurl, it queries the <span class="monospaced">curl-config</span> command. These commands may not be in <span class="monospaced">$PATH</span>, or even when they are you may want to use a different one.</p></div>
1809
+ <div class="paragraph"><p>You can often force the build to find certain command line tools at certain locations by using the following environment variables:</p></div>
1810
+ <div class="dlist"><dl>
1811
+ <dt class="hdlist1">
1812
+ <span class="monospaced">HTTPD</span>
1813
+ </dt>
1814
+ <dd>
1815
+ <p>
1816
+ The location of the <span class="monospaced">httpd</span> executable (the Apache server executable).
1817
+ </p>
1818
+ </dd>
1819
+ <dt class="hdlist1">
1820
+ <span class="monospaced">APXS2</span>
1821
+ </dt>
1822
+ <dd>
1823
+ <p>
1824
+ The location of the <span class="monospaced">apxs2</span> executable (the Apache module developer tool).
1825
+ </p>
1826
+ </dd>
1827
+ <dt class="hdlist1">
1828
+ <span class="monospaced">APR_CONFIG</span>
1829
+ </dt>
1830
+ <dd>
1831
+ <p>
1832
+ The location of the <span class="monospaced">apr-config</span> executable (the Apache Portable Runtime developer tool).
1833
+ </p>
1834
+ </dd>
1835
+ <dt class="hdlist1">
1836
+ <span class="monospaced">APU_CONFIG</span>
1837
+ </dt>
1838
+ <dd>
1839
+ <p>
1840
+ The location of the <span class="monospaced">apu-config</span> executable (the Apache Portable Runtime Utility developer tool).
1841
+ </p>
1842
+ </dd>
1843
+ <dt class="hdlist1">
1844
+ <span class="monospaced">MAKE</span>
1845
+ </dt>
1846
+ <dd>
1847
+ <p>
1848
+ The location of a <span class="monospaced">make</span> tool. It does not matter which implementation of <span class="monospaced">make</span> this is.
1849
+ </p>
1850
+ </dd>
1851
+ <dt class="hdlist1">
1852
+ <span class="monospaced">GMAKE</span>
1853
+ </dt>
1854
+ <dd>
1855
+ <p>
1856
+ The location of the GNU-compatible <span class="monospaced">make</span> tool.
1857
+ </p>
1858
+ </dd>
1859
+ </dl></div>
1860
+ </div>
1861
+ </div>
1862
+ <div class="sect2">
1863
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="working_with_apache_conf"></span><h3 data-comment-topic="locating-the-apache-configuration-file-1fterqv" data-anchor="working_with_apache_conf">2.9. Working with the Apache configuration file</h3>
1864
+ <div class="paragraph"><p>On most systems the Apache configuration file is located in either <em>/etc/apache2/httpd.conf</em> or <em>/etc/apache2/apache2.conf</em>. However, to allow better organization, many operating systems and Apache distributions also read configuration files in the <em>conf.d</em>, <em>mods-enabled</em> and <em>sites-enabled</em> subdirectories.</p></div>
1865
+ <div class="paragraph"><p><em>mods-enabled</em> contains symlinks to files in <em>mods-available</em>. This latter subdirectory contains config files for all available modules, while <em>mods-enabled</em> contains only a subset, namely the modules that should actually be enabled. The symlinks are created using the <span class="monospaced">a2enmod</span> tool. <em><strong>.load</strong></em> files contain <span class="monospaced">LoadModule</span> directives, while <em>.conf</em> files contain all other configuration directives.</p></div>
1866
+ <div class="paragraph"><p>Use <em>mods-enabled</em>/<em>mods-available</em> to store Phusion Passenger configuration if you can:</p></div>
1867
+ <div class="ulist"><ul>
1868
+ <li>
1869
+ <p>
1870
+ Create <em>/etc/apache2/mods-available/passenger.load</em> and paste the <span class="monospaced">LoadModule ...</span> directive that <span class="monospaced">passenger-install-apache2-module</span> outputs.
1871
+ </p>
1872
+ </li>
1873
+ <li>
1874
+ <p>
1875
+ Create <em>/etc/apache2/mods-available/passenger.conf</em> and paste the <span class="monospaced">PassengerRoot</span> and other Phusion Passenger options.
1876
+ </p>
1877
+ </li>
1878
+ <li>
1879
+ <p>
1880
+ Enable by running <span class="monospaced">sudo a2enmod passenger</span>.
1881
+ </p>
1882
+ </li>
1883
+ </ul></div>
1884
+ <div class="paragraph"><p>If the <em>mods-enabled</em> mechanism is not available then you can paste configuration snippets into <em>httpd.conf</em> or <em>apache2.conf</em> directly.</p></div>
1885
+ <div class="paragraph"><p>On OS X Server &gt;= 10.8 Mountain Lion the location of the Apache configuration file depends on whether you use Web Services or not. If you do, then the configuration file is in <em>/Library/Server/Web/Config/apache2/httpd_server_app.conf</em>. If you do not, then the configuration file is in <em>/etc/apache2/httpd.conf</em>.</p></div>
1667
1886
  </div>
1668
1887
  <div class="sect2">
1669
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_disabling_without_uninstalling"></span><h3 data-comment-topic="unloading-disabling-phusion-passenger-from-apache-without-uninstalling-it-s1axnx" data-anchor="_disabling_without_uninstalling">2.8. Disabling without uninstalling</h3>
1888
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_disabling_without_uninstalling"></span><h3 data-comment-topic="unloading-disabling-phusion-passenger-from-apache-without-uninstalling-it-s1axnx" data-anchor="_disabling_without_uninstalling">2.10. Disabling without uninstalling</h3>
1670
1889
  <div class="paragraph"><p>You can temporarily unload (disable) Phusion Passenger from the web server, without
1671
1890
  uninstalling the Phusion Passenger files, so that the web server behaves as if Phusion
1672
1891
  Passenger was never installed in the first place. This might be useful to you if -
@@ -1732,7 +1951,7 @@ NameVirtualHosts *:80
1732
1951
  <div class="paragraph"><p>After you’ve done this, save the configuration file and restart the web server.</p></div>
1733
1952
  </div>
1734
1953
  <div class="sect2">
1735
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="uninstalling"></span><h3 data-comment-topic="uninstalling-phusion-passenger-1qb4ssq" data-anchor="uninstalling">2.9. Uninstalling</h3>
1954
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="uninstalling"></span><h3 data-comment-topic="uninstalling-phusion-passenger-1qb4ssq" data-anchor="uninstalling">2.11. Uninstalling</h3>
1736
1955
  <div class="paragraph"><p>To uninstall Phusion Passenger, please first remove all Phusion Passenger
1737
1956
  configuration directives from your web server configuration file(s). After you’ve
1738
1957
  done this, you need to remove the Phusion Passenger files.</p></div>
@@ -1758,7 +1977,7 @@ If you installed Phusion Passenger through APT or YUM, then use them to uninstal
1758
1977
  </ul></div>
1759
1978
  </div>
1760
1979
  <div class="sect2">
1761
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="moving_phusion_passenger"></span><h3 data-comment-topic="moving-to-a-different-directory-1n0gkwh" data-anchor="moving_phusion_passenger">2.10. Moving to a different directory</h3>
1980
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="moving_phusion_passenger"></span><h3 data-comment-topic="moving-to-a-different-directory-1n0gkwh" data-anchor="moving_phusion_passenger">2.12. Moving to a different directory</h3>
1762
1981
  <div class="paragraph"><p>If you installed Phusion Passenger through a tarball then you can move the Phusion Passenger directory to another location. This is not possible if you used any of the other installation methods.</p></div>
1763
1982
  <div class="paragraph"><p>First, move the directory to whereever you like:</p></div>
1764
1983
  <div class="listingblock">
@@ -1767,7 +1986,7 @@ If you installed Phusion Passenger through APT or YUM, then use them to uninstal
1767
1986
  </div>
1768
1987
  </div>
1769
1988
  <div class="paragraph"><p>Next you must tell your web server that Phusion Passenger has moved.
1770
- Open your <a href="#locating_apache_conf">Apache configuration file</a> and set the <em>PassengerRoot</em> directive to the new location:</p></div>
1989
+ Open your <a href="#working_with_apache_conf">Apache configuration file</a> and set the <em>PassengerRoot</em> directive to the new location:</p></div>
1771
1990
  <div class="listingblock">
1772
1991
  <div class="content monospaced">
1773
1992
  <pre>PassengerRoot /usr/local/passenger-4.0.0</pre>
@@ -2321,6 +2540,10 @@ run Ramaze::Adapter::Base</pre>
2321
2540
  <div class="content monospaced">
2322
2541
  <pre>require 'rubygems'
2323
2542
  require 'sinatra'
2543
+
2544
+ set :environment, ENV['RACK_ENV'].to_sym
2545
+ disable :run, :reload
2546
+
2324
2547
  require 'app.rb'
2325
2548
 
2326
2549
  run Sinatra::Application</pre>
@@ -2507,7 +2730,37 @@ this option as well. Please read
2507
2730
  <div class="sect2">
2508
2731
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerRuby"></span><h3 data-comment-topic="passengerruby-filename--1r3fv73" data-anchor="PassengerRuby">6.2. PassengerRuby &lt;filename&gt;</h3>
2509
2732
  <div class="paragraph"><p>This option allows one to specify the Ruby interpreter to use.</p></div>
2510
- <div class="paragraph"><p>This option may occur in the following places:</p></div>
2733
+ <div class="paragraph"><p>Since version 4.0.0, this option may occur in the following places:</p></div>
2734
+ <div class="ulist"><ul>
2735
+ <li>
2736
+ <p>
2737
+ In the global server configuration.
2738
+ </p>
2739
+ </li>
2740
+ <li>
2741
+ <p>
2742
+ In a virtual host configuration block.
2743
+ </p>
2744
+ </li>
2745
+ <li>
2746
+ <p>
2747
+ In a <span class="monospaced">&lt;Directory&gt;</span> or <span class="monospaced">&lt;Location&gt;</span> block.
2748
+ </p>
2749
+ </li>
2750
+ <li>
2751
+ <p>
2752
+ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span> is on.
2753
+ </p>
2754
+ </li>
2755
+ </ul></div>
2756
+ <div class="paragraph"><p>If you want to use a different Ruby interpreter for two different applications then you should define different <span class="monospaced">PassengerRuby</span> directives in different virtual host blocks.</p></div>
2757
+ <div class="paragraph"><p>In versions prior to 4.0.0, only a single Ruby version is supported for the entire Apache instance, so <span class="monospaced">PassengerRuby</span> may only occur in the global server configuration.</p></div>
2758
+ <div class="paragraph"><p>The default value is <em>ruby</em>, meaning that the Ruby interpreter will be looked up according to the <span class="monospaced">PATH</span> environment variable.</p></div>
2759
+ </div>
2760
+ <div class="sect2">
2761
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerpython_lt_filename_gt"></span><h3 data-comment-topic="passengerpython-filename--1ssesv3" data-anchor="_passengerpython_lt_filename_gt">6.3. PassengerPython &lt;filename&gt;</h3>
2762
+ <div class="paragraph"><p><strong>Introduced in version 4.0.0.</strong></p></div>
2763
+ <div class="paragraph"><p>This option allows one to specify the Python interpreter to use. It may occur in the following places:</p></div>
2511
2764
  <div class="ulist"><ul>
2512
2765
  <li>
2513
2766
  <p>
@@ -2530,10 +2783,11 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
2530
2783
  </p>
2531
2784
  </li>
2532
2785
  </ul></div>
2533
- <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>ruby</em>, meaning that the Ruby interpreter will be looked up according to the <span class="monospaced">PATH</span> environment variable.</p></div>
2786
+ <div class="paragraph"><p>If you want to use a different Python interpreter for two different applications then you should define different <span class="monospaced">PassengerPython</span> directives in different virtual host blocks.</p></div>
2787
+ <div class="paragraph"><p>The default value is <em>python</em>, meaning that the Python interpreter will be looked up according to the <span class="monospaced">PATH</span> environment variable.</p></div>
2534
2788
  </div>
2535
2789
  <div class="sect2">
2536
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerAppRoot"></span><h3 data-comment-topic="passengerapproot-path-to-root--uf24yd" data-anchor="PassengerAppRoot">6.3. PassengerAppRoot &lt;path/to/root&gt;</h3>
2790
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerAppRoot"></span><h3 data-comment-topic="passengerapproot-path-to-root--uf24yd" data-anchor="PassengerAppRoot">6.4. PassengerAppRoot &lt;path/to/root&gt;</h3>
2537
2791
  <div class="paragraph"><p>By default, Phusion Passenger assumes that the application’s root directory
2538
2792
  is the parent directory of the <em>public</em> directory. This option allows one to
2539
2793
  specify the application’s root independently from the DocumentRoot, which
@@ -2575,7 +2829,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
2575
2829
  </div>
2576
2830
  </div>
2577
2831
  <div class="sect2">
2578
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerSpawnMethod"></span><h3 data-comment-topic="passengerspawnmethod-string--sodg2y" data-anchor="PassengerSpawnMethod">6.4. PassengerSpawnMethod &lt;string&gt;</h3>
2832
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerSpawnMethod"></span><h3 data-comment-topic="passengerspawnmethod-string--sodg2y" data-anchor="PassengerSpawnMethod">6.5. PassengerSpawnMethod &lt;string&gt;</h3>
2579
2833
  <div class="admonitionblock">
2580
2834
  <table><tr>
2581
2835
  <td class="icon">
@@ -2658,7 +2912,7 @@ In a virtual host configuration block.
2658
2912
  <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>smart-lv2</em>.</p></div>
2659
2913
  </div>
2660
2914
  <div class="sect2">
2661
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerenabled_lt_on_off_gt"></span><h3 data-comment-topic="passengerenabled-on-off--74rzth" data-anchor="_passengerenabled_lt_on_off_gt">6.5. PassengerEnabled &lt;on|off&gt;</h3>
2915
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerEnabled"></span><h3 data-comment-topic="passengerenabled-on-off--74rzth" data-anchor="PassengerEnabled">6.6. PassengerEnabled &lt;on|off&gt;</h3>
2662
2916
  <div class="paragraph"><p>You can set this option to <em>off</em> to completely disable Phusion Passenger for
2663
2917
  a certain location. This is useful if, for example, you want to integrate a PHP
2664
2918
  application into the same virtual host as a Rails application.</p></div>
@@ -2705,7 +2959,7 @@ In <em>.htaccess</em>.
2705
2959
  <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>on</em>.</p></div>
2706
2960
  </div>
2707
2961
  <div class="sect2">
2708
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerTempDir"></span><h3 data-comment-topic="passengertempdir-directory--68h2ng" data-anchor="PassengerTempDir">6.6. PassengerTempDir &lt;directory&gt;</h3>
2962
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerTempDir"></span><h3 data-comment-topic="passengertempdir-directory--68h2ng" data-anchor="PassengerTempDir">6.7. PassengerTempDir &lt;directory&gt;</h3>
2709
2963
  <div class="paragraph"><p>Specifies the directory that Phusion Passenger should use for storing temporary
2710
2964
  files. This includes things such as Unix socket files, buffered file uploads
2711
2965
  (see also <a href="#PassengerUploadBufferDir">PassengerUploadBufferDir</a>), etc.</p></div>
@@ -2734,7 +2988,7 @@ sudo -E passenger-status
2734
2988
  </div>
2735
2989
  </div>
2736
2990
  <div class="sect2">
2737
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerUploadBufferDir"></span><h3 data-comment-topic="passengeruploadbufferdir-directory--kdr8at" data-anchor="PassengerUploadBufferDir">6.7. PassengerUploadBufferDir &lt;directory&gt;</h3>
2991
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerUploadBufferDir"></span><h3 data-comment-topic="passengeruploadbufferdir-directory--kdr8at" data-anchor="PassengerUploadBufferDir">6.8. PassengerUploadBufferDir &lt;directory&gt;</h3>
2738
2992
  <div class="paragraph"><p>Phusion Passenger buffers large file uploads to disk in order prevent slow file
2739
2993
  uploads from blocking web applications. By default, a subdirectory in the
2740
2994
  system’s temporary files directory (or a subdirectory in the directory specified
@@ -2777,7 +3031,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverrides Options</span>
2777
3031
  <div class="paragraph"><p>In each place, it may be specified at most once.</p></div>
2778
3032
  </div>
2779
3033
  <div class="sect2">
2780
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerrestartdir_lt_directory_gt"></span><h3 data-comment-topic="passengerrestartdir-directory--1fmhmv0" data-anchor="_passengerrestartdir_lt_directory_gt">6.8. PassengerRestartDir &lt;directory&gt;</h3>
3034
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerrestartdir_lt_directory_gt"></span><h3 data-comment-topic="passengerrestartdir-directory--1fmhmv0" data-anchor="_passengerrestartdir_lt_directory_gt">6.9. PassengerRestartDir &lt;directory&gt;</h3>
2781
3035
  <div class="paragraph"><p>As described in the deployment chapters of this document, Phusion Passenger
2782
3036
  checks the file <em>tmp/restart.txt</em> in the applications'
2783
3037
  <a href="#application_root">root directory</a> for restarting applications. Sometimes it
@@ -2851,7 +3105,7 @@ allow the attacker to cause a Denial-of-Service.</p>
2851
3105
  directory that’s readable by Apache, but only writable by administrators.</p></div>
2852
3106
  </div>
2853
3107
  <div class="sect2">
2854
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerBufferResponse"></span><h3 data-comment-topic="passengerbufferresponse-on-off--1y7ilka" data-anchor="PassengerBufferResponse">6.9. PassengerBufferResponse &lt;on|off&gt;</h3>
3108
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerBufferResponse"></span><h3 data-comment-topic="passengerbufferresponse-on-off--1y7ilka" data-anchor="PassengerBufferResponse">6.10. PassengerBufferResponse &lt;on|off&gt;</h3>
2855
3109
  <div class="paragraph"><p>When turned on, application-generated responses are buffered by Apache. Buffering will
2856
3110
  happen in memory.</p></div>
2857
3111
  <div class="paragraph"><p>Before we proceed with explaining this configuration option, we want to state the following to avoid confusion. If you use Phusion Passenger for Apache, there are in fact two response buffering systems active:</p></div>
@@ -2952,7 +3206,7 @@ if responses can be huge. Because entire responses are buffered in memory when t
2952
3206
  </div>
2953
3207
  </div>
2954
3208
  <div class="sect2">
2955
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerRollingRestarts"></span><h3 data-comment-topic="passengerrollingrestarts" data-anchor="PassengerRollingRestarts">6.10. PassengerRollingRestarts &lt;on|off&gt;</h3>
3209
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerRollingRestarts"></span><h3 data-comment-topic="passengerrollingrestarts" data-anchor="PassengerRollingRestarts">6.11. PassengerRollingRestarts &lt;on|off&gt;</h3>
2956
3210
  <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
2957
3211
  <div class="paragraph"><p>Enables or disables support for rolling restarts. Normally when you
2958
3212
  restart an application (by touching restart.txt), Phusion Passenger would
@@ -3025,7 +3279,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
3025
3279
  <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>off</em>.</p></div>
3026
3280
  </div>
3027
3281
  <div class="sect2">
3028
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerresistdeploymenterrors_lt_on_off_gt"></span><h3 data-comment-topic="passengerresistdeploymenterrors" data-anchor="_passengerresistdeploymenterrors_lt_on_off_gt">6.11. PassengerResistDeploymentErrors &lt;on|off&gt;</h3>
3282
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerresistdeploymenterrors_lt_on_off_gt"></span><h3 data-comment-topic="passengerresistdeploymenterrors" data-anchor="_passengerresistdeploymenterrors_lt_on_off_gt">6.12. PassengerResistDeploymentErrors &lt;on|off&gt;</h3>
3029
3283
  <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
3030
3284
  <div class="paragraph"><p>Enables or disables resistance against deployment errors.</p></div>
3031
3285
  <div class="paragraph"><p>Suppose you’ve upgraded your application and you’ve issues a command to restart it (by touching restart.txt), but the application code contains an error that prevents Phusion Passenger from successfully spawning a process (e.g. a syntax error). Phusion Passenger would normally display an error message in response to this.</p></div>
@@ -3075,15 +3329,15 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
3075
3329
  <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>off</em>.</p></div>
3076
3330
  </div>
3077
3331
  <div class="sect2">
3078
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_security_options"></span><h3 data-comment-topic="security-options-1pb75ho" data-anchor="_security_options">6.12. Security options</h3>
3332
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_security_options"></span><h3 data-comment-topic="security-options-1pb75ho" data-anchor="_security_options">6.13. Security options</h3>
3079
3333
  <div class="sect3">
3080
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerUserSwitching"></span><h4 data-comment-topic="passengeruserswitching" data-anchor="PassengerUserSwitching">6.12.1. PassengerUserSwitching &lt;on|off&gt;</h4>
3334
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerUserSwitching"></span><h4 data-comment-topic="passengeruserswitching" data-anchor="PassengerUserSwitching">6.13.1. PassengerUserSwitching &lt;on|off&gt;</h4>
3081
3335
  <div class="paragraph"><p>Whether to enable <a href="#user_switching">user switching support</a>.</p></div>
3082
3336
  <div class="paragraph"><p>This option may only occur once, in the global server configuration.
3083
3337
  The default value is <em>on</em>.</p></div>
3084
3338
  </div>
3085
3339
  <div class="sect3">
3086
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengeruser_lt_username_gt"></span><h4 data-comment-topic="passengeruser" data-anchor="_passengeruser_lt_username_gt">6.12.2. PassengerUser &lt;username&gt;</h4>
3340
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengeruser_lt_username_gt"></span><h4 data-comment-topic="passengeruser" data-anchor="_passengeruser_lt_username_gt">6.13.2. PassengerUser &lt;username&gt;</h4>
3087
3341
  <div class="paragraph"><p>If <a href="#user_switching">user switching support</a> is enabled, then Phusion Passenger will
3088
3342
  by default run the web application as the owner of the file <em>config/environment.rb</em>
3089
3343
  (for Rails apps) or <em>config.ru</em> (for Rack apps). This option allows you to override
@@ -3110,7 +3364,7 @@ In a <span class="monospaced">&lt;Directory&gt;</span> or <span class="monospace
3110
3364
  <div class="paragraph"><p>In each place, it may be specified at most once.</p></div>
3111
3365
  </div>
3112
3366
  <div class="sect3">
3113
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengergroup_lt_group_name_gt"></span><h4 data-comment-topic="passengergroup" data-anchor="_passengergroup_lt_group_name_gt">6.12.3. PassengerGroup &lt;group name&gt;</h4>
3367
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengergroup_lt_group_name_gt"></span><h4 data-comment-topic="passengergroup" data-anchor="_passengergroup_lt_group_name_gt">6.13.3. PassengerGroup &lt;group name&gt;</h4>
3114
3368
  <div class="paragraph"><p>If <a href="#user_switching">user switching support</a> is enabled, then Phusion Passenger will
3115
3369
  by default run the web application as the primary group of the owner of the file
3116
3370
  <em>config/environment.rb</em> (for Rails apps) or <em>config.ru</em> (for Rack apps). This option
@@ -3139,7 +3393,7 @@ In a <span class="monospaced">&lt;Directory&gt;</span> or <span class="monospace
3139
3393
  <div class="paragraph"><p>In each place, it may be specified at most once.</p></div>
3140
3394
  </div>
3141
3395
  <div class="sect3">
3142
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerDefaultUser"></span><h4 data-comment-topic="passengerdefaultuser" data-anchor="PassengerDefaultUser">6.12.4. PassengerDefaultUser &lt;username&gt;</h4>
3396
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerDefaultUser"></span><h4 data-comment-topic="passengerdefaultuser" data-anchor="PassengerDefaultUser">6.13.4. PassengerDefaultUser &lt;username&gt;</h4>
3143
3397
  <div class="paragraph"><p>Phusion Passenger enables <a href="#user_switching">user switching support</a> by default.
3144
3398
  This configuration option allows one to specify the user that applications must
3145
3399
  run as, if user switching fails or is disabled.</p></div>
@@ -3147,7 +3401,7 @@ run as, if user switching fails or is disabled.</p></div>
3147
3401
  The default value is <em>nobody</em>.</p></div>
3148
3402
  </div>
3149
3403
  <div class="sect3">
3150
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerDefaultGroup"></span><h4 data-comment-topic="passengerdefaultgroup" data-anchor="PassengerDefaultGroup">6.12.5. PassengerDefaultGroup &lt;group name&gt;</h4>
3404
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerDefaultGroup"></span><h4 data-comment-topic="passengerdefaultgroup" data-anchor="PassengerDefaultGroup">6.13.5. PassengerDefaultGroup &lt;group name&gt;</h4>
3151
3405
  <div class="paragraph"><p>Phusion Passenger enables <a href="#user_switching">user switching support</a> by default.
3152
3406
  This configuration option allows one to specify the group that applications must
3153
3407
  run as, if user switching fails or is disabled.</p></div>
@@ -3156,7 +3410,7 @@ The default value is the primary group of the user specifified by
3156
3410
  <a href="#PassengerDefaultUser">PassengerDefaultUser</a>.</p></div>
3157
3411
  </div>
3158
3412
  <div class="sect3">
3159
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerfriendlyerrorpages_lt_on_off_gt"></span><h4 data-comment-topic="passengerfriendlyerrorpages" data-anchor="_passengerfriendlyerrorpages_lt_on_off_gt">6.12.6. PassengerFriendlyErrorPages &lt;on|off&gt;</h4>
3413
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerfriendlyerrorpages_lt_on_off_gt"></span><h4 data-comment-topic="passengerfriendlyerrorpages" data-anchor="_passengerfriendlyerrorpages_lt_on_off_gt">6.13.6. PassengerFriendlyErrorPages &lt;on|off&gt;</h4>
3160
3414
  <div class="paragraph"><p>Phusion Passenger can display friendly error pages whenever an application fails
3161
3415
  to start. This friendly error page presents the startup error message, some
3162
3416
  suggestions for solving the problem, and a backtrace. This feature is very useful
@@ -3191,9 +3445,9 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
3191
3445
  </div>
3192
3446
  </div>
3193
3447
  <div class="sect2">
3194
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_resource_control_and_optimization_options"></span><h3 data-comment-topic="resource-control-and-optimization-options-zu2f7u" data-anchor="_resource_control_and_optimization_options">6.13. Resource control and optimization options</h3>
3448
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_resource_control_and_optimization_options"></span><h3 data-comment-topic="resource-control-and-optimization-options-zu2f7u" data-anchor="_resource_control_and_optimization_options">6.14. Resource control and optimization options</h3>
3195
3449
  <div class="sect3">
3196
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengermaxpoolsize_lt_integer_gt"></span><h4 data-comment-topic="passengermaxpoolsize-integer--am64q8" data-anchor="_passengermaxpoolsize_lt_integer_gt">6.13.1. PassengerMaxPoolSize &lt;integer&gt;</h4>
3450
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengermaxpoolsize_lt_integer_gt"></span><h4 data-comment-topic="passengermaxpoolsize-integer--am64q8" data-anchor="_passengermaxpoolsize_lt_integer_gt">6.14.1. PassengerMaxPoolSize &lt;integer&gt;</h4>
3197
3451
  <div class="paragraph"><p>The maximum number of <a href="#application_process">application processes</a> that may
3198
3452
  simultaneously exist. A larger number results in higher memory usage,
3199
3453
  but improved ability to handle concurrent HTTP clients.</p></div>
@@ -3220,7 +3474,7 @@ by about 33%, and it’s not hard to install.</td>
3220
3474
  </div>
3221
3475
  </div>
3222
3476
  <div class="sect3">
3223
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMinInstances"></span><h4 data-comment-topic="passengermininstances-integer--wegq6b" data-anchor="PassengerMinInstances">6.13.2. PassengerMinInstances &lt;integer&gt;</h4>
3477
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMinInstances"></span><h4 data-comment-topic="passengermininstances-integer--wegq6b" data-anchor="PassengerMinInstances">6.14.2. PassengerMinInstances &lt;integer&gt;</h4>
3224
3478
  <div class="paragraph"><p>This specifies the minimum number of application processes that should exist for a
3225
3479
  given application. You should set this option to a
3226
3480
  non-zero value if you want to avoid potentially long startup times after a website
@@ -3291,7 +3545,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Limits</span> i
3291
3545
  <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>1</em>.</p></div>
3292
3546
  </div>
3293
3547
  <div class="sect3">
3294
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengermaxinstances_lt_integer_gt"></span><h4 data-comment-topic="passengermaxinstances" data-anchor="_passengermaxinstances_lt_integer_gt">6.13.3. PassengerMaxInstances &lt;integer&gt;</h4>
3548
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengermaxinstances_lt_integer_gt"></span><h4 data-comment-topic="passengermaxinstances" data-anchor="_passengermaxinstances_lt_integer_gt">6.14.3. PassengerMaxInstances &lt;integer&gt;</h4>
3295
3549
  <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
3296
3550
  <div class="paragraph"><p>The maximum number of application processes that may simultaneously exist
3297
3551
  for an application. This helps to make sure that a single application
@@ -3332,7 +3586,7 @@ on the other hand will be free to spawn up to 10 processes if it gets a lot of t
3332
3586
  </div>
3333
3587
  </div>
3334
3588
  <div class="sect3">
3335
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengermaxinstancesperapp_lt_integer_gt"></span><h4 data-comment-topic="passengermaxinstancesperapp" data-anchor="_passengermaxinstancesperapp_lt_integer_gt">6.13.4. PassengerMaxInstancesPerApp &lt;integer&gt;</h4>
3589
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengermaxinstancesperapp_lt_integer_gt"></span><h4 data-comment-topic="passengermaxinstancesperapp" data-anchor="_passengermaxinstancesperapp_lt_integer_gt">6.14.4. PassengerMaxInstancesPerApp &lt;integer&gt;</h4>
3336
3590
  <div class="paragraph"><p>The maximum number of application processes that may simultaneously exist
3337
3591
  for a single application. This helps to make sure that a single application
3338
3592
  will not occupy all available slots in the application pool.</p></div>
@@ -3385,7 +3639,7 @@ the pool unequally, according to each web application’s relative importance.</
3385
3639
  </div>
3386
3640
  </div>
3387
3641
  <div class="sect3">
3388
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerPoolIdleTime"></span><h4 data-comment-topic="passengerpoolidletime-integer--a3gunq" data-anchor="PassengerPoolIdleTime">6.13.5. PassengerPoolIdleTime &lt;integer&gt;</h4>
3642
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerPoolIdleTime"></span><h4 data-comment-topic="passengerpoolidletime-integer--a3gunq" data-anchor="PassengerPoolIdleTime">6.14.5. PassengerPoolIdleTime &lt;integer&gt;</h4>
3389
3643
  <div class="paragraph"><p>The maximum number of seconds that an application process may be idle. That is,
3390
3644
  if an application process hasn’t received any traffic after the given number of
3391
3645
  seconds, then it will be shutdown in order to conserve memory.</p></div>
@@ -3407,7 +3661,7 @@ applications, each which must be available at all times.</p></div>
3407
3661
  The default value is <em>300</em>.</p></div>
3408
3662
  </div>
3409
3663
  <div class="sect3">
3410
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengermaxpreloaderidletime_lt_integer_gt"></span><h4 data-comment-topic="railsappspawneridletime-integer--1awgog1" data-anchor="_passengermaxpreloaderidletime_lt_integer_gt">6.13.6. PassengerMaxPreloaderIdleTime &lt;integer&gt;</h4>
3664
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengermaxpreloaderidletime_lt_integer_gt"></span><h4 data-comment-topic="railsappspawneridletime-integer--1awgog1" data-anchor="_passengermaxpreloaderidletime_lt_integer_gt">6.14.6. PassengerMaxPreloaderIdleTime &lt;integer&gt;</h4>
3411
3665
  <div class="paragraph"><p>The ApplicationSpawner server (explained in <a href="#spawning_methods_explained">Spawning methods explained</a>) has an idle timeout, just like the backend processes spawned by
3412
3666
  Phusion Passenger do. That is, it will automatically shutdown if it hasn’t done
3413
3667
  anything for a given period.</p></div>
@@ -3436,7 +3690,7 @@ In a virtual host configuration block.
3436
3690
  <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>300</em> (5 minutes).</p></div>
3437
3691
  </div>
3438
3692
  <div class="sect3">
3439
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerConcurrencyModel"></span><h4 data-comment-topic="passengerconcurrencymodel-process-thread--1eipofj" data-anchor="PassengerConcurrencyModel">6.13.7. PassengerConcurrencyModel &lt;process|thread&gt;</h4>
3693
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerConcurrencyModel"></span><h4 data-comment-topic="passengerconcurrencymodel-process-thread--1eipofj" data-anchor="PassengerConcurrencyModel">6.14.7. PassengerConcurrencyModel &lt;process|thread&gt;</h4>
3440
3694
  <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 4.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
3441
3695
  <div class="paragraph"><p>Specifies the I/O concurrency model that should be used for application processes. Phusion Passenger supports two concurrency models:</p></div>
3442
3696
  <div class="ulist"><ul>
@@ -3477,7 +3731,7 @@ In <em>.htaccess</em>.
3477
3731
  <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>process</em>.</p></div>
3478
3732
  </div>
3479
3733
  <div class="sect3">
3480
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerThreadCount"></span><h4 data-comment-topic="passengerthreadcount-number--10jl64a" data-anchor="PassengerThreadCount">6.13.8. PassengerThreadCount &lt;number&gt;</h4>
3734
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerThreadCount"></span><h4 data-comment-topic="passengerthreadcount-number--10jl64a" data-anchor="PassengerThreadCount">6.14.8. PassengerThreadCount &lt;number&gt;</h4>
3481
3735
  <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 4.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
3482
3736
  <div class="paragraph"><p>Specifies the number of threads that Phusion Passenger should spawn per application process. This option only has effect if <a href="#PassengerConcurrencyModel">PassengerConcurrencyModel</a> is <em>thread</em>.</p></div>
3483
3737
  <div class="paragraph"><p>This option may occur in the following places:</p></div>
@@ -3506,7 +3760,7 @@ In <em>.htaccess</em>.
3506
3760
  <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>1</em>.</p></div>
3507
3761
  </div>
3508
3762
  <div class="sect3">
3509
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMaxRequests"></span><h4 data-comment-topic="passengermaxrequests-integer--17qkw9n" data-anchor="PassengerMaxRequests">6.13.9. PassengerMaxRequests &lt;integer&gt;</h4>
3763
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMaxRequests"></span><h4 data-comment-topic="passengermaxrequests-integer--17qkw9n" data-anchor="PassengerMaxRequests">6.14.9. PassengerMaxRequests &lt;integer&gt;</h4>
3510
3764
  <div class="paragraph"><p>The maximum number of requests an application process will process. After
3511
3765
  serving that many requests, the application process will be shut down and
3512
3766
  Phusion Passenger will restart it. A value of 0 means that there is no maximum:
@@ -3554,7 +3808,7 @@ measure to avoid memory leaks.</p></div>
3554
3808
  </div>
3555
3809
  </div>
3556
3810
  <div class="sect3">
3557
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMaxRequestTime"></span><h4 data-comment-topic="passengermaxrequesttime-seconds--127v1i2" data-anchor="PassengerMaxRequestTime">6.13.10. PassengerMaxRequestTime &lt;seconds&gt;</h4>
3811
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMaxRequestTime"></span><h4 data-comment-topic="passengermaxrequesttime-seconds--127v1i2" data-anchor="PassengerMaxRequestTime">6.14.10. PassengerMaxRequestTime &lt;seconds&gt;</h4>
3558
3812
  <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
3559
3813
  <div class="paragraph"><p>The maximum amount of time, in seconds, that an application process may take
3560
3814
  to process a request. If the request takes longer than this amount of time,
@@ -3623,7 +3877,7 @@ measure to avoid freezing applications.</p></div>
3623
3877
  </div>
3624
3878
  </div>
3625
3879
  <div class="sect3">
3626
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMemoryLimit"></span><h4 data-comment-topic="passengermemorylimit-integer--18irza1" data-anchor="PassengerMemoryLimit">6.13.11. PassengerMemoryLimit &lt;integer&gt;</h4>
3880
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMemoryLimit"></span><h4 data-comment-topic="passengermemorylimit-integer--18irza1" data-anchor="PassengerMemoryLimit">6.14.11. PassengerMemoryLimit &lt;integer&gt;</h4>
3627
3881
  <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
3628
3882
  <div class="paragraph"><p>The maximum amount of memory that an application process may use, in megabytes.
3629
3883
  Once an application process has surpassed its memory limit, it will process
@@ -3655,7 +3909,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Limits</span> i
3655
3909
  </p>
3656
3910
  </li>
3657
3911
  </ul></div>
3658
- <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>200</em>.</p></div>
3912
+ <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>0</em>.</p></div>
3659
3913
  <div class="admonitionblock">
3660
3914
  <table><tr>
3661
3915
  <td class="icon">
@@ -3663,33 +3917,12 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Limits</span> i
3663
3917
  </td>
3664
3918
  <td class="content">
3665
3919
  <div class="title">A word about permissions</div>
3666
- <div class="paragraph"><p>The <a href="#PassengerMemoryLimit">PassengerMemoryLimit</a> directive requires that the
3667
- user that the application is running as (see <a href="#PassengerUserSwitching">PassengerUserSwitching</a>)
3668
- to have access to the <span class="monospaced">/proc</span> file system, or to be able to inspect its status
3669
- with <span class="monospaced">ps</span> (which on Linux and FreeBSD systems basically means the same thing, since <span class="monospaced">ps</span>
3670
- reads process information from <span class="monospaced">/proc</span>). Therefore, on servers running with
3671
- tight permissions on <span class="monospaced">/proc</span>, this directive may not work. If you wish to use
3672
- this directive and your <span class="monospaced">/proc</span> permissions are too tight, then please consider
3673
- untightening the permissions.</p></div>
3674
- </td>
3675
- </tr></table>
3676
- </div>
3677
- <div class="admonitionblock">
3678
- <table><tr>
3679
- <td class="icon">
3680
- <img src="./images/icons/tip.png" alt="Tip">
3681
- </td>
3682
- <td class="content">
3683
- <div class="title">FreeBSD and <span class="monospaced">/proc</span>
3684
- </div>
3685
- <div class="paragraph"><p>On many FreeBSD systems, <span class="monospaced">/proc</span> is not mounted by default. <span class="monospaced">/proc</span> <strong>must</strong> be
3686
- mounted in order for <a href="#PassengerMemoryLimit">PassengerMemoryLimit</a> to work.</p></div>
3687
- <div class="paragraph"><p>It is also advised that you mount <span class="monospaced">/proc</span> with the <span class="monospaced">linprocfs</span> filesystem type
3688
- instead of the regular FreeBSD <span class="monospaced">proc</span> filesystem type. The <span class="monospaced">linprocfs</span> filesystem
3689
- type allows Phusion Passenger to read memory information from <span class="monospaced">/proc</span> directly,
3690
- which is very fast. If you mount <span class="monospaced">/proc</span> with a different filesystem type, then
3691
- Phusion Passenger must resort to querying memory information from the <span class="monospaced">ps</span> command,
3692
- which is a lot slower.</p></div>
3920
+ <div class="paragraph"><p>The <a href="#PassengerMemoryLimit">PassengerMemoryLimit</a> directive uses
3921
+ <span class="monospaced">ps</span> command to query memory usage information. On Linux, it further
3922
+ queries <span class="monospaced">/proc</span> to obtain additional memory usage information that’s
3923
+ not obtainable through <span class="monospaced">ps</span>. You should ensure that the <span class="monospaced">ps</span> works
3924
+ correctly and that the <span class="monospaced">/proc</span> filesystem is accessible by the
3925
+ <span class="monospaced">PassengerHelperAgent</span> process.</p></div>
3693
3926
  </td>
3694
3927
  </tr></table>
3695
3928
  </div>
@@ -3709,7 +3942,7 @@ measure to avoid memory leaks.</p></div>
3709
3942
  </div>
3710
3943
  </div>
3711
3944
  <div class="sect3">
3712
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerstatthrottlerate_lt_integer_gt"></span><h4 data-comment-topic="passengerstatthrottlerate-integer--1dcfda3" data-anchor="_passengerstatthrottlerate_lt_integer_gt">6.13.12. PassengerStatThrottleRate &lt;integer&gt;</h4>
3945
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerstatthrottlerate_lt_integer_gt"></span><h4 data-comment-topic="passengerstatthrottlerate-integer--1dcfda3" data-anchor="_passengerstatthrottlerate_lt_integer_gt">6.14.12. PassengerStatThrottleRate &lt;integer&gt;</h4>
3713
3946
  <div class="paragraph"><p>By default, Phusion Passenger performs several filesystem checks (or, in
3714
3947
  programmers jargon, <em>stat() calls</em>) each time a request is processed:</p></div>
3715
3948
  <div class="ulist"><ul>
@@ -3761,7 +3994,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Limits</span> i
3761
3994
  <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>0</em>.</p></div>
3762
3995
  </div>
3763
3996
  <div class="sect3">
3764
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerPreStart"></span><h4 data-comment-topic="passengerprestart-url--1utb57k" data-anchor="PassengerPreStart">6.13.13. PassengerPreStart &lt;url&gt;</h4>
3997
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerPreStart"></span><h4 data-comment-topic="passengerprestart-url--1utb57k" data-anchor="PassengerPreStart">6.14.13. PassengerPreStart &lt;url&gt;</h4>
3765
3998
  <div class="paragraph"><p>By default, Phusion Passenger does not start any application processes until said
3766
3999
  web application is first accessed. The result is that the first visitor of said
3767
4000
  web application might experience a small delay as Phusion Passenger is starting
@@ -3999,7 +4232,7 @@ the request ending up at a different web server in the cluster.</p></div>
3999
4232
  </div>
4000
4233
  </div>
4001
4234
  <div class="sect3">
4002
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerHighPerformance"></span><h4 data-comment-topic="passengerhighperformance-on-off--nvfa86" data-anchor="PassengerHighPerformance">6.13.14. PassengerHighPerformance &lt;on|off&gt;</h4>
4235
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerHighPerformance"></span><h4 data-comment-topic="passengerhighperformance-on-off--nvfa86" data-anchor="PassengerHighPerformance">6.14.14. PassengerHighPerformance &lt;on|off&gt;</h4>
4003
4236
  <div class="paragraph"><p>By default, Phusion Passenger is compatible with mod_rewrite and most other
4004
4237
  Apache modules. However, a lot of effort is required in order to be compatible.
4005
4238
  If you turn <em>PassengerHighPerformance</em> to <em>on</em>, then Phusion Passenger will be
@@ -4083,9 +4316,9 @@ then you can enable high performance mode for a certain URL only. For example:</
4083
4316
  </div>
4084
4317
  </div>
4085
4318
  <div class="sect2">
4086
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_compatibility_options"></span><h3 data-comment-topic="compatibility-options-8jve5a" data-anchor="_compatibility_options">6.14. Compatibility options</h3>
4319
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_compatibility_options"></span><h3 data-comment-topic="compatibility-options-8jve5a" data-anchor="_compatibility_options">6.15. Compatibility options</h3>
4087
4320
  <div class="sect3">
4088
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerResolveSymlinksInDocumentRoot"></span><h4 data-comment-topic="passengerresolvesymlinksindocumentroot-on-off--1r0qcp8" data-anchor="PassengerResolveSymlinksInDocumentRoot">6.14.1. PassengerResolveSymlinksInDocumentRoot &lt;on|off&gt;</h4>
4321
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerResolveSymlinksInDocumentRoot"></span><h4 data-comment-topic="passengerresolvesymlinksindocumentroot-on-off--1r0qcp8" data-anchor="PassengerResolveSymlinksInDocumentRoot">6.15.1. PassengerResolveSymlinksInDocumentRoot &lt;on|off&gt;</h4>
4089
4322
  <div class="paragraph"><p>Configures whether Phusion Passenger should resolve symlinks in the document root.
4090
4323
  Please refer to <a href="#application_detection">How Phusion Passenger detects whether a virtual host is a web application</a> for more information.</p></div>
4091
4324
  <div class="paragraph"><p>This option may occur in the following places:</p></div>
@@ -4114,7 +4347,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
4114
4347
  <div class="paragraph"><p>In each place, it may be specified at most once. It is off by default.</p></div>
4115
4348
  </div>
4116
4349
  <div class="sect3">
4117
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerallowencodedslashes_lt_on_off_gt"></span><h4 data-comment-topic="passengerallowencodedslashes-on-off--1y3s1ww" data-anchor="_passengerallowencodedslashes_lt_on_off_gt">6.14.2. PassengerAllowEncodedSlashes &lt;on|off&gt;</h4>
4350
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerallowencodedslashes_lt_on_off_gt"></span><h4 data-comment-topic="passengerallowencodedslashes-on-off--1y3s1ww" data-anchor="_passengerallowencodedslashes_lt_on_off_gt">6.15.2. PassengerAllowEncodedSlashes &lt;on|off&gt;</h4>
4118
4351
  <div class="paragraph"><p>By default, Apache doesn’t support URLs with encoded slashes (%2f), e.g. URLs like
4119
4352
  this: <span class="monospaced">/users/fujikura%2fyuu</span>. If you access such an URL then Apache will return a
4120
4353
  404 Not Found error. This can be solved by turning on PassengerAllowEncodedSlashes
@@ -4183,9 +4416,9 @@ displaying maintenance.html will work fine even for URLs starting with "/users".
4183
4416
  </div>
4184
4417
  </div>
4185
4418
  <div class="sect2">
4186
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_logging_and_debugging_options"></span><h3 data-comment-topic="logging-and-debugging-options-el2cuc" data-anchor="_logging_and_debugging_options">6.15. Logging and debugging options</h3>
4419
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_logging_and_debugging_options"></span><h3 data-comment-topic="logging-and-debugging-options-el2cuc" data-anchor="_logging_and_debugging_options">6.16. Logging and debugging options</h3>
4187
4420
  <div class="sect3">
4188
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerloglevel_lt_integer_gt"></span><h4 data-comment-topic="passengerloglevel-integer--s3kbil" data-anchor="_passengerloglevel_lt_integer_gt">6.15.1. PassengerLogLevel &lt;integer&gt;</h4>
4421
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerloglevel_lt_integer_gt"></span><h4 data-comment-topic="passengerloglevel-integer--s3kbil" data-anchor="_passengerloglevel_lt_integer_gt">6.16.1. PassengerLogLevel &lt;integer&gt;</h4>
4189
4422
  <div class="paragraph"><p>This option allows one to specify how much information Phusion Passenger should
4190
4423
  write to the Apache error log file. A higher log level value means that more
4191
4424
  information will be logged.</p></div>
@@ -4218,14 +4451,14 @@ information will be logged.</p></div>
4218
4451
  The default is <em>0</em>.</p></div>
4219
4452
  </div>
4220
4453
  <div class="sect3">
4221
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerdebuglogfile_lt_filename_gt"></span><h4 data-comment-topic="passengerdebuglogfile-filename--1wjm2j1" data-anchor="_passengerdebuglogfile_lt_filename_gt">6.15.2. PassengerDebugLogFile &lt;filename&gt;</h4>
4454
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerdebuglogfile_lt_filename_gt"></span><h4 data-comment-topic="passengerdebuglogfile-filename--1wjm2j1" data-anchor="_passengerdebuglogfile_lt_filename_gt">6.16.2. PassengerDebugLogFile &lt;filename&gt;</h4>
4222
4455
  <div class="paragraph"><p>By default Phusion Passenger debugging and error messages are written to the global
4223
4456
  web server error log. This option allows one to specify the file that debugging and
4224
4457
  error messages should be written to instead.</p></div>
4225
4458
  <div class="paragraph"><p>This option may only occur once, in the global server configuration.</p></div>
4226
4459
  </div>
4227
4460
  <div class="sect3">
4228
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerdebugger_lt_on_off_gt"></span><h4 data-comment-topic="passengerdebugger-on-off--19you7e" data-anchor="_passengerdebugger_lt_on_off_gt">6.15.3. PassengerDebugger &lt;on|off&gt;</h4>
4461
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerdebugger_lt_on_off_gt"></span><h4 data-comment-topic="passengerdebugger-on-off--19you7e" data-anchor="_passengerdebugger_lt_on_off_gt">6.16.3. PassengerDebugger &lt;on|off&gt;</h4>
4229
4462
  <div class="paragraph"><p><strong>This feature is only available in <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a>. It was introduced in version 3.0.0. <a href="https://www.phusionpassenger.com/download">Buy Phusion Passenger Enterprise here.</a></strong></p></div>
4230
4463
  <div class="paragraph"><p>Turns support for application debugging on or off. In case of Ruby applications,
4231
4464
  turning this option on will cause them to load the <span class="monospaced">ruby-debug</span> gem (when on Ruby 1.8)
@@ -4265,43 +4498,11 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
4265
4498
  </div>
4266
4499
  </div>
4267
4500
  <div class="sect2">
4268
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_classic_ruby_on_rails_8656_2_x_specific_options"></span><h3 data-comment-topic="ruby-on-rails-specific-options-1t10wfu" data-anchor="_classic_ruby_on_rails_8656_2_x_specific_options">6.16. Classic Ruby on Rails (⇐ 2.x)-specific options</h3>
4501
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_classic_ruby_on_rails_8656_2_x_specific_options"></span><h3 data-comment-topic="ruby-on-rails-specific-options-1t10wfu" data-anchor="_classic_ruby_on_rails_8656_2_x_specific_options">6.17. Classic Ruby on Rails (⇐ 2.x)-specific options</h3>
4269
4502
  <div class="paragraph"><p>These options only have effect on classic Ruby on Rails 1.x and 2.x applications.
4270
4503
  Ruby on Rails &gt;= 3.x applications are considered Rack applications.</p></div>
4271
4504
  <div class="sect3">
4272
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsautodetect_lt_on_off_gt"></span><h4 data-comment-topic="railsautodetect-on-off--tpigsd" data-anchor="_railsautodetect_lt_on_off_gt">6.16.1. RailsAutoDetect &lt;on|off&gt;</h4>
4273
- <div class="paragraph"><p>Whether Phusion Passenger should automatically detect whether a virtual host’s
4274
- document root is a Ruby on Rails application. The default is <em>on</em>.</p></div>
4275
- <div class="paragraph"><p>This option may occur in the global server configuration or in a virtual host
4276
- configuration block.</p></div>
4277
- <div class="paragraph"><p>For example, consider the following configuration:</p></div>
4278
- <div class="listingblock">
4279
- <div class="content monospaced">
4280
- <pre>RailsAutoDetect off
4281
- &lt;VirtualHost *:80&gt;
4282
- ServerName www.mycook.com
4283
- DocumentRoot /webapps/mycook/public
4284
- &lt;/VirtualHost&gt;</pre>
4285
- </div>
4286
- </div>
4287
- <div class="paragraph"><p>If one goes to <em>http://www.mycook.com/</em>, the visitor will see the contents of
4288
- the <em>/webapps/mycook/public</em> folder, instead of the output of the Ruby on Rails
4289
- application.</p></div>
4290
- <div class="paragraph"><p>It is possible to explicitly specify that the host is a Ruby on Rails
4291
- application by using the <a href="#RailsBaseURI">RailsBaseURI</a> configuration option:</p></div>
4292
- <div class="listingblock">
4293
- <div class="content monospaced">
4294
- <pre>RailsAutoDetect off
4295
- &lt;VirtualHost *:80&gt;
4296
- ServerName www.mycook.com
4297
- DocumentRoot /webapps/mycook/public
4298
- RailsBaseURI / # This line has been added.
4299
- &lt;/VirtualHost&gt;</pre>
4300
- </div>
4301
- </div>
4302
- </div>
4303
- <div class="sect3">
4304
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="RailsBaseURI"></span><h4 data-comment-topic="railsbaseuri-uri--1txrw3k" data-anchor="RailsBaseURI">6.16.2. RailsBaseURI &lt;uri&gt;</h4>
4505
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="RailsBaseURI"></span><h4 data-comment-topic="railsbaseuri-uri--1txrw3k" data-anchor="RailsBaseURI">6.17.1. RailsBaseURI &lt;uri&gt;</h4>
4305
4506
  <div class="paragraph"><p>Used to specify that the given URI is a Rails application. See
4306
4507
  <a href="#deploying_rails_to_sub_uri">Deploying Rails to a sub URI</a> for an example.</p></div>
4307
4508
  <div class="paragraph"><p>It is allowed to specify this option multiple times. Do this to deploy multiple
@@ -4331,7 +4532,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
4331
4532
  </ul></div>
4332
4533
  </div>
4333
4534
  <div class="sect3">
4334
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="rails_env"></span><h4 data-comment-topic="railsenv-string--1b0xxvu" data-anchor="rails_env">6.16.3. RailsEnv &lt;string&gt;</h4>
4535
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="rails_env"></span><h4 data-comment-topic="railsenv-string--1b0xxvu" data-anchor="rails_env">6.17.2. RailsEnv &lt;string&gt;</h4>
4335
4536
  <div class="paragraph"><p>This option allows one to specify the default <span class="monospaced">RAILS_ENV</span> value.</p></div>
4336
4537
  <div class="paragraph"><p>This option may occur in the following places:</p></div>
4337
4538
  <div class="ulist"><ul>
@@ -4360,41 +4561,9 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
4360
4561
  </div>
4361
4562
  </div>
4362
4563
  <div class="sect2">
4363
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_rack_and_rails_gt_3_specific_options"></span><h3 data-comment-topic="rack-specific-options-wk9qzt" data-anchor="_rack_and_rails_gt_3_specific_options">6.17. Rack and Rails &gt;= 3 specific options</h3>
4364
- <div class="sect3">
4365
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_rackautodetect_lt_on_off_gt"></span><h4 data-comment-topic="rackautodetect-on-off--vl1lxy" data-anchor="_rackautodetect_lt_on_off_gt">6.17.1. RackAutoDetect &lt;on|off&gt;</h4>
4366
- <div class="paragraph"><p>Whether Phusion Passenger should automatically detect whether a virtual host’s
4367
- document root is a Rack application. The default is <em>on</em>.</p></div>
4368
- <div class="paragraph"><p>This option may occur in the global server configuration or in a virtual host
4369
- configuration block.</p></div>
4370
- <div class="paragraph"><p>For example, consider the following configuration:</p></div>
4371
- <div class="listingblock">
4372
- <div class="content monospaced">
4373
- <pre>RackAutoDetect off
4374
- &lt;VirtualHost *:80&gt;
4375
- ServerName www.rackapp.com
4376
- DocumentRoot /webapps/my_rack_app/public
4377
- &lt;/VirtualHost&gt;</pre>
4378
- </div>
4379
- </div>
4380
- <div class="paragraph"><p>If one goes to <em>http://www.rackapp.com/</em>, the visitor will see the contents of
4381
- the <em>/webapps/my_rack_app/public</em> folder, instead of the output of the Rack
4382
- application.</p></div>
4383
- <div class="paragraph"><p>It is possible to explicitly specify that the host is a Rack
4384
- application by using the <a href="#RackBaseURI">RackBaseURI</a> configuration option:</p></div>
4385
- <div class="listingblock">
4386
- <div class="content monospaced">
4387
- <pre>RackAutoDetect off
4388
- &lt;VirtualHost *:80&gt;
4389
- ServerName www.rackapp.com
4390
- DocumentRoot /webapps/my_rack_app/public
4391
- RackBaseURI / # This line was added
4392
- &lt;/VirtualHost&gt;</pre>
4393
- </div>
4394
- </div>
4395
- </div>
4564
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_rack_and_rails_gt_3_specific_options"></span><h3 data-comment-topic="rack-specific-options-wk9qzt" data-anchor="_rack_and_rails_gt_3_specific_options">6.18. Rack and Rails &gt;= 3 specific options</h3>
4396
4565
  <div class="sect3">
4397
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="RackBaseURI"></span><h4 data-comment-topic="rackbaseuri-uri--1to24pj" data-anchor="RackBaseURI">6.17.2. RackBaseURI &lt;uri&gt;</h4>
4566
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="RackBaseURI"></span><h4 data-comment-topic="rackbaseuri-uri--1to24pj" data-anchor="RackBaseURI">6.18.1. RackBaseURI &lt;uri&gt;</h4>
4398
4567
  <div class="paragraph"><p>Used to specify that the given URI is a Rack application. See
4399
4568
  <a href="#deploying_rack_to_sub_uri">Deploying Rack to a sub URI</a> for an example.</p></div>
4400
4569
  <div class="paragraph"><p>It is allowed to specify this option multiple times. Do this to deploy multiple
@@ -4424,7 +4593,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
4424
4593
  </ul></div>
4425
4594
  </div>
4426
4595
  <div class="sect3">
4427
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="rack_env"></span><h4 data-comment-topic="rackenv-string--vve9py" data-anchor="rack_env">6.17.3. RackEnv &lt;string&gt;</h4>
4596
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="rack_env"></span><h4 data-comment-topic="rackenv-string--vve9py" data-anchor="rack_env">6.18.2. RackEnv &lt;string&gt;</h4>
4428
4597
  <div class="paragraph"><p>The given value will be accessible in Rack applications in the <span class="monospaced">RACK_ENV</span>
4429
4598
  environment variable. This allows one to define the environment in which
4430
4599
  Rack applications are run, very similar to <span class="monospaced">RAILS_ENV</span>.</p></div>
@@ -4455,29 +4624,33 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
4455
4624
  </div>
4456
4625
  </div>
4457
4626
  <div class="sect2">
4458
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_deprecated_options"></span><h3 data-comment-topic="deprecated-options-pm9m57" data-anchor="_deprecated_options">6.18. Deprecated options</h3>
4627
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_deprecated_or_removed_options"></span><h3 data-comment-topic="deprecated-options-pm9m57" data-anchor="_deprecated_or_removed_options">6.19. Deprecated or removed options</h3>
4459
4628
  <div class="paragraph"><p>The following options have been deprecated, but are still supported for backwards
4460
4629
  compatibility reasons.</p></div>
4461
4630
  <div class="sect3">
4462
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsruby"></span><h4 data-comment-topic="railsruby-ht09ei" data-anchor="_railsruby">6.18.1. RailsRuby</h4>
4631
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsruby"></span><h4 data-comment-topic="railsruby-ht09ei" data-anchor="_railsruby">6.19.1. RailsRuby</h4>
4463
4632
  <div class="paragraph"><p>Deprecated in favor of <a href="#PassengerRuby">PassengerRuby</a>.</p></div>
4464
4633
  </div>
4465
4634
  <div class="sect3">
4466
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsuserswitching"></span><h4 data-comment-topic="railsuserswitching-1npx8y4" data-anchor="_railsuserswitching">6.18.2. RailsUserSwitching</h4>
4635
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsuserswitching"></span><h4 data-comment-topic="railsuserswitching-1npx8y4" data-anchor="_railsuserswitching">6.19.2. RailsUserSwitching</h4>
4467
4636
  <div class="paragraph"><p>Deprecated in favor of <a href="#PassengerUserSwitching">PassengerUserSwitching</a>.</p></div>
4468
4637
  </div>
4469
4638
  <div class="sect3">
4470
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsdefaultuser"></span><h4 data-comment-topic="railsdefaultuser-19j7n3m" data-anchor="_railsdefaultuser">6.18.3. RailsDefaultUser</h4>
4639
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsdefaultuser"></span><h4 data-comment-topic="railsdefaultuser-19j7n3m" data-anchor="_railsdefaultuser">6.19.3. RailsDefaultUser</h4>
4471
4640
  <div class="paragraph"><p>Deprecated in favor of <a href="#PassengerDefaultUser">PassengerDefaultUser</a>.</p></div>
4472
4641
  </div>
4473
4642
  <div class="sect3">
4474
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsallowmodrewrite"></span><h4 data-comment-topic="railsallowmodrewrite-1vkziro" data-anchor="_railsallowmodrewrite">6.18.4. RailsAllowModRewrite</h4>
4643
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsallowmodrewrite"></span><h4 data-comment-topic="railsallowmodrewrite-1vkziro" data-anchor="_railsallowmodrewrite">6.19.4. RailsAllowModRewrite</h4>
4475
4644
  <div class="paragraph"><p>This option doesn’t do anything anymore in recent versions of Phusion Passenger.</p></div>
4476
4645
  </div>
4477
4646
  <div class="sect3">
4478
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsspawnmethod"></span><h4 data-comment-topic="railsspawnmethod-1aljgpa" data-anchor="_railsspawnmethod">6.18.5. RailsSpawnMethod</h4>
4647
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsspawnmethod"></span><h4 data-comment-topic="railsspawnmethod-1aljgpa" data-anchor="_railsspawnmethod">6.19.5. RailsSpawnMethod</h4>
4479
4648
  <div class="paragraph"><p>Deprecated in favor of <a href="#PassengerSpawnMethod">PassengerSpawnMethod</a>.</p></div>
4480
4649
  </div>
4650
+ <div class="sect3">
4651
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsautodetect_rackautodetect_and_wsgiautodetect"></span><h4 data-comment-topic="railsautodetect-rackautodetect-and-wsgiautodetect-1qgakzs" data-anchor="_railsautodetect_rackautodetect_and_wsgiautodetect">6.19.6. RailsAutoDetect, RackAutoDetect and WsgiAutoDetect</h4>
4652
+ <div class="paragraph"><p>These options have been removed in version 4.0.0 as part of an optimization. You should use <a href="#PassengerEnabled">PassengerEnabled</a> instead.</p></div>
4653
+ </div>
4481
4654
  </div>
4482
4655
  </div>
4483
4656
  </div>
@@ -5177,22 +5350,7 @@ sessions compared to the others, then there might be a problem:</p></div>
5177
5350
  +---- "spike"</pre>
5178
5351
  </div>
5179
5352
  </div>
5180
- <div class="paragraph"><p>Possible reasons why spikes can occur:</p></div>
5181
- <div class="olist arabic"><ol class="arabic">
5182
- <li>
5183
- <p>
5184
- Your application is busy processing a request that takes a very long time.
5185
- If this is the case, then you might want to turn
5186
- <a href="#PassengerUseGlobalQueue">global queuing</a> on.
5187
- </p>
5188
- </li>
5189
- <li>
5190
- <p>
5191
- Your application is frozen, i.e. has stopped responding. See
5192
- <a href="#debugging_frozen">Debugging frozen applications</a> for tips.
5193
- </p>
5194
- </li>
5195
- </ol></div>
5353
+ <div class="paragraph"><p>The most likely reason why a spike occurs is because your application is frozen, i.e. it has stopped responding. See <a href="#debugging_frozen">Debugging frozen applications</a> for tips.</p></div>
5196
5354
  </div>
5197
5355
  <div class="sect2">
5198
5356
  <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="debugging_frozen"></span><h3 data-comment-topic="debugging-frozen-applications-1qsjqq7" data-anchor="debugging_frozen">8.3. Debugging frozen applications</h3>
@@ -5408,48 +5566,7 @@ the application startup file. In this file you can do whatever you need to setup
5408
5566
  or a similar system.</p></div>
5409
5567
  </div>
5410
5568
  <div class="sect2">
5411
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="moving_phusion_passenger"></span><h3 data-comment-topic="moving-phusion-passenger-to-a-different-directory-16fapwo" data-anchor="moving_phusion_passenger">9.5. Moving Phusion Passenger to a different directory</h3>
5412
- <div class="paragraph"><p>It is possible to relocate the Phusion Passenger files to a different directory. It
5413
- involves two steps:</p></div>
5414
- <div class="olist arabic"><ol class="arabic">
5415
- <li>
5416
- <p>
5417
- Moving the directory.
5418
- </p>
5419
- </li>
5420
- <li>
5421
- <p>
5422
- Updating the “PassengerRoot” configuration option in Apache.
5423
- </p>
5424
- </li>
5425
- </ol></div>
5426
- <div class="paragraph"><p>For example, if Phusion Passenger is located in <em>/opt/passenger/</em>, and you’d like to
5427
- move it to <em>/usr/local/passenger/</em>, then do this:</p></div>
5428
- <div class="olist arabic"><ol class="arabic">
5429
- <li>
5430
- <p>
5431
- Run the following command:
5432
- </p>
5433
- <div class="listingblock">
5434
- <div class="content monospaced">
5435
- <pre>mv /opt/passenger /usr/local/passenger</pre>
5436
- </div>
5437
- </div>
5438
- </li>
5439
- <li>
5440
- <p>
5441
- Edit your Apache configuration file, and set:
5442
- </p>
5443
- <div class="listingblock">
5444
- <div class="content monospaced">
5445
- <pre>PassengerRoot /usr/local/passenger</pre>
5446
- </div>
5447
- </div>
5448
- </li>
5449
- </ol></div>
5450
- </div>
5451
- <div class="sect2">
5452
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_installing_multiple_ruby_on_rails_versions"></span><h3 data-comment-topic="installing-multiple-ruby-on-rails-versions-mi5j14" data-anchor="_installing_multiple_ruby_on_rails_versions">9.6. Installing multiple Ruby on Rails versions</h3>
5569
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_installing_multiple_ruby_on_rails_versions"></span><h3 data-comment-topic="installing-multiple-ruby-on-rails-versions-mi5j14" data-anchor="_installing_multiple_ruby_on_rails_versions">9.5. Installing multiple Ruby on Rails versions</h3>
5453
5570
  <div class="paragraph"><p>Each Ruby on Rails applications that are going to be deployed may require a
5454
5571
  specific Ruby on Rails version. You can install a specific version with
5455
5572
  this command:</p></div>
@@ -5463,7 +5580,7 @@ this command:</p></div>
5463
5580
  other. Phusion Passenger will automatically make use of the correct version.</p></div>
5464
5581
  </div>
5465
5582
  <div class="sect2">
5466
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_making_the_application_restart_after_each_request"></span><h3 data-comment-topic="making-the-application-restart-after-each-request-183bezx" data-anchor="_making_the_application_restart_after_each_request">9.7. Making the application restart after each request</h3>
5583
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_making_the_application_restart_after_each_request"></span><h3 data-comment-topic="making-the-application-restart-after-each-request-183bezx" data-anchor="_making_the_application_restart_after_each_request">9.6. Making the application restart after each request</h3>
5467
5584
  <div class="paragraph"><p>In some situations it might be desirable to restart the web application after
5468
5585
  each request, for example when developing a non-Rails application that doesn’t
5469
5586
  support code reloading, or when developing a web framework.</p></div>
@@ -5486,7 +5603,7 @@ does not support code reloading.</td>
5486
5603
  </div>
5487
5604
  </div>
5488
5605
  <div class="sect2">
5489
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="sub_uri_deployment_uri_fix"></span><h3 data-comment-topic="how-to-fix-broken-images-css-javascript-uris-in-sub-uri-deployments-a63b6r" data-anchor="sub_uri_deployment_uri_fix">9.8. How to fix broken images/CSS/JavaScript URIs in sub-URI deployments</h3>
5606
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="sub_uri_deployment_uri_fix"></span><h3 data-comment-topic="how-to-fix-broken-images-css-javascript-uris-in-sub-uri-deployments-a63b6r" data-anchor="sub_uri_deployment_uri_fix">9.7. How to fix broken images/CSS/JavaScript URIs in sub-URI deployments</h3>
5490
5607
  <div class="paragraph"><p>Some people experience broken images and other broken static assets when they
5491
5608
  deploy their application to a sub-URI (i.e. <em>http://mysite.com/railsapp/</em>).
5492
5609
  The reason for this usually is that you used a
@@ -5524,7 +5641,7 @@ please refer to
5524
5641
  <a href="http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html">the Rails API docs</a>.</p></div>
5525
5642
  </div>
5526
5643
  <div class="sect2">
5527
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_out_of_band_garbage_work_and_out_of_band_garbage_collection"></span><h3 data-comment-topic="out-of-band-garbage-work-and-out-of-band-garbage-collection-kav2p8" data-anchor="_out_of_band_garbage_work_and_out_of_band_garbage_collection">9.9. Out-of-Band Garbage Work and Out-of-Band Garbage Collection</h3>
5644
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_out_of_band_garbage_work_and_out_of_band_garbage_collection"></span><h3 data-comment-topic="out-of-band-garbage-work-and-out-of-band-garbage-collection-kav2p8" data-anchor="_out_of_band_garbage_work_and_out_of_band_garbage_collection">9.8. Out-of-Band Garbage Work and Out-of-Band Garbage Collection</h3>
5528
5645
  <div class="paragraph"><p><strong>Available since Phusion Passenger 4.0.0.</strong></p></div>
5529
5646
  <div class="paragraph"><p><strong>At this time, this feature is only available on Ruby.</strong></p></div>
5530
5647
  <div class="paragraph"><p>The Out-of-Band Work feature allows you to run arbitrary long-running tasks outside normal request cycles. This works by letting current requests to the process finish, then telling the process to perform the out-of-band work, then resuming passing requests to the process after said work is finished.</p></div>
@@ -5599,12 +5716,12 @@ use PhusionPassenger<span style="color: #990000">::</span>Rack<span style="color
5599
5716
  </ul></div>
5600
5717
  </div>
5601
5718
  <div class="sect2">
5602
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_x_sendfile_support"></span><h3 data-comment-topic="x-sendfile-support-1cgyykw" data-anchor="_x_sendfile_support">9.10. X-Sendfile support</h3>
5719
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_x_sendfile_support"></span><h3 data-comment-topic="x-sendfile-support-1cgyykw" data-anchor="_x_sendfile_support">9.9. X-Sendfile support</h3>
5603
5720
  <div class="paragraph"><p>Phusion Passenger does not provide X-Sendfile support by itself. Please install
5604
5721
  <a href="http://tn123.ath.cx/mod_xsendfile/">mod_xsendfile</a> for X-Sendfile support.</p></div>
5605
5722
  </div>
5606
5723
  <div class="sect2">
5607
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_upload_progress"></span><h3 data-comment-topic="upload-progress-71cyl7" data-anchor="_upload_progress">9.11. Upload progress</h3>
5724
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_upload_progress"></span><h3 data-comment-topic="upload-progress-71cyl7" data-anchor="_upload_progress">9.10. Upload progress</h3>
5608
5725
  <div class="paragraph"><p>Phusion Passenger does not provide upload progress support by itself. Please
5609
5726
  try drogus’s <a href="http://github.com/drogus/apache-upload-progress-module/tree/master">
5610
5727
  Apache upload progress module</a> instead.</p></div>
@@ -6117,7 +6234,7 @@ has no effect.</p></div>
6117
6234
  <div id="footnotes"><hr></div>
6118
6235
  <div id="footer">
6119
6236
  <div id="footer-text">
6120
- Last updated 2013-01-23 15:31:31 CET
6237
+ Last updated 2013-03-03 11:14:55 CET
6121
6238
  </div>
6122
6239
  </div>
6123
6240
  <script>/*! jQuery v1.7.1 jquery.com | jquery.org/license */