178

Làm cách nào để thay đổi ứng dụng Rails của tôi chạy ở chế độ sản xuất? Có một tập tin cấu hình, environment.rb ví dụ, để làm điều đó?Thay đổi ứng dụng Rails thành sản xuất

+0

Dường như câu trả lời thứ hai có nhiều phiếu bầu hơn, bạn có sẵn sàng cho đánh giá nhanh này và chấp nhận câu trả lời thứ hai trừ khi bạn có bất kỳ vấn đề nào với nó. Sẽ chỉ giúp khách truy cập trong tương lai. Thx :) – Evolve

Trả lời

19

Thay đổi biến môi trường RAILS_ENV thành production.

+1

biến môi trường ở đâu? – BKSpurgeon

52

Nếu mipadi's suggestion không hoạt động, thêm video này vào config/environment.rb

# force Rails into production mode when       
# you don't control web/app server and can't set it the proper way     
ENV['RAILS_ENV'] ||= 'production' 
+0

Cảm ơn bạn !!! Giúp tôi rất nhiều. –

+0

Còn các dịch vụ đám mây như Heroku thì sao? Có thể 'ENV ['RAILS_ENV'] || = 'production'' cũng được áp dụng cho chúng? – Green

+0

nó không hoạt động trên đường ray 4 – franzlorenzon

18

Bạn cũng có thể vượt qua môi trường để script/server:

$ script/server -e production 
61

Nếu bạn đang chạy trên Passenger, sau đó mặc định là chạy trong sản xuất, trong confache của bạn conf:

<VirtualHost *:80> 
    ServerName application_name.rails.local 
    DocumentRoot "/Users/rails/application_name/public" 
    RailsEnv production ## This is the default 
</VirtualHost> 

Nếu bạn chỉ cần chạy một máy chủ địa phương với thú lai hoặc webrick, bạn có thể làm:

./script/server -e production 

hoặc trong bash:

RAILS_ENV=production ./script/server 

thực sự trọng hằng RAILS_ENV trong enviornment.rb có lẽ nên được phương sách cuối cùng của bạn, vì nó có lẽ sẽ không ở lại định sẵn (xem another answer tôi cung cấp trên đó)

341

tại Đây sẽ là

rails server -e production 

Hoặc, nhỏ gọn hơn

rails s -e production 

Nó hoạt động cho đường ray 3+ dự án.

+30

hoặc phiên bản ngắn 'đường ray s -e production' –

+1

Còn các dịch vụ đám mây như Heroku thì sao? Làm thế nào để chạy 'server -e production' trên chúng? – Green

+0

Dịch vụ đám mây thường có các tùy chọn để chỉ định môi trường, nhưng trong đó 'sản xuất' luôn luôn là mặc định. –

2

Trong Rails 3

Thêm Rails.env = ActiveSupport::StringInquirer.new('production') vào application.rb và rails s sẽ làm việc giống như rails server -e production

module BlacklistAdmin 
    class Application < Rails::Application 

    config.encoding = "utf-8" 
    Rails.env = ActiveSupport::StringInquirer.new('production') 

    config.filter_parameters += [:password] 
    end 
end 
2

Nó không phải là một cách tốt để chạy đường ray máy chủ trong môi trường sản xuất bởi "rails server -e production", bởi vì các đường ray chạy dưới dạng một ứng dụng đơn luồng và chỉ có thể phản hồi một yêu cầu HTTP tại một thời điểm.

Các bài viết hay nhất về môi trường sản xuất cho đường ray là Production Environments - Rails 3

+3

Liên kết thối ... có sẵn trên máy mặc định: [link] (http://web.archive.org/web/20121022083645/http:// ofps.oreilly.com/titles/9780596521424/production_id35801033.html) – rosuav

17
$> export RAILS_ENV=production 
0

Hãy chắc chắn rằng bạn đã làm dưới đây trong tập tin environment.rb của bạn.

ENV [ 'RAILS_ENV'] || = 'sản xuất'

Nếu bạn ứng dụng chạy trong môi trường lưu trữ chia sẻ hoặc phushion hành khách, bạn có thể cần phải cần thực hiện thay đổi trong .httaccess (bên trong thư mục công cộng) và đặt chế độ làm sản xuất.

1

cho máy chủ mặc định: đường ray s -e production

cho cổng máy chủ costum: rails s -p [port] -e production, ví dụ: ray s -p 3002 -e sản xuất

12
rails s -e production 

Điều này sẽ chạy máy chủ với RAILS_ENV = 'production'.

Ngoài ra bạn cần phải thiết lập đường dẫn tài sản trong production.rb

config.serve_static_assets = true 

Nếu không có tài sản này của bạn sẽ không được nạp.

+0

Xin lỗi ... đã bỏ phiếu xuống khi có nghĩa là để upvote. Thực hiện chỉnh sửa nhỏ để sửa lỗi và upvote. – tomd

5

Như những người khác đã viết bài: rails server -e production

Hoặc, fave cá nhân của tôi: RAILS_ENV=productionrails s

4
RAILS_ENV=production rails s 

HOẶC

rails s -e production 

By môi trường mặc định là Phát triển.

Các vấn đề liên quan