新Rails +乘客部署半工作......不确定为什么?

时间:2010-06-18 05:23:44

标签: ruby-on-rails apache passenger production

我正处于整个Rails周期的最后阶段:开发 - >测试 - >生产(在外部服务器上)。我非常接近......但是看到了生产版本的一些错误,并且对Rails的“魔法”还不够了解它还没有解决它......

这可行:www.mydomain.com/rails并返回我的应用视图

但是:www.mydomain.com/rails/返回(完整):

<html>
<body>
Index from public
</body>
</html>

这是从哪里来的!?!我已经排除了Apache。因为Apache不会将那种html作为目录的索引返回...

已添加:VirtualHost(每次请求):

<VirtualHost *:80>
    ServerName www.mydomain.com
    ServerAdmin admin@mydomain.com
    DocumentRoot "/Library/WebServer/mydomainweb"
    DirectoryIndex "index.html" "index.php"
    CustomLog "/var/log/apache2/access_log" "%h %l %u %t \"%r\" %>s %b"
    ErrorLog "/var/log/apache2/error_log"
    ErrorDocument 404 /error.html
    <IfModule mod_ssl.c>
        SSLEngine Off
        SSLCertificateFile "/etc/certificates/Default.crt"
        SSLCertificateKeyFile "/etc/certificates/Default.key"
        SSLCipherSuite "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:!SSLv2:+EXP:+eNULL"
    </IfModule>
    <IfModule mod_dav.c>
        DAVLockDB "/var/run/davlocks/.davlock100"
        DAVMinTimeout 600
    </IfModule>
    <IfModule mod_mem_cache.c>
        CacheEnable mem /
        MCacheSize 4096
    </IfModule>
    <Directory "/Library/WebServer/mydomainweb">
        AllowOverride None
        <IfModule mod_dav.c>
            DAV On
        </IfModule>
        Options All -Includes -ExecCGI +MultiViews -Indexes
    </Directory>
    RailsBaseURI /rails
    <Directory /Library/WebServer/rails/myapp/public>
        Options -MultiViews -Indexes
    </Directory>
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_METHOD} ^TRACE
        RewriteRule .* - [F]
    </IfModule>
    <IfModule mod_proxy_balancer.c>
        <Proxy "balancer://balancer-group">
        </Proxy>
    </IfModule>
    <IfModule mod_alias.c>
        Alias "/collaboration" "/usr/share/collaboration"
        Alias "/icons/" "/usr/share/httpd/icons/"
        Alias "/error/" "/usr/share/httpd/error/"
        Redirect temp "/zapp.html" "/index.html"
    </IfModule>
    Include /etc/apache2/httpd_groups.conf
    Include /etc/apache2/httpd_teams_required.conf
    LogLevel warn
    ServerAlias mydomain.com
    ServerAlias images.mydomain.com
</VirtualHost>

2 个答案:

答案 0 :(得分:0)

我的猜测是,apache启用了目录浏览,乘客将此请求路由到公共文件夹,而公共文件夹又将直接进入apache。

你可以尝试

  1. 通过禁用选项索引(省略索引)来禁用目录浏览
  2. 您可能会将routes.rb文件中的路由明确地捕获到该路径并将其路由到您希望的位置。

答案 1 :(得分:0)

对于第二个,如果你这样做了吗?www.mydomain.com/rails/mycontroller/show/1?

如果它与mycontroller和1之间的“show”一起使用,那么你的路线就会出现问题。