2013-06-20 27 views
7

tôi có thể sử dụng MỎNG vớiRubymine mỏng với các tùy chọn SSL

bundle exec thin start --ssl --ssl-verify --ssl-key-file /private/etc/apache2/ssl/server.key --ssl-cert-file /private/etc/apache2/ssl/server.crt 

Nó hoạt động trong giao diện điều khiển/thiết bị đầu cuối, một cách hoàn hảo

Nhưng khi tôi cố gắng để nối thêm các tùy chọn này trong rubymine dưới "Run/Debug Cấu hình" -> "Edit Script Arguments" tôi nhận được:

/Users/jan/.rbenv/versions/1.9.3-p392/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/jan/RubymineProjects/myapp/script/rails server thin -b 0.0.0.0 -p 3000 -e development --ssl-verify --ssl-key-file /private/etc/apache2/ssl/server.key --ssl-cert-file /private/etc/apache2/ssl/server.crt 
/Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands/server.rb:33:in `parse!': invalid option: --ssl-verify (OptionParser::InvalidOption) 
from /Users/jan/.gem/ruby/1.9.1/gems/rack-1.4.5/lib/rack/server.rb:283:in `parse_options' 
from /Users/jan/.gem/ruby/1.9.1/gems/rack-1.4.5/lib/rack/server.rb:180:in `options' 
from /Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands/server.rb:54:in `set_environment' 
from /Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands/server.rb:42:in `initialize' 
from /Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands.rb:50:in `new' 
from /Users/jan/.gem/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands.rb:50:in `<top (required)>' 
from /Users/jan/RubymineProjects/myapp/script/rails:6:in `require' 
from /Users/jan/RubymineProjects/myapp/script/rails:6:in `<top (required)>' 
from -e:1:in `load' 
from -e:1:in `<main>' 

Process xong với mã exit 1 bất cứ ai có thể giúp chúng tôi/tôi ra?

cảm ơn rất nhiều!

+0

có thể là chìa khóa ssl và giấy chứng nhận tập tin không thể được xác định trong tập tin cấu hình mỏng của (YAML)? –

Trả lời

3

tôi đã giúp đỡ ở đây:

http://devnet.jetbrains.com/message/5490676

Dường Rubymine không thể phân tích lập luận như vậy, nhưng một workaround là để làm điều này với một kịch bản Ruby từ Run/Debug Configurations

1

Tùy chọn --ssl-verify không nên được sử dụng

4

sử dụng sau cách

require 'rack' 

SERVER_KEY = File.expand_path('../../ssl-cert/host.key', __FILE__) 
SERVER_PEM = File.expand_path('../../ssl-cert/host.crt', __FILE__) 

# Thin SSL workaround 
module Rack 
    module Handler 
    class Thin 
     def self.run(app, options={}) 
     app = Rack::Chunked.new(Rack::ContentLength.new(app)) 
     server = ::Thin::Server.new(options[:Host] || '0.0.0.0', 
            options[:Port] || 3000, 
            app) 
     server.ssl = true 
     server.ssl_options = { 
      :private_key_file => SERVER_KEY, 
      :cert_chain_file => SERVER_PEM 
     } 
     yield server if block_given? 
     server.start 
     end 
    end 
    end 
end 
# Workaround end 

APP_PATH = File.expand_path('../../config/application', __FILE__) 
require File.expand_path('../../config/boot', __FILE__) 
require 'rails/commands' 
.210
+0

Từ [bình luận Github này] (https://gist.github.com/masone/5955f4cc0b4d4ef372db#gistcomment-1448440), nếu bạn muốn Thin sử dụng chứng chỉ tự ký được tích hợp sẵn, bạn có thể chuyển 'nil' sang': private_key_file' và ': cert_chain_file'. – Aaroninus

0

Rõ ràng điều này thực sự có thể được kéo ra bằng cách thêm một Procfile và quản đốc đá quý, như trong này tập hợp các hướng dẫn:

Using Rails, Thin and SSL in RubyMine: The solution!

Về cơ bản, bạn thêm quản đốc để Gemfile của bạn:

gem 'foreman' 

Sau đó, tạo một Procfile (liên kết sai chính tả này) trong thư mục gốc của bạn có chứa:

web: thin start --ssl 

hay, để ràng buộc vào 0.0.0.0 như RubyMine thường làm:

web: thin start -a 0.0.0.0 -p 3001 --ssl 

Tôi không cần phải xác định vị trí các tập tin ssl của tôi, nhưng nếu bạn muốn nó sẽ là:

web: thin start -a 0.0.0.0 -p 3001 --ssl --ssl-key-file /private/etc/apache2/ssl/server.key --ssl-cert-file /private/etc/apache2/ssl/server.crt 

Tôi sẽ không khuyên bạn sử dụng --ssl-verify vì điều đó không hiệu quả đối với tôi.

ngoái, trong RubyMine, tạo ra một cấu hình của Ruby mới với các thuộc tính sau:

  • của Ruby script: Đây sẽ là đường dẫn đến thực thi quản đốc, ví dụ như: ~/.rvm/gems/[email protected]/gems/foreman-0.82.0/bin/foreman luận
  • Script : start
  • Thư mục hoạt động: Thư mục gốc của dự án của bạn, ví dụ:~/Sites/appname

Trong tab Trình quản lý, hãy chọn hộp kiểm duy nhất để sử dụng bundle exec khi chạy.

ngoái, trong tab nhật ký, thêm một file log mới trỏ đến ~/Sites/appname/logs/development.log

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