部署rails应用程序

时间:2011-06-06 20:44:17

标签: ruby-on-rails deployment passenger

我正在尝试部署 / opt / rails / my_app 中的铁路应用程序。 为实现这一目标,我已经使用 passenger-install-nginx-module 安装了乘客gem和配置的nginx。我可以访问静态欢迎页面,但是当我尝试像home这样的其他页面(由rails生成控制器主索引生成)时,浏览器会一直等待并等待响应。

当我在端口3000上使用rails s部署应用程序时,不会发生这种情况。

更新 当我执行passenger-install-apache2-module时,我得到 g ++:无法识别的选项'-R / usr / local / lib'。我想我需要将'-R / usr / local / lib'更改为'Wl,-R / usr / local / lib'才能正确编译LoggingAgent。你能告诉我如何更改make文件吗?

2 个答案:

答案 0 :(得分:0)

关于NGINX,听起来好像是某些文件和/或目录的权限问题。我会将应用程序移动到专用/主目录。例如,如果你有一个名为tester的用户,你的nginx.conf就会说(以下内容适用于我的生产:

server {
    listen       YOURIPADDRESSHERE:80; #use :443 if SSL is being used.

    server_name YOURFULLDOMAINNAMEHERE;
    #uncomment out following if ssl is used.
    #ssl on;
    #ssl_certificate  /etc/ssl/private/YOUR_chained.crt;
    #ssl_certificate_key  /etc/ssl/private/YOUR.key;
    #ssl_session_cache shared:SSL:1m;
    #ssl_session_timeout  5m;
    #ssl_protocols  SSLv3 TLSv1;
    #ssl_ciphers    HIGH:MEDIUM;
    #ssl_prefer_server_ciphers   on;
    root /home/tester/YOURRAILSAPPNAME/public;   # <--- be sure to point to 'public'!
    passenger_enabled on;
    charset utf-8;
    access_log /var/log/nginx/YOURFULLDOMAINNAMEHERE-ssl_access.log;
    error_log /var/log/nginx/YOURFULLDOMAINNAMEHERE-ssl_error.log warn;
    location /home/tester/YOURRAILSAPPNAME/public/ {
        root   html;
        index  index.html index.htm;
    }
    error_page  404              /404.html;
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

然后确保您的权限是正确的(所有文件为755,目录为644)。

答案 1 :(得分:0)

在之前的工作中,我花了很多时间将Rails应用程序部署到具有不同配置和gem的vps生产中,最终在9个月之前,我发现了hatchbox.io服务,用于部署Rails应用程序。它是由GoRails的Chris创建的,相信我为我节省了很多时间和精力。这不是广告,但实际上服务效果完美,而且价格不菲。