2012-11-28 4 views
0

Ruby 1.9.3-p327에서 Rails 3.2.9를 사용하고 있습니다.Rails 초기화가 실패하는 이유는 무엇입니까?

'카피 스트라노'를 내 서버에 배포 한 후 Rails 및 Ruby 인터프리터를 오류로 만드는 오류가 발생하므로 내 Rails 애플리케이션을 초기화 할 수 없습니다.

명시적인 오류 메시지가 없으면 백 트레이스, 제어 프레임 및 메모리 덤프에 의존해야합니다. 그래서 디버깅을하고 오류가 어디서 왔는지 알아내는 것은 정말로 어렵습니다. 여기에 게시하는 것은 너무 깁니다.

config.assets.initialize_on_precompile = false 
: 그렇지 않으면 내가 루비 사고에 갇혀 있었다, 사전 컴파일 작업이 통과 : 자산 : 배포 동안

, 나는 배포를 얻기 위해, 내 설정/application.rb 파일이 설정했다

배포 후, 응용 프로그램에서 데이터베이스에 대한 액세스를 테스트하기 위해 rake db : reset를 실행했으나 충돌로 이어 지므로 콘솔과 "직접 새로 작성한 Rails-app-directly-created"데이터베이스에서 액세스를 테스트했습니다. - 서버에서 ". 이면에서는 모든 것이 잘 작동합니다 (데이터베이스가 만들어지고 액세스 권한이 부여됩니다). 그래서 database.yml이나 postgres 데이터베이스 설정에서 오는 문제는 제외합니다.

또한 매우 긴 검색 (나는이 문제에 대해 전체 주간을 보냈습니다.)을 통해 레일스 초기화에서 문제가 발생했음을 확인할 수있었습니다.

특히 내 config/application.rb의이 줄은 Rails와 Ruby의 충돌을 일으키고 있습니다.

if defined?(Bundler) 
    # If you precompile assets before deploying to production, use this line 
    Bundler.require(*Rails.groups(:assets => %w(development test))) 
    # If you want your assets lazily compiled in production, use this line 
    # Bundler.require(:default, :assets, Rails.env) 
end 

나는 두 가지 옵션을 시도했는데, 둘 다 응용 프로그램을 중단시킵니다. 나는 또한 그것들에 대해 논평하려했지만, Rails가 application.rb를 읽은 후에도 Rails와 Ruby가 어딘가에서 충돌하게 만든다.

나는 bundler 및 gem 자산 파이프 라인과 관련된 것으로 의심됩니다. 나는 RVM의 gemset 목록을 실행하면, 나는 기본 gemset은 사용에 있음을 볼

bundler (1.2.1, 1.1.4, 1.1.3) 

: 나는 보석 목록을 명령을 실행하면 , 그 들러 여러 버전으로 내 서버에 설치되어 볼 수 있습니다 다른이 arn't :

gemset for ruby-1.9.3-p327 (found in /usr/local/rvm/ruby-1.9.3-p327 
=> (default) 
    global 

나는/레일이 gemset와 루비 버전을 사용하고 있는지 레이크을 만드는 방법을 몰라?

또한 루트로 연결되어 있으면; 번들 다음 오류가 발생합니다을 설치는 : 사용자로 연결 한 경우

ERROR: Gem bundler is not installed, run `gem install bundler` first 

그것은 작동하지만.

rvm은 "sudo"와 함께 시스템 전체에 설치되었습니다. 의/var/www /에서 OPF/공유/번들/루비/

내 Gemfile :

내 다른 보석가에 들러에 의해 관리되고 저장됩니다

source 'https://rubygems.org' 

gem 'rails', '~>3.2' 
gem 'pg', '>= 0.14' 
gem 'haml-rails', '~> 0.3' 

group :developpement do 
    gem 'rspec-rails', '>= 2.11' 
    gem 'capistrano', '>= 2.12' 
    gem 'faker', '>= 1.0' 
    gem 'rvm-capistrano' 
end 

group :test do 
    gem 'rspec', '>= 2.11' 
    gem 'webrat', '>= 0.7' 
    gem 'spork-rails', '>= 3.2' 
    gem 'factory_girl_rails', '>= 4.0' 
end 

group :assets do 
    gem 'sass-rails', '>= 3.2.3' 
    gem 'coffee-rails', '>= 3.2.1' 
    gem 'compass-rails', '>= 1.0' 
    gem 'execjs' 
    gem 'therubyracer', :platforms => :ruby 
    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 
gem 'annotate' 
gem 'excel_rails', '~> 0.3' 
gem 'spreadsheet', '~> 0.7' 
gem 'schema_plus', '~> 0.4' 
gem 'ar-octopus', '~> 0.3' 
gem 'squeel', '~> 1.0' 
gem 'devise', '~> 2.1' 
gem 'role_model' 
gem 'declarative_authorization' 
gem 'rails-translate-routes', '~> 0.1' 

답변

0

내가 마침내 발견 해결책 !

는 먼저 PhusionPassenger이었다 에로 메시지가 표시 알고 : here 설명으로 보통의 경우있을 수 있지만

Passenger encountered the following error: 
The application spawner server exited unexpectedly: Unexpected end-of-file detected. 

Exception class: 
    PhusionPassenger::Rack::ApplicationSpawner::Error 

은, 보석과는 아무 상관이 없었다.

제 해결책은 here입니다.

관련 문제