Why does rails app show /public index listing instead of actual app?
apache, ruby-on-rails, virtualhost
Solution
OK that might not be it, but here's what Passenger's documentation recommends:
<VirtualHost *:80>
ServerName www.mycook.com
DocumentRoot /webapps/mycook/public
<Directory /webapps/mycook/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>
It's clearly stated that MultiViews is not compatible with Passenger.
So you could try:
- Removing the Indexes option
- Specifying `-MultiViews` instead of `MultiViews`
To be honest, I've tried adding Indexes to a production app of mine, as I thought that might just be this option that caused the problem, but it didn't change anything... so it's a bit of a "wild guess" that it might fix things on your side.
UPDATE From another answer, what you could try is adding the `PassengerResolveSymlinksInDocumentRoot` option:
<VirtualHost *:80>
ServerName www.mycook.com
DocumentRoot /webapps/mycook/public
<Directory /webapps/mycook/public>
Allow from all
Options -MultiViews
PassengerResolveSymlinksInDocumentRoot on
</Directory>
</VirtualHost>
Problem
How do you set up apache to show the rails app once it is on the server? My rails app works perfectly on the localhost, but when I go to the external site it gives me the index information like this ``` Name Last modified Size Description [TXT] 404.html 21-May-2012 21:38 728 [TXT] 422.html 21-May-2012 21:38 711 [TXT] 500.html 21-May-2012 21:38 643 [IMG] favicon.ico 21-May-2012 21:38 0 [TXT] robots.txt 21-May-2012 21:38 204 ``` This is my virtual host information ``` <VirtualHost *:80> ServerAdmin example@example.com ServerName server.example.com # ServerAlias DocumentRoot /var/www/sample_app/current/public ErrorLog /var/www/sample_app/error.log RailsEnv production <Directory "/var/www/sample_app/current/public"> Options Indexes FollowSymLinks MultiViews Order allow,deny Allow from all </Directory> </VirtualHost> ```