14

Rails 3.0.10 アプリケーションを Passenger、Capistrano、nginx、および MySQL を使用して Ubuntu 10.04 サーバーにデプロイする際に多くの問題が発生しました (さらに apache2 ではさらに問題が発生しました)。rake を 0.8.7 にダウングレードした後、ようやく動作するようになりましたが、私の開発環境では Sunspot/Solr が動作しなくなりました。sunspot_solr サーバーが実行されており、サーバーの URL を取得して、ブラウザー経由で接続できます。URL は sunspot.yml と同じです。問題の原因となった可能性のある何をしたのかわかりません。以前(レーキをダウングレードする前)、太陽黒点で同じ問題がありました。その後、突然再び機能し始めました。理由はわかりません... Sunspot の 2 つのバージョン (1.2.1 と 1.3.0) を試しました。どちらも以前は機能していましたが、現在は機能していません。

これは私が得ているエラーメッセージです:

SocketError (getaddrinfo: Name or service not known):
app/models/resource.rb:128:in `text_search'
app/controllers/search_controller.rb:21:in `index'

Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.0ms)
Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (161.6ms)
Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (168.9ms)

コントローラーは少し面倒なので、関連する部分だけを含めます。

@criterion = params[:criterion]
@sort_direction = params[:sort_direction]
if @criterion && @sort_direction
  session["sort_search"] = @criterion + "|" + @sort_direction 
elsif session["sort_search"]
  @criterion = session["sort_search"].split("|")[0]
  @sort_direction = session["sort_search"].split("|")[1]
else
  @criterion = "updated_at"
  @sort_direction = "desc"
 end
@search = Resource.text_search(session[:search_params] || "", current_user, @criterion, @sort_direction) 
@resources = @search.results

コントローラーが機能していたので、コントローラーで何も変更していません。

私の宝石ファイル:

source 'http://rubygems.org'
gem 'rake'
gem 'rails', '3.0.10'
gem 'jquery-rails', '>= 1.0.12'
gem 'sqlite3'
gem 'ancestry'
gem 'carrierwave'
gem 'sunspot_rails', '>= 1.3' #'~> 1.2.1' #
gem 'authlogic'
gem 'will_paginate'
gem 'declarative_authorization'
group :production do
  gem 'mysql'
end
group :development do
  gem 'sunspot_solr'
end
gem 'capistrano'

私のrakefile:

require File.expand_path('../config/application', __FILE__)
require 'rake'

Skolearkivet::Application.load_tasks
4

7 に答える 7

32

勝手な推測ですが、ホスト名として localhost を使用している可能性はありますか? localhost を 127.0.0.1 に変更してみてください

于 2012-03-11T11:49:40.253 に答える
9

この行を app/controllers/search_controller.rb ファイルの先頭に追加しました

require 'resolv-replace'

または、代わりに initializers/requires.rb に配置することもできます

于 2015-06-12T23:27:31.573 に答える
2

私は OSX の rails と logstasher で同じ問題を抱えていましたが、この投稿を読むまで何が起こっているのかわかりませんでした。これを追加して、logstasher で同じような問題を抱えている人が何かを見つけられるようにしようと思いました...

`=> Booting Unicorn
=> Rails 4.2.5 application starting in development on http://0.0.0.0:3000
=> Run rails server -h for more startup options
=> Ctrl-C to shutdown server
Exiting
/Users/xx/Projects/xx/config/environments/development.rb:80:in 'getaddress': getaddrinfo: nodename nor servname provided, or not known (SocketError)`

修正は、マシンのホスト名を 127.0.0.1 の /etc/hosts の下のリストに追加することでした

于 2016-07-19T19:23:19.443 に答える