如何将Rails应用程序更改为在生产模式下运行?是否有配置文件,环境.比如说,要这么做吗?

推荐答案

如何使用Apache和Phusion Passenger以生产模式(逐步)设置和运行Rails 4应用程序:

通常情况下,你可以进入Rails项目rails s,并在http://something.com:3000时获得应用程序的开发版本.生产模式的配置有点棘手.

我已经在这方面胡闹了一段时间,所以我想我应该为新手(比如我自己)写这篇文章.有一些小的调整在互联网上传播,并认为这可能更容易.

  1. 有关服务器(CentOS 6,但它应该适用于几乎所有的Linux版本)的核心设置,请参阅本指南:https://www.digitalocean.com/community/tutorials/how-to-setup-a-rails-4-app-with-apache-and-passenger-on-centos-6

  2. 确保乘客设置好后,您已经编辑了/etc/httpd/conf/httpd.conf文件,以反映您的目录 struct .You want to point DocumentRoot to your Rails project /public folder httpd.conf文件中有这种dir:/var/www/html/your_application/public的任何地方都需要更新,否则一切都会变得非常令人沮丧.我怎么强调都不过分.

  3. 重新启动服务器(或者至少-service httpd restart)

  4. 输入Rails项目文件夹/var/www/html/your_application,然后从rake db:migrate开始migrations.确保数据库表存在,即使您计划稍后添加表(这也是步骤1的一部分).

  5. RAILS_ENV=production rake secret-这将创建一个可以添加到config/secrets.yml的密钥.您可以将其复制/粘贴到config/secrets中.yml是为了让事情运转起来,尽管我建议你不要这样做.就我个人而言,我做这一步是为了确保其他一切都正常工作,然后再将其更改回来,并在以后找到它的来源.

  6. 一百

  7. RAILS_ENV=production rake assets:precompile如果你在为静态assets资源 服务.这将把js、css和图像文件推送到/public文件夹中.

  8. 一百

此时,你的应用应该是http://something.com/whatever而不是:3000.如果没有,请输入passenger-memory-stats,然后查看是否有类似908 469.7 MB 90.9 MB Passenger RackApp: /var/www/html/projectname的条目

我可能错过了一些令人发指的事情,但这在过go 对我很有效.

Ruby-on-rails相关问答推荐

Rails Heroku部署:预编译assets资源 失败.SassC::语法错误

为什么没有生成命名空间路由?

尽管安装并需要 pry-rails gem,但 Rails 容器内出现未定义方法‘pry’错误

Ruby on rails 查询不知道怎么写

Rails 发现获取 ActiveRecord::RecordNotFound

rails 3:将链接显示为按钮?

如何在 rails 中指定和验证枚举?

安装mysql2(0.4.8)时出错,Bundler无法继续

如何在 routes.rb 中使用 301 或 302 进行重定向

Rails 3 中的猴子补丁

Rails:立即渲染并退出

登录delay_job?

我们如何在 Rails Mailer 中设置邮箱发件人的名称?

如何对这个哈希数组进行分组?

快速添加链接[:notice]

在 Rails 协会中未找到名为的协会可能拼写错误的问题

Rails 路由:GET 没有参数 :id

如何在 rake 任务中强制 RAILS_ENV?

Rails:如何将日期时间字符串解析为特定时区

Ruby 更新后:测试失败,assets资源 未声明为在生产中预编译