Phusion Passenger + Apache 2 + Rails 3.在本地网络上运行,而不是在外部访问时

时间:2012-05-03 13:59:29

标签: ruby-on-rails apache passenger phusion

问题:

我在服务器的rails new TestApp目录中使用/var/www/创建了一个Rails项目框架。 Rails默认index.html显示并正常工作(即,当我从网站访问网站时,您会看到rails徽标,当您点击“关于您的应用程序的环境”时,您会获得服务器上使用的环境规范的正确列表)运行服务器的同一网络。但是,如果我从与服务器不同的网络上的计算机访问该站点,则会显示该页面但我没有获得rails徽标图像,并且单击“关于您的应用程序的环境”会导致页面上显示以下错误:

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

该网址不应该找到,因为它不存在。但是,TestApp/public/rails/info/properties确实存在。

配置:

该网站位于/var/www/TestApp,我从子URI访问它。我在/var/www/中创建了一个名为rails的符号链接,如下所示:rails -> /var/www/TestApp/public,以便可以从www.mydomain.com/rails访问该项目。我的Apache配置如下,请注意,为简洁起见,我在<VirtualHost>标记中省略,更改或缩短了某些部分:

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>

有两件事:appropriate folders are ownedwww-data,具有Passenger文档定义的相应权限。在设置symlink and RailsBaseURI设置时,我遵循了乘客文档。

我想我在这里不知所措,因为当从服务器所在的同一网络访问网站时,一切似乎都有效。我不确定为什么从其他网络访问网站时出现问题,但我觉得某些资源/资产(如rails徽标)的路径无法正常解析。也许我的符号链接配置不当,或者我的Apache配置有问题?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

一个有点破坏的默认Rails页面的问题是not totally abnormal,事实证明。

我删除了默认的Rails页面,并替换为包含一些Rails代码的其他页面,所有内容都像魅力一样。