passenger 2.2.5 → 2.2.6

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 (100) hide show
  1. data/NEWS +31 -1
  2. data/bin/passenger-install-apache2-module +7 -1
  3. data/bin/passenger-install-nginx-module +1 -1
  4. data/bin/passenger-memory-stats +3 -3
  5. data/doc/Users guide Apache.html +112 -13
  6. data/doc/Users guide Apache.txt +70 -9
  7. data/doc/Users guide Nginx.html +1 -1
  8. data/doc/cxxapi/Bucket_8h-source.html +1 -1
  9. data/doc/cxxapi/Configuration_8h-source.html +1 -1
  10. data/doc/cxxapi/DirectoryMapper_8h-source.html +7 -7
  11. data/doc/cxxapi/Hooks_8h-source.html +1 -1
  12. data/doc/cxxapi/annotated.html +1 -1
  13. data/doc/cxxapi/classHooks-members.html +1 -1
  14. data/doc/cxxapi/classHooks.html +1 -1
  15. data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +1 -1
  16. data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +1 -1
  17. data/doc/cxxapi/classes.html +1 -1
  18. data/doc/cxxapi/definitions_8h-source.html +1 -1
  19. data/doc/cxxapi/files.html +1 -1
  20. data/doc/cxxapi/functions.html +1 -1
  21. data/doc/cxxapi/functions_func.html +1 -1
  22. data/doc/cxxapi/graph_legend.html +1 -1
  23. data/doc/cxxapi/group__Configuration.html +1 -1
  24. data/doc/cxxapi/group__Core.html +1 -1
  25. data/doc/cxxapi/group__Hooks.html +1 -1
  26. data/doc/cxxapi/group__Support.html +1 -1
  27. data/doc/cxxapi/main.html +1 -1
  28. data/doc/cxxapi/modules.html +1 -1
  29. data/doc/rdoc/classes/ConditionVariable.html +59 -59
  30. data/doc/rdoc/classes/Exception.html +11 -11
  31. data/doc/rdoc/classes/GC.html +4 -4
  32. data/doc/rdoc/classes/IO.html +14 -14
  33. data/doc/rdoc/classes/PhusionPassenger.html +13 -13
  34. data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +8 -8
  35. data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +26 -26
  36. data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +98 -98
  37. data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +61 -61
  38. data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +8 -8
  39. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess.html +32 -32
  40. data/doc/rdoc/classes/PhusionPassenger/Application.html +14 -14
  41. data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +12 -12
  42. data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +4 -4
  43. data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +12 -12
  44. data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +5 -5
  45. data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +42 -42
  46. data/doc/rdoc/classes/PhusionPassenger/NativeSupport.html +24 -24
  47. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +8 -8
  48. data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +8 -8
  49. data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html +62 -66
  50. data/doc/rdoc/classes/PhusionPassenger/Railz/CGIFixed.html +23 -23
  51. data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html +30 -30
  52. data/doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html +8 -8
  53. data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +23 -23
  54. data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +4 -4
  55. data/doc/rdoc/classes/PhusionPassenger/Utils.html +384 -384
  56. data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +36 -36
  57. data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +4 -4
  58. data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +7 -7
  59. data/doc/rdoc/classes/PlatformInfo.html +234 -200
  60. data/doc/rdoc/classes/RakeExtensions.html +4 -4
  61. data/doc/rdoc/classes/Signal.html +27 -27
  62. data/doc/rdoc/created.rid +1 -1
  63. data/doc/rdoc/files/DEVELOPERS_TXT.html +1 -1
  64. data/doc/rdoc/files/ext/phusion_passenger/native_support_c.html +1 -1
  65. data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +1 -1
  66. data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +1 -1
  67. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +1 -1
  68. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html +1 -1
  69. data/doc/rdoc/files/lib/phusion_passenger/application_rb.html +1 -1
  70. data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +1 -1
  71. data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +1 -1
  72. data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +1 -1
  73. data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +1 -1
  74. data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +1 -1
  75. data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +1 -1
  76. data/doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html +1 -3
  77. data/doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html +1 -1
  78. data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +1 -1
  79. data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +10 -9
  80. data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +1 -1
  81. data/doc/rdoc/fr_method_index.html +148 -147
  82. data/ext/apache2/DirectoryMapper.h +6 -6
  83. data/ext/common/Utils.cpp +31 -5
  84. data/ext/common/Version.h +1 -1
  85. data/ext/nginx/Configuration.c +4 -8
  86. data/ext/nginx/Configuration.h +2 -2
  87. data/ext/nginx/ContentHandler.c +11 -7
  88. data/ext/oxt/thread.hpp +12 -11
  89. data/lib/phusion_passenger/constants.rb +1 -1
  90. data/lib/phusion_passenger/dependencies.rb +40 -25
  91. data/lib/phusion_passenger/platform_info.rb +28 -11
  92. data/lib/phusion_passenger/railz/application_spawner.rb +3 -7
  93. data/lib/phusion_passenger/templates/apache2/deployment_example.txt.erb +7 -4
  94. data/lib/phusion_passenger/utils.rb +1 -0
  95. data/test/integration_tests/apache2_tests.rb +16 -0
  96. data/test/integration_tests/nginx_tests.rb +46 -0
  97. data/test/stub/MessageServer.dSYM/Contents/Info.plist +25 -0
  98. data/test/stub/MessageServer.dSYM/Contents/Resources/DWARF/MessageServer +0 -0
  99. data/test/stub/wsgi/passenger_wsgi.pyc +0 -0
  100. metadata +4 -2
data/NEWS CHANGED
@@ -1,3 +1,33 @@
1
+ Release 2.2.6
2
+ -------------
3
+
4
+ * Some /tmp cleaner programs such as tmpwatch try to remove subdirectories
5
+ in /tmp/passenger.xxx after a while because they think those
6
+ subdirectories are unused. This could cause Phusion Passenger to
7
+ malfunction, requiring a web server restart. Measures have now been
8
+ taken to prevent those tmp cleaner programs from removing anything
9
+ in /tmp/passenger.xxx. Issue #365.
10
+ * When autodetecting the application type, Rack is now given more priority
11
+ than Rails. This allows one to drop a config.ru file in a Rails directory
12
+ and have it detected as a Rack application instead of a Rails application.
13
+ Patch contributed by Sam Pohlenz: issue #338.
14
+ * The default socket backlog has been increased from 'SOMAXCONN' (which
15
+ is 128 on most platforms) to 1024. This should fix most
16
+ 'helper_server.sock failed: Resource temporarily unavailable'
17
+ errors.
18
+ * Fixed compilation problems on Solaris. Issue #369 and issue #379.
19
+ * Fixed crashes on PowerPC.
20
+ * Some Ruby 1.9 compatibility fixes. Issue #398.
21
+ * The installer now displays correct dependency installation instructions
22
+ for Mandriva Linux.
23
+ * [Apache] The location of the 'apxs' and 'apr-config' commands can now
24
+ also be passed to the installer through the --apxs-path and
25
+ --apr-config-path parameters, in addition to the $APXS2 and $APR_CONFIG
26
+ environment variables. Issue #3.
27
+ * [Nginx] Various problems that only occur on 64-bit platforms have been fixed.
28
+ * [Nginx] The installer now installs Nginx 0.7.64 by default.
29
+
30
+
1
31
  Release 2.2.5
2
32
  -------------
3
33
 
@@ -134,4 +164,4 @@ Release 2.2.5
134
164
 
135
165
  Older releases
136
166
  --------------
137
- Please consult the blog posts on http://blog.phusion.nl/ for the information about older releases.
167
+ Please consult the blog posts on http://blog.phusion.nl/ for the information about older releases.
@@ -85,7 +85,7 @@ class Installer < PhusionPassenger::AbstractInstaller
85
85
  check_dependencies || exit(1)
86
86
  check_whether_apache_uses_compatible_mpm
87
87
  check_write_permission_to_passenger_root || exit(1)
88
- if install_apache2_module
88
+ if true || install_apache2_module
89
89
  show_apache2_config_snippets
90
90
  show_deployment_example
91
91
  else
@@ -204,6 +204,12 @@ parser = OptionParser.new do |opts|
204
204
  "#{' ' * 37}input.") do
205
205
  options[:auto] = true
206
206
  end
207
+ opts.on("--apxs2-path PATH", String, "Path to 'apxs2' command.") do |value|
208
+ ENV['APXS2'] = value
209
+ end
210
+ opts.on("--apr-config-path PATH", String, "Path to 'apr-config' command.") do |value|
211
+ ENV['APR_CONFIG'] = value
212
+ end
207
213
  end
208
214
  begin
209
215
  parser.parse!
@@ -36,7 +36,7 @@ include PlatformInfo
36
36
  class Installer < PhusionPassenger::AbstractInstaller
37
37
  include PhusionPassenger
38
38
 
39
- NGINX_VERSION = "0.7.61"
39
+ NGINX_VERSION = "0.7.64"
40
40
 
41
41
  def dependencies
42
42
  result = [
@@ -76,7 +76,7 @@ class Table
76
76
  left_bar_size = free_space / 2
77
77
  right_bar_size = free_space - left_bar_size
78
78
  end
79
- result = "#{BLUE_BG}#{BOLD}#{YELLOW}"
79
+ result = "#{BLUE_BG}#{BOLD}#{YELLOW}\n"
80
80
  result << "#{"-" * left_bar_size} #{title} #{"-" * right_bar_size}\n"
81
81
  if !@rows.empty?
82
82
  result << WHITE
@@ -124,7 +124,7 @@ class MemoryStats
124
124
  end
125
125
 
126
126
  def to_a
127
- return [pid, ppid, threads, vm_size_in_mb, private_dirty_rss_in_mb, rss_in_mb, name]
127
+ return [pid, ppid, vm_size_in_mb, private_dirty_rss_in_mb, rss_in_mb, name]
128
128
  end
129
129
  end
130
130
 
@@ -264,7 +264,7 @@ private
264
264
  end
265
265
 
266
266
  def print_process_list(title, processes, options = {})
267
- table = Table.new(%w{PID PPID Threads VMSize Private Resident Name})
267
+ table = Table.new(%w{PID PPID VMSize Private Resident Name})
268
268
  table.add_rows(processes)
269
269
  if options.has_key?(:show_ppid) && !options[:show_ppid]
270
270
  table.remove_column('PPID')
@@ -798,14 +798,36 @@ are run, is &#8220;production&#8221;. You can change this by changing the
798
798
  </tr></table>
799
799
  </div>
800
800
  <h3 id="_deploying_to_a_virtual_host_8217_s_root">3.1. Deploying to a virtual host&#8217;s root</h3>
801
- <div class="paragraph"><p>Add a virtual host entry to your Apache configuration file. The virtual host&#8217;s
802
- document root must point to your Ruby on Rails application&#8217;s <em>public</em> folder.
803
- For example:</p></div>
801
+ <div class="paragraph"><p>Add a virtual host entry to your Apache configuration file. Make sure that the
802
+ following conditions are met:</p></div>
803
+ <div class="ulist"><ul>
804
+ <li>
805
+ <p>
806
+ The virtual host&#8217;s document root must point to your Ruby on Rails application&#8217;s
807
+ <em>public</em> folder.
808
+ </p>
809
+ </li>
810
+ <li>
811
+ <p>
812
+ The Apache per-directory permissions must allow access to this folder.
813
+ </p>
814
+ </li>
815
+ <li>
816
+ <p>
817
+ MultiViews must be disabled for this folder.
818
+ </p>
819
+ </li>
820
+ </ul></div>
821
+ <div class="paragraph"><p>For example:</p></div>
804
822
  <div class="listingblock">
805
823
  <div class="content">
806
824
  <pre><tt>&lt;VirtualHost *:80&gt;
807
825
  ServerName www.mycook.com
808
826
  DocumentRoot /webapps/mycook/public
827
+ &lt;Directory /webapps/mycook/public&gt;
828
+ Allow from all
829
+ Options -MultiViews
830
+ &lt;/Directory&gt;
809
831
  &lt;/VirtualHost&gt;</tt></pre>
810
832
  </div></div>
811
833
  <div class="paragraph"><p>You may also need to tweak your file/folder permissions. Make sure that the
@@ -835,6 +857,9 @@ all parent folders. That is, /webapps/mycook and /webapps must also be readable
835
857
  <pre><tt>&lt;VirtualHost *:80&gt;
836
858
  ServerName www.phusion.nl
837
859
  DocumentRoot /websites/phusion
860
+ &lt;Directory /websites/phusion&gt;
861
+ Allow from all
862
+ &lt;/Directory&gt;
838
863
  &lt;/VirtualHost&gt;</tt></pre>
839
864
  </div></div>
840
865
  <div class="paragraph"><p>And you want your Ruby on Rails application to be accessible from the URL
@@ -845,13 +870,34 @@ folder to a directory in the document root. For example:</p></div>
845
870
  <div class="content">
846
871
  <pre><tt>ln -s /webapps/mycook/public /websites/phusion/rails</tt></pre>
847
872
  </div></div>
848
- <div class="paragraph"><p>Next, add a <a href="#RailsBaseURI">RailsBaseURI</a> option to the virtual host configuration:</p></div>
873
+ <div class="paragraph"><p>Next, add a <a href="#RailsBaseURI">RailsBaseURI</a> option to the virtual host configuration,
874
+ and also make sure that:</p></div>
875
+ <div class="ulist"><ul>
876
+ <li>
877
+ <p>
878
+ The Apache per-directory permissions allow access to this folder.
879
+ </p>
880
+ </li>
881
+ <li>
882
+ <p>
883
+ MultiViews is disabled for this folder.
884
+ </p>
885
+ </li>
886
+ </ul></div>
887
+ <div class="paragraph"><p>For example:</p></div>
849
888
  <div class="listingblock">
850
889
  <div class="content">
851
890
  <pre><tt>&lt;VirtualHost *:80&gt;
852
891
  ServerName www.phusion.nl
853
892
  DocumentRoot /websites/phusion
854
- RailsBaseURI /rails # This line has been added.
893
+ &lt;Directory /websites/phusion&gt;
894
+ Allow from all
895
+ &lt;/Directory&gt;
896
+
897
+ RailsBaseURI /rails # &lt;-- These lines have
898
+ &lt;Directory /websites/phusion/rails&gt; # &lt;-- been added.
899
+ Options -MultiViews # &lt;--
900
+ &lt;/Directory&gt; # &lt;--
855
901
  &lt;/VirtualHost&gt;</tt></pre>
856
902
  </div></div>
857
903
  <div class="paragraph"><p>Then restart Apache. The application has now been deployed.</p></div>
@@ -1001,19 +1047,45 @@ the Apache configuration file:</p></div>
1001
1047
  <pre><tt>&lt;VirtualHost *:80&gt;
1002
1048
  ServerName www.rackexample.com
1003
1049
  DocumentRoot /webapps/rack_example/public
1050
+ &lt;Directory /webapps/rack_example/public&gt;
1051
+ Allow from all
1052
+ Options -MultiViews
1053
+ &lt;/Directory&gt;
1004
1054
  &lt;/VirtualHost&gt;</tt></pre>
1005
1055
  </div></div>
1006
1056
  <div class="paragraph"><p>And we&#8217;re done! After an Apache restart, the above Rack application will be available
1007
1057
  under the URL <em>http://www.rackexample.com/</em>.</p></div>
1008
1058
  <h3 id="_deploying_to_a_virtual_host_8217_s_root_2">4.2. Deploying to a virtual host&#8217;s root</h3>
1009
- <div class="paragraph"><p>Add a virtual host entry to your Apache configuration file. The virtual host&#8217;s
1010
- document root must point to your Rack application&#8217;s <em>public</em> folder.
1011
- For example:</p></div>
1059
+ <div class="paragraph"><p>Add a virtual host entry to your Apache configuration file. Make sure that the
1060
+ following conditions are met:</p></div>
1061
+ <div class="ulist"><ul>
1062
+ <li>
1063
+ <p>
1064
+ The virtual host&#8217;s document root must point to your Rack application&#8217;s
1065
+ <em>public</em> folder.
1066
+ </p>
1067
+ </li>
1068
+ <li>
1069
+ <p>
1070
+ The Apache per-directory permissions must allow access to this folder.
1071
+ </p>
1072
+ </li>
1073
+ <li>
1074
+ <p>
1075
+ MultiViews must be disabled for this folder.
1076
+ </p>
1077
+ </li>
1078
+ </ul></div>
1079
+ <div class="paragraph"><p>For example:</p></div>
1012
1080
  <div class="listingblock">
1013
1081
  <div class="content">
1014
1082
  <pre><tt>&lt;VirtualHost *:80&gt;
1015
1083
  ServerName www.rackapp.com
1016
1084
  DocumentRoot /webapps/rackapp/public
1085
+ &lt;Directory /webapps/rackapp/public&gt;
1086
+ Allow from all
1087
+ Options -MultiViews
1088
+ &lt;/Directory&gt;
1017
1089
  &lt;/VirtualHost&gt;</tt></pre>
1018
1090
  </div></div>
1019
1091
  <div class="paragraph"><p>You may also need to tweak your file/folder permissions. Make sure that the
@@ -1043,6 +1115,9 @@ all parent folders. That is, /webapps/rackapp and /webapps must also be readable
1043
1115
  <pre><tt>&lt;VirtualHost *:80&gt;
1044
1116
  ServerName www.phusion.nl
1045
1117
  DocumentRoot /websites/phusion
1118
+ &lt;Directory /websites/phusion&gt;
1119
+ Allow from all
1120
+ &lt;/Directory&gt;
1046
1121
  &lt;/VirtualHost&gt;</tt></pre>
1047
1122
  </div></div>
1048
1123
  <div class="paragraph"><p>And you want your Rack application to be accessible from the URL
@@ -1053,13 +1128,34 @@ folder to a directory in the document root. For example:</p></div>
1053
1128
  <div class="content">
1054
1129
  <pre><tt>ln -s /webapps/rackapp/public /websites/phusion/rack</tt></pre>
1055
1130
  </div></div>
1056
- <div class="paragraph"><p>Next, add a <a href="#RackBaseURI">RackBaseURI</a> option to the virtual host configuration:</p></div>
1131
+ <div class="paragraph"><p>Next, add a <a href="#RackBaseURI">RackBaseURI</a> option to the virtual host configuration,
1132
+ and also make sure that:</p></div>
1133
+ <div class="ulist"><ul>
1134
+ <li>
1135
+ <p>
1136
+ The Apache per-directory permissions allow access to this folder.
1137
+ </p>
1138
+ </li>
1139
+ <li>
1140
+ <p>
1141
+ MultiViews is disabled for this folder.
1142
+ </p>
1143
+ </li>
1144
+ </ul></div>
1145
+ <div class="paragraph"><p>For example:</p></div>
1057
1146
  <div class="listingblock">
1058
1147
  <div class="content">
1059
1148
  <pre><tt>&lt;VirtualHost *:80&gt;
1060
1149
  ServerName www.phusion.nl
1061
1150
  DocumentRoot /websites/phusion
1062
- RackBaseURI /rack # This line has been added.
1151
+ &lt;Directory /websites/phusion&gt;
1152
+ Allow from all
1153
+ &lt;/Directory&gt;
1154
+
1155
+ RackBaseURI /rails # &lt;-- These lines have
1156
+ &lt;Directory /websites/phusion/rails&gt; # &lt;-- been added.
1157
+ Options -MultiViews # &lt;--
1158
+ &lt;/Directory&gt; # &lt;--
1063
1159
  &lt;/VirtualHost&gt;</tt></pre>
1064
1160
  </div></div>
1065
1161
  <div class="paragraph"><p>Then restart Apache. The application has now been deployed.</p></div>
@@ -1862,7 +1958,7 @@ virtual hosts or URLs that need it:</p></div>
1862
1958
  accessing <a href="http://www.example.com/about">http://www.example.com/about</a> will properly display the result of
1863
1959
  <a href="http://www.example.com/info/about">http://www.example.com/info/about</a>. Notice that PassengerAllowEncodedSlashes only
1864
1960
  interferes with passthrough rules, not with any other mod_rewrite rules. The rules for
1865
- displaying maintenance.html will work fine even URLs starting with "/users".</p></div>
1961
+ displaying maintenance.html will work fine even for URLs starting with "/users".</p></div>
1866
1962
  <h3 id="_ruby_on_rails_specific_options">5.14. Ruby on Rails-specific options</h3>
1867
1963
  <h4 id="_railsautodetect_lt_on_off_gt">5.14.1. RailsAutoDetect &lt;on|off&gt;</h4>
1868
1964
  <div class="paragraph"><p>Whether Phusion Passenger should automatically detect whether a virtual host&#8217;s
@@ -2606,7 +2702,10 @@ following command to give your Rails application folder that context:</p></div>
2606
2702
  <h3 id="conflicting_apache_modules">6.4. Conflicting Apache modules</h3>
2607
2703
  <h4 id="_mod_userdir">6.4.1. mod_userdir</h4>
2608
2704
  <div class="paragraph"><p><em>mod_userdir</em> is not compatible with Phusion Passenger at the moment.</p></div>
2609
- <h4 id="_virtualdocumentroot">6.4.2. VirtualDocumentRoot</h4>
2705
+ <h4 id="_multiviews_mod_negotiation">6.4.2. MultiViews (mod_negotiation)</h4>
2706
+ <div class="paragraph"><p>MultiViews is not compatible with Phusion Passenger. You should disable MultiViews
2707
+ for all Phusion Passenger hosts.</p></div>
2708
+ <h4 id="_virtualdocumentroot">6.4.3. VirtualDocumentRoot</h4>
2610
2709
  <div class="paragraph"><p>VirtualDocumentRoot is not compatible with Phusion Passenger at the moment.</p></div>
2611
2710
  </div>
2612
2711
  <h2 id="_analysis_and_system_maintenance_tools">7. Analysis and system maintenance tools</h2>
@@ -3482,7 +3581,7 @@ has no effect.</p></div>
3482
3581
  </div>
3483
3582
  <div id="footer">
3484
3583
  <div id="footer-text">
3485
- Last updated 2009-08-31 15:39:27 CEST
3584
+ Last updated 2009-11-18 14:52:26 CEST
3486
3585
  </div>
3487
3586
  </div>
3488
3587
  </body>
@@ -345,13 +345,23 @@ are run, is ``production''. You can change this by changing the
345
345
 
346
346
  === Deploying to a virtual host's root ===
347
347
 
348
- Add a virtual host entry to your Apache configuration file. The virtual host's
349
- document root must point to your Ruby on Rails application's 'public' folder.
348
+ Add a virtual host entry to your Apache configuration file. Make sure that the
349
+ following conditions are met:
350
+
351
+ - The virtual host's document root must point to your Ruby on Rails application's
352
+ 'public' folder.
353
+ - The Apache per-directory permissions must allow access to this folder.
354
+ - MultiViews must be disabled for this folder.
355
+
350
356
  For example:
351
357
  -------------------------------------------
352
358
  <VirtualHost *:80>
353
359
  ServerName www.mycook.com
354
360
  DocumentRoot /webapps/mycook/public
361
+ <Directory /webapps/mycook/public>
362
+ Allow from all
363
+ Options -MultiViews
364
+ </Directory>
355
365
  </VirtualHost>
356
366
  -------------------------------------------
357
367
 
@@ -373,6 +383,9 @@ Suppose that you already have a virtual host:
373
383
  <VirtualHost *:80>
374
384
  ServerName www.phusion.nl
375
385
  DocumentRoot /websites/phusion
386
+ <Directory /websites/phusion>
387
+ Allow from all
388
+ </Directory>
376
389
  </VirtualHost>
377
390
  -------------------------------------------
378
391
 
@@ -385,12 +398,25 @@ folder to a directory in the document root. For example:
385
398
  ln -s /webapps/mycook/public /websites/phusion/rails
386
399
  -------------------------------------------
387
400
 
388
- Next, add a <<RailsBaseURI,RailsBaseURI>> option to the virtual host configuration:
401
+ Next, add a <<RailsBaseURI,RailsBaseURI>> option to the virtual host configuration,
402
+ and also make sure that:
403
+
404
+ - The Apache per-directory permissions allow access to this folder.
405
+ - MultiViews is disabled for this folder.
406
+
407
+ For example:
389
408
  -------------------------------------------
390
409
  <VirtualHost *:80>
391
410
  ServerName www.phusion.nl
392
411
  DocumentRoot /websites/phusion
393
- RailsBaseURI /rails # This line has been added.
412
+ <Directory /websites/phusion>
413
+ Allow from all
414
+ </Directory>
415
+
416
+ RailsBaseURI /rails # <-- These lines have
417
+ <Directory /websites/phusion/rails> # <-- been added.
418
+ Options -MultiViews # <--
419
+ </Directory> # <--
394
420
  </VirtualHost>
395
421
  -------------------------------------------
396
422
  Then restart Apache. The application has now been deployed.
@@ -515,6 +541,10 @@ the Apache configuration file:
515
541
  <VirtualHost *:80>
516
542
  ServerName www.rackexample.com
517
543
  DocumentRoot /webapps/rack_example/public
544
+ <Directory /webapps/rack_example/public>
545
+ Allow from all
546
+ Options -MultiViews
547
+ </Directory>
518
548
  </VirtualHost>
519
549
  -------------------------------------------
520
550
 
@@ -523,13 +553,23 @@ under the URL 'http://www.rackexample.com/'.
523
553
 
524
554
  === Deploying to a virtual host's root ===
525
555
 
526
- Add a virtual host entry to your Apache configuration file. The virtual host's
527
- document root must point to your Rack application's 'public' folder.
556
+ Add a virtual host entry to your Apache configuration file. Make sure that the
557
+ following conditions are met:
558
+
559
+ - The virtual host's document root must point to your Rack application's
560
+ 'public' folder.
561
+ - The Apache per-directory permissions must allow access to this folder.
562
+ - MultiViews must be disabled for this folder.
563
+
528
564
  For example:
529
565
  -------------------------------------------
530
566
  <VirtualHost *:80>
531
567
  ServerName www.rackapp.com
532
568
  DocumentRoot /webapps/rackapp/public
569
+ <Directory /webapps/rackapp/public>
570
+ Allow from all
571
+ Options -MultiViews
572
+ </Directory>
533
573
  </VirtualHost>
534
574
  -------------------------------------------
535
575
 
@@ -551,6 +591,9 @@ Suppose that you already have a virtual host:
551
591
  <VirtualHost *:80>
552
592
  ServerName www.phusion.nl
553
593
  DocumentRoot /websites/phusion
594
+ <Directory /websites/phusion>
595
+ Allow from all
596
+ </Directory>
554
597
  </VirtualHost>
555
598
  -------------------------------------------
556
599
 
@@ -563,12 +606,25 @@ folder to a directory in the document root. For example:
563
606
  ln -s /webapps/rackapp/public /websites/phusion/rack
564
607
  -------------------------------------------
565
608
 
566
- Next, add a <<RackBaseURI,RackBaseURI>> option to the virtual host configuration:
609
+ Next, add a <<RackBaseURI,RackBaseURI>> option to the virtual host configuration,
610
+ and also make sure that:
611
+
612
+ - The Apache per-directory permissions allow access to this folder.
613
+ - MultiViews is disabled for this folder.
614
+
615
+ For example:
567
616
  -------------------------------------------
568
617
  <VirtualHost *:80>
569
618
  ServerName www.phusion.nl
570
619
  DocumentRoot /websites/phusion
571
- RackBaseURI /rack # This line has been added.
620
+ <Directory /websites/phusion>
621
+ Allow from all
622
+ </Directory>
623
+
624
+ RackBaseURI /rails # <-- These lines have
625
+ <Directory /websites/phusion/rails> # <-- been added.
626
+ Options -MultiViews # <--
627
+ </Directory> # <--
572
628
  </VirtualHost>
573
629
  -------------------------------------------
574
630
  Then restart Apache. The application has now been deployed.
@@ -1125,7 +1181,7 @@ With this, http://www.example.com/users/fujikura%2fyuu will work properly, and
1125
1181
  accessing http://www.example.com/about will properly display the result of
1126
1182
  http://www.example.com/info/about. Notice that PassengerAllowEncodedSlashes only
1127
1183
  interferes with passthrough rules, not with any other mod_rewrite rules. The rules for
1128
- displaying maintenance.html will work fine even URLs starting with "/users".
1184
+ displaying maintenance.html will work fine even for URLs starting with "/users".
1129
1185
 
1130
1186
 
1131
1187
  === Ruby on Rails-specific options ===
@@ -1660,6 +1716,11 @@ chcon -R -h -t httpd_sys_content_t /path/to/your/rails/app
1660
1716
 
1661
1717
  'mod_userdir' is not compatible with Phusion Passenger at the moment.
1662
1718
 
1719
+ ==== MultiViews (mod_negotiation) ====
1720
+
1721
+ MultiViews is not compatible with Phusion Passenger. You should disable MultiViews
1722
+ for all Phusion Passenger hosts.
1723
+
1663
1724
  ==== VirtualDocumentRoot ====
1664
1725
 
1665
1726
  VirtualDocumentRoot is not compatible with Phusion Passenger at the moment.