gpt4 book ai didi

ruby-on-rails - 通过 SSL 支持和 ruby​​-debug 进行瘦身

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:24 24 4
gpt4 key购买 nike

有人知道用 Thin 同时运行 ruby​​ 调试器和 SSL 的方法吗?

我一直在 Rails 3.0.10 中成功使用 Thin。

我使用 rails server --debugger 启动它,然后我可以调试我的代码。

最近,我还需要为我的应用程序添加 SSL 支持,并且我希望能够使用自签名证书在本地对其进行测试。

不幸的是,在使用 rails server 时,我还没有找到一种方法来启动支持 SSL 的 Thin。

我可以使用 SSL 支持成功启动 Thin:

thin start --ssl --ssl-verify --ssl-key-file ssllocal/server.key
--ssl-cert-file ssllocal/server.crt

但是,我还没有找到使用thin start 激活调试器的方法。

看来我可以选择运行调试器 (rails server) 或 SSL (thin start),但不能同时选择两者。

似乎可以通过修改 rails/script 文件 ( see here ) 让 Webrick 使用 rails server 运行 SSL。我尝试过这种方法,但没有成功。这是其中一种尝试:

#!/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__)


# THIS IS NEW:
require "rails/commands/server"
require 'rack'
require 'thin'
module Rails
class Server
def default_options
super.merge({
:Port => 3000,
:environment => (ENV['RAILS_ENV'] || "development").dup,
:daemonize => false,
:debugger => false,
:pid => File.expand_path("tmp/pids/server.pid"),
:config => File.expand_path("config.ru"),
:SSLEnable => true
:ssl => true,
"ssl-verify" => true,
"ssl-key-file" => File.expand_path("ssllocal/server.key"),
"ssl-cert-file" => File.expand_path("ssllocal/server.crt")
})
end
end
end


require 'rails/commands'

注意:对于那些可能想知道的人,我在根应用程序目录之外创建了一个“ssllocal”目录,这是我存储 ssl key 和证书的地方。

最佳答案

您可以尝试在您的开发环境中自己要求调试器。

在你的 Gemfile 中:

if RUBY_VERSION =~ /^1.9/
gem "ruby-debug19", :group => :development
else
gem "ruby-debug", :group => :development
end

在你的 config/environments/development.rb 的配置 block 中:

require 'ruby-debug'
Debugger.start

这允许您将调试器语句放在代码中的任何位置。

关于ruby-on-rails - 通过 SSL 支持和 ruby​​-debug 进行瘦身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8753566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com