Tôi chạy máy chủ web mỏng về cơ bản mọi ứng dụng trong môi trường thử nghiệm/dev của tôi. Khi tôi sử dụng Mongrel với Rails 2.x, tất cả những gì tôi phải gõ là script/server
để làm cho nó chạy máy chủ web mà tôi chọn. Nhưng với Rails 3, tôi phải chỉ định Thin mỗi lần. Có cách nào để có được Thin chạy trên các ứng dụng Rails của tôi bằng cách chỉ cần gõ rails s
thay vì rails s thin
?Có cách nào Rails 3.0.x có thể mặc định để sử dụng Thin không?
Trả lời
Tính đến Rails 3.2rc2, mỏng hiện nay chạy theo mặc định trên gọi rails server
khi gem 'thin'
là trong Gemfile của bạn! Nhờ yêu cầu kéo này: https://github.com/rack/rack/commit/b487f02b13f42c5933aa42193ed4e1c0b90382d7
Làm việc tuyệt vời cho tôi.
Chỉ cần cài đặt mỏng, cd vào thư mục mà ứng dụng của bạn đang chạy và chạy khởi động mỏng. Hoạt động hoàn hảo ở đây. :)
Bạn có thể sử dụng http://www.softiesonrails.com/2008/4/27/using-thin-instead-of-mongrel để thay đổi khi cần. (Cái mà tôi đã sử dụng)
Có thể thực hiện điều này.
Cách lệnh rails s
hoạt động vào cuối ngày là bằng cách chuyển sang Rack và cho phép chọn máy chủ. Theo mặc định, trình xử lý Rack sẽ cố gắng sử dụng mongrel
và nếu nó không thể tìm thấy mongrel nó sẽ đi với webrick
. Tất cả những gì chúng ta phải làm là vá nhẹ trình xử lý. Chúng tôi sẽ cần chèn bản vá của chúng tôi vào chính kịch bản rails
. Đây là những gì bạn làm, mở tập tin script/rails
của bạn. Theo mặc định, nó sẽ trông giống như sau:
#!/usr/bin/env ruby
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
APP_PATH = File.expand_path('../../config/application', __FILE__)
require File.expand_path('../../config/boot', __FILE__)
require 'rails/commands'
Chúng tôi chèn bản vá của chúng tôi ngay trước vạch require 'rails/commands'
. Tệp mới của chúng tôi sẽ trông giống như sau:
#!/usr/bin/env ruby
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
APP_PATH = File.expand_path('../../config/application', __FILE__)
require File.expand_path('../../config/boot', __FILE__)
require 'rack/handler'
Rack::Handler.class_eval do
def self.default(options = {})
# Guess.
if ENV.include?("PHP_FCGI_CHILDREN")
# We already speak FastCGI
options.delete :File
options.delete :Port
Rack::Handler::FastCGI
elsif ENV.include?("REQUEST_METHOD")
Rack::Handler::CGI
else
begin
Rack::Handler::Mongrel
rescue LoadError
begin
Rack::Handler::Thin
rescue LoadError
Rack::Handler::WEBrick
end
end
end
end
end
require 'rails/commands'
Lưu ý rằng bây giờ nó sẽ thử Mongrel và nếu có lỗi, hãy thử Thin và chỉ sau đó đi với Webrick. Bây giờ, khi bạn nhập rails s
, chúng tôi sẽ nhận được hành vi mà chúng tôi đang thực hiện.
Trong script/rails
các công trình sau đây cũng như:
APP_PATH = File.expand_path('../../config/application', __FILE__)
require File.expand_path('../../config/boot', __FILE__)
require 'rack/handler'
Rack::Handler::WEBrick = Rack::Handler::Thin
require 'rails/commands'
- 1. Làm thế nào để chạy selenium dưa chuột bằng cách sử dụng máy chủ Thin thay vì Webrick mặc định?
- 2. Rails bỏ qua config.action_dispatch.x_sendfile_header? Sử dụng Thin + Nginx
- 3. Làm thế nào để thay đổi đường dẫn đăng nhập mặc định của Rails 3.0?
- 4. Cách đặt Mỏng làm mặc định trong Rails 3
- 5. Tôi có thể bật SSL trong Sinatra bằng Thin không?
- 6. Hướng dẫn cho Python - Tôi có nên sử dụng phiên bản 2.x hoặc 3.0 không?
- 7. Có cách nào để sử dụng thuộc tính JavaScript theo mặc định không?
- 8. Sử dụng rsyslogd trong Rails 3.0
- 9. Tôi có nên sử dụng ruby 1.9.2 khi bắt đầu dự án Rails 3.0 mới không?
- 10. Mặc định TimeZone với ActiveSupport (không có Rails)
- 11. Ruby on Rails: làm cách nào để sử dụng điều giữ chỗ mặc định trong select_tag?
- 12. Làm cách nào để tôi có thể đặt python 2.6 làm mặc định trong Mac OS X Lion?
- 13. Có cách nào để kiểm soát chuyển đổi ngầm định nào sẽ được sử dụng mặc định?
- 14. Cấu hình Thin + Nginx + Websockets | Rails
- 15. Có thể buộc một ứng dụng Java hiện có sử dụng không quá x lõi không?
- 16. Có cách nào để có điều kiện sử dụng giá trị cột mặc định trong câu lệnh INSERT..SELECT không?
- 17. Có thể sử dụng stylesheet.css.erb trong Rails không?
- 18. Có cách nào để đặt nhiều mặc định trên một dict Python sử dụng một dict?
- 19. Làm cách nào để thêm không gian tên mặc định không có tiền tố bằng cách sử dụng XMLSerializer
- 20. Tôi làm cách nào để có bộ chia mặc định?
- 21. Tôi có thể gửi email bằng Actionscript 3.0 hoặc tôi có cần sử dụng PHP không?
- 22. Làm cách nào để xác định ngoại lệ nào "x []" có thể bị ném?
- 23. Làm thế nào để sử dụng ValueResolver nếu loại trường không có hàm tạo mặc định?
- 24. Có cách nào để đặt ứng dụng mặc định cho Heroku Toolbet không?
- 25. Có thể sử dụng (các) khay nhớ tạm của hệ thống theo mặc định không?
- 26. Tôi có thể sử dụng một hàm cho một giá trị mặc định trong MySql không?
- 27. Có cách nào để có đối số mặc định động không?
- 28. Có cách nào để dừng máy chủ tích hợp của Rails không nghe được trên 0.0.0.0 theo mặc định?
- 29. Có cách nào để chỉ định giá trị thuộc tính mặc định trong Spring XML không?
- 30. có thể sử dụng lambda làm từ điển mặc định không?
Là bản cập nhật, mỏng -V bắt đầu hoạt động để bắt chước hành vi bạn thường thấy khi bạn khởi động máy chủ đường ray, hay còn gọi là nơi bạn thấy đầu ra trong thiết bị đầu cuối từ mỗi kết nối. – ddd
thật tuyệt. nhưng không có gì làm cho 'rails s' chạy' thin start'? – tubbo