2012-11-30 12 views
5

Próbuję wdrożyć aplikację Rails 3 na serwerze produkcyjnym Ubuntu, używając Phusion Passenger i RVM. Mam zainstalowany Phusion pasażera z powodzeniem, ale pojawia się następujący błąd podczas uzyskiwania dostępu do serwera w przeglądarce:niepoprawna sekwencja bajtów w US-ASCII podczas próby uruchomienia aplikacji szyny z phusion pasażerem

Ruby (Rack) application could not be started 

These are the possible causes: 

There may be a syntax error in the application's code. Please check for such errors and fix them. 

A required library may not installed. Please install all libraries that this application requires. 

The application may not be properly configured. Please check whether all configuration files are written correctly, fix any incorrect configurations, and restart this application. 

A service that the application relies on (such as the database server or the Ferret search engine server) may not have been started. Please start that service. 

Więcej informacji o błędzie mogło zostać zapisane do pliku dziennika aplikacji. Sprawdź to, aby przeanalizować problem.

wiadomość

Błąd: nieprawidłowa sekwencja bajtów w US-ASCII

klasa Wyjątek: ArgumentError

Oto backtrace:

0 /usr/lib/ruby/1.9.1/rubygems/specification.rb 575  in `normalize_yaml_input' 
1 /usr/lib/ruby/1.9.1/rubygems/specification.rb 487  in `from_yaml' 
2 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler.rb 294  in `block in load_gemspec_uncached' 
3 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler.rb 291  in `chdir' 
4 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler.rb 291  in `load_gemspec_uncached' 
5 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler.rb 282  in `load_gemspec' 
6 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/source.rb 411  in `block in load_spec_files' 
7 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/source.rb 410  in `each' 
8 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/source.rb 410  in `load_spec_files' 
9 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/source.rb 799  in `load_spec_files' 
10 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/source.rb 381  in `local_specs' 
11 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/source.rb 774  in `specs' 
12 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/lazy_specification.rb 53 in `__materialize__' 
13 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/spec_set.rb 86 in `block in materialize' 
14 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/spec_set.rb 83 in `map!' 
15 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/spec_set.rb 83 in `materialize' 
16 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/definition.rb 113  in `specs' 
17 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/definition.rb 158  in `specs_for' 
18 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/definition.rb 147  in `requested_specs' 
19 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/environment.rb 23 in `requested_specs' 
20 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/runtime.rb 11 in `setup' 
21 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler.rb 116  in `setup' 
22 /var/lib/gems/1.9.1/gems/bundler-1.2.2/lib/bundler/setup.rb  17 in `' 
23 /usr/lib/ruby/1.9.1/rubygems/custom_require.rb 59 in `require' 
24 /usr/lib/ruby/1.9.1/rubygems/custom_require.rb 59 in `rescue in require' 
25 /usr/lib/ruby/1.9.1/rubygems/custom_require.rb 35 in `require' 
26 /home/juniormarketing/trndclone/config/setup_load_paths.rb 14 in `' 
27 /usr/lib/ruby/1.9.1/rubygems/custom_require.rb 36 in `require' 
28 /usr/lib/ruby/1.9.1/rubygems/custom_require.rb 36 in `require' 
29 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/utils.rb 301  in `prepare_app_process' 
30 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/rack/application_spawner.rb  156  in `block in initialize_server' 
31 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/utils.rb 563  in `report_app_init_status' 
32 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/rack/application_spawner.rb  154  in `initialize_server' 
33 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/abstract_server.rb 204  in `start_synchronously' 
34 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/abstract_server.rb 180  in `start' 
35 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/rack/application_spawner.rb  129  in `start' 
36 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/spawn_manager.rb 253  in `block (2 levels) in spawn_rack_application' 
37 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/abstract_server_collection.rb 132  in `lookup_or_add' 
38 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/spawn_manager.rb 246  in `block in spawn_rack_application' 
39 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/abstract_server_collection.rb 82 in `block in synchronize' 
40  prelude> 10:in `synchronize' 
41 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/abstract_server_collection.rb 79 in `synchronize' 
42 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/spawn_manager.rb 244  in `spawn_rack_application' 
43 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/spawn_manager.rb 137  in `spawn_application' 
44 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/spawn_manager.rb 275  in `handle_spawn_application' 
45 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/abstract_server.rb 357  in `server_main_loop' 
46 /var/lib/gems/1.9.1/gems/passenger-3.0.18/lib/phusion_passenger/abstract_server.rb 206  in `start_synchronously' 
47 /var/lib/gems/1.9.1/gems/passenger-3.0.18/helper-scripts/passenger-spawn-server  99 in `' 

Z tego co rozumiem, Bundler.setup() jest wywoływana podczas uruchamiania aplikacji i potyka się na znaku non-ascii. Ma to sens, ponieważ aplikacja jest przeznaczona do francuskiej strony internetowej, ale zadbałem o to, aby dodać # -*- encoding : utf-8 -*- do każdego pliku źródłowego zawierającego znaki spoza zestawu ASCII.

Oto moja Gemfile:

# -*- encoding : utf-8 -*- 
source 'https://rubygems.org' 

gem 'rails', '3.2.7' 
gem "will_paginate", :git => "https://github.com/p7r/will_paginate.git", :branch => "rails3" 
gem "lorem" 
gem 'paperclip' 
gem 'rails3-jquery-autocomplete' 
gem 'spreadsheet' 


group :development, :test do 
    gem 'sqlite3', '1.3.5' 
    gem 'rspec-rails', '2.10.0' 
    gem 'faker', '0.3.1', :require => false 
end 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '3.2.4' 
    gem 'coffee-rails', '3.2.2' 
    gem 'uglifier', '1.2.3' 
    gem 'jquery-datatables-rails', github: 'rweng/jquery-datatables-rails' 
    gem 'jquery-ui-rails' 
end 

gem 'jquery-rails', '2.0.2' 

group :test do 
    gem 'capybara', '1.1.2' 
    gem 'factory_girl_rails', '1.0' 
    gem 'webrat' 
    gem 'cucumber-rails', '1.2.1', :require => false 
    gem 'database_cleaner', '0.7.0' 
end 

group :production do 
    #gem 'pg', '0.12.2' 
end 

Wszelkie pomysły, co jest nie tak?

Odpowiedz

19

znalazłem rozwiązanie w tym poście: When run bundle get invalid byte sequence in US-ASCII

Wszystko co musiałem zrobić, to dodać to na szczycie mojej Gemfile:

if RUBY_VERSION =~ /1.9/ 
    Encoding.default_external = Encoding::UTF_8 
    Encoding.default_internal = Encoding::UTF_8 
end 
3

miałem ten problem z Rails 2.3 aplikacji z systemem Ruby 1.9 .3. Jednym z rozwiązań było przejście na wersję 1.8.7, ale to nie jest to, czego naprawdę chcesz. Gdy występuje ten błąd podczas uruchamiania aplikacji szyn (np przeglądarka wyświetla komunikat o błędzie) umieścić te linie w swoim config/environment.rb (ja je zaraz po linii RAILS_GEM_VERSION):

if RUBY_VERSION =~ /1.9/ 
     Encoding.default_external = Encoding::UTF_8 
     Encoding.default_internal = Encoding::UTF_8 
    end 

i uruchom aplikację (Zawsze restartuję cały apache, są też inne metody).

2

Miałem ten problem, okazało się niewłaściwym cudzysłowem w tekście wiadomości.

Kręcone jeden z następujących: '

+0

Nienawidzę kręconych cudzysłowów ... Dzięki! – rsilva4