ruby-on-rails-3 - 尝试使用 phusion 乘客启动 rails 应用程序时,US-ASCII 中的字节序列无效

标签 ruby-on-rails-3 utf-8 bundler passenger

我正在尝试使用 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 中的无效字节序列

异常类:
参数错误

这是回溯:

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

关于出了什么问题的任何想法?

最佳答案

我在这篇文章中找到了解决方案:When run bundle get invalid byte sequence in US-ASCII

我所要做的就是将它添加到我的 Gemfile 之上:

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

关于ruby-on-rails-3 - 尝试使用 phusion 乘客启动 rails 应用程序时,US-ASCII 中的字节序列无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13650562/

相关文章:

ruby-on-rails - Rails 验证 NOT 在正则表达式中

javascript - 在 javascript 中解析 UTF-8 XML

php - 如何将ASCII字符串转换为Bangla UTF-8字符串?

bundler - "The gem ... has been deleted. It was installed at"错误。 bundle 安装不安装 gems。如何重新安装 gem ?

ruby-on-rails - rake 任务因 US-ASCII 中的无效字节序列而失败

ruby-on-rails - Ruby on Rails,将大表单拆分为单独的小表单

ruby-on-rails-3 - 未初始化的常量 Psych::Syck with Rails 3/Rubygems 1.6.2/bundler 1.0.10

ruby-on-rails - 具有依赖项的可移植 Rails 应用程序

ruby-on-rails - Rails ActiveRecord - 搜索多个属性

RMarkdown : UTF-8 works with Knit button but not with render()