invalid byte sequence in US-ASCII when trying to s

2019-02-23 00:33发布

问题:

I am trying to deploy a Rails 3 application on a Ubuntu production server using Phusion passenger and RVM. I have installed Phusion passenger successfully, but I get the following error when accessing the server on my browser :

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.

Further information about the error may have been written to the application's log file. Please check it in order to analyse the problem.

Error message: invalid byte sequence in US-ASCII

Exception class: ArgumentError

Here is the 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 `'

From what I understand, Bundler.setup() is called when starting the app and stumbles upon a non ascii character. This makes sense since the application is for a french website, but I made sure to add # -*- encoding : utf-8 -*- on top of every source file containing non-ascii characters.

Here is my 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

Any ideas as to what is going wrong ?

回答1:

I found the solution in this post : When run bundle get invalid byte sequence in US-ASCII

All I had to do was add this on top of my Gemfile :

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


回答2:

I had this problem with a Rails 2.3 app running ruby 1.9.3. One solution was to downgrade to 1.8.7 but this is not what you really want. When this error occurs while running the rails app (e.g. the browser shows the error message) put these lines into your config/environment.rb (I put them right after the RAILS_GEM_VERSION line):

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

and restart the app (I always restart the whole apache, there are other methods as well).



回答3:

I had this problem, turned out to be an inappropriate quotation mark in message text.

Curly one of these: '