问题描述
我正在尝试使用Phusion passenger和RVM在Ubuntu生产服务器上部署Rails 3应用程序.我已经成功安装了Phusion passenger,但是在浏览器上访问服务器时出现以下错误:
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.
错误消息: US-ASCII中无效的字节序列
Error message: invalid byte sequence in US-ASCII
异常类: ArgumentError
Exception class: 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字符.这是有道理的,因为该应用程序是针对法语网站的,但是我确保在每个包含非ASCII字符的源文件的顶部添加# -*- encoding : utf-8 -*-
.
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.
这是我的Gemfile:
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 ?
推荐答案
我在这篇文章中找到了解决方案:
I found the solution in this post : When run bundle get invalid byte sequence in US-ASCII
我要做的就是将其添加到我的Gemfile之上:
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
这篇关于尝试与Phusion Passenger启动Rails应用程序时,US-ASCII中的无效字节序列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!