试图启动时,在US-ASCII无效字节序列的Rails应用程序与PHUSION乘客(invalid

2019-07-04 08:22发布

我试图部署使用Phusion乘客和RVM Ubuntu的生产服务器上一个Rails 3应用程序。 我已经安装的Phusion乘客成功,但访问我的浏览器服务器时,我收到以下错误:

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.

有关错误的信息可能已被写入应用程序的日志文件。 请以分析问题进行检查。

错误信息:在US-ASCII无效字节序列

Exception类:引发ArgumentError

这里是回溯:

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 `'

据我了解,Bundler.setup()开始在一个非ASCII字符的应用程序,并绊倒时被调用。 这是有道理的,因为应用程序是一个法国网站,但我确信添加# -*- encoding : utf-8 -*-含非ASCII字符的每一个源文件的顶部。

这里是我的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

任何想法是什么问题呢?

Answer 1:

我发现这个职位的解决方案: 在运行时捆绑在US-ASCII得到无效的字节序列

我所要做的就是添加这个在我的Gemfile的顶部:

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


Answer 2:

我有这个问题与运行红宝石1.9.3一个Rails 2.3的应用程序。 一个解决办法是降级到1.8.7,但是这是不是你真正想要的。 如果在运行Rails应用程序出现此错误(例如,浏览器显示错误消息)将这些行到你的config / environment.rb文件(我把他们的RAILS_GEM_VERSION行之后):

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

并重新启动应用程序(我总是重新启动整个Apache的,还有其它方法一样)。



Answer 3:

我有这个问题,竟然是在消息文本不恰当的引号。

这些卷毛之一:“



文章来源: invalid byte sequence in US-ASCII when trying to start rails app with phusion passenger