Phusion Passenger + Apache 2 + Rails 3. Works on local network, not when accessed externally

StackOverflow https://stackoverflow.com/questions/10432973

سؤال

The problem:

I have created a Rails project skeleton using rails new TestApp in the /var/www/ directory of my server. The Rails default index.html displays and works properly (i.e., you see the rails logo and when you click on "About your application's environment" you get a correct listing of the environment specifications used on the server) when I access the site from the same network on which the server is running. However, if I access the site from a machine on a different network than the server's, the page displays but I do not get the rails logo image, and clicking on "About your application's environment" results in the following error display on the page:

Not Found
The requested URL /TestApp/rails/info/properties was not found on this server

And that URL shouldn't be found, because it doesn't exist. However, TestApp/public/rails/info/properties does exist.

Configuration:

The site resides in /var/www/TestApp and I access it from a Sub-URI. I have created a symbolic link in /var/www/ called rails as follows: rails -> /var/www/TestApp/public, such that the project can be accessed from www.mydomain.com/rails. My Apache configuration is the following, note that I've omitted,changed, or shortened some parts within the <VirtualHost> tag for brevity:

LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/ex$
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName www.mydomain.com
    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>
    .
    .
    .
    #Rails Configuration

    RailsBaseURI /rails
    RailsEnv development
    PassengerUserSwitching off
    PassengerDefaultUser www-data
    <Directory /TestApp/public>
            Options FollowSymLinks -MultiViews
            AllowOverride All
            Allow from all
    </Directory>

    #End Rails Configuration
    .
    .
    .
</VirtualHost>

A couple of things: the appropriate folders are owned by www-data with the appropriate permissions as defined by the Passenger documentation. When setting up the symlink and RailsBaseURI settings I followed the Passenger documentation.

I guess I'm at a loss here since everything seems to be working when accessing the website from the same network on which the server resides. I'm not sure why things aren't working out when accessing the site from a different network, but I feel like paths to certain resources/assets (like the rails logo) aren't resolving properly. Perhaps my symlink is configured inappropriately, or something is wrong with my Apache configuration?

Any help would be appreciated.

هل كانت مفيدة؟

المحلول

The issue of a somewhat broken default Rails page is not totally abnormal, it turns out.

I removed the default Rails page and replaced with another page that included some Rails code and everything worked like a charm.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top