Печально известная ошибка "байтовой последовательности" при локальной установке gitorious на Ruby 1.9.1

Я пытаюсь установить gitorious на свой персональный сервер, но я не очень хорошо знаком с Ruby или фреймворками и скриптами, участвующими в достижении финишной черты.

Я следую следующим инструкциям, чтобы установить gitorious на свой сервер CentOS 5.4:

http://www.tikalk.com/alm/blog/installing-gitorious-centos-55

Сайт открывается, но как только я нажимаю ссылку для входа, я получаю экран с ошибкой 500 и отчет об исключении отправляется мне по электронной почте. Ошибка отображается как «недопустимая последовательность байтов», и Google сообщает мне, что это связано с Ruby 1.9. Из того, что я читал, gitorious.org использует 1.9, а у других он работает, поэтому теперь мне любопытно, почему он не работает в моей системе.

Судя по трассировке, похоже, что неверная кодировка могла быть получена из базы данных, которая в моем случае является MySQL 5.0.77. Все таблицы в ужасной базе данных имеют свой DEFAULT_CHARSET, установленный на utf8.

Версию большинства компонентов, которые я установил, можно узнать из стека. У меня установлены рельсы 3.0.0. Если что-то еще будет полезно, прокомментируйте, и я отвечу.

Отчет об исключении выглядит следующим образом:


A ArgumentError occurred in sessions#new:

 invalid byte sequence in US-ASCII
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_view/template_error.rb:43:in `split'

-------------------------------
Request:
-------------------------------

 * URL       : http://[my-server]/login
 * IP address: [my-ip]
 * Parameters: {"controller"=>"sessions", "action"=>"new"}
 * Rails root: /opt/gitorious/gitorious

-------------------------------
Session:
-------------------------------

 * session id: nil
 * data: nil

-------------------------------
Environment:
-------------------------------

 * DOCUMENT_ROOT                               : /var/www/gitorious/public
 * HTTP_ACCEPT                                 : application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
 * HTTP_ACCEPT_ENCODING                        : gzip, deflate
 * HTTP_ACCEPT_LANGUAGE                        : en-us
 * HTTP_CONNECTION                             : keep-alive
 * HTTP_COOKIE                                 : _gitorious_sess=1a4c10ada66c96f213d6f4573d35286c
 * HTTP_HOST                                   : [my-hostname]
 * HTTP_REFERER                                : http://[my-hostname]/
 * HTTP_USER_AGENT                             : Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7
 * PATH_INFO                                   : /login
 * QUERY_STRING                                :
 * REMOTE_ADDR                                 : [my-ip]
 * REMOTE_PORT                                 : 53586
 * REQUEST_METHOD                              : GET
 * REQUEST_URI                                 : /login
 * SCRIPT_NAME                                 :
 * SCRIPT_URI                                  : http://[my-server]/login
 * SCRIPT_URL                                  : /login
 * SERVER_ADDR                                 : [client-ip]
 * SERVER_ADMIN                                : root@localhost
 * SERVER_NAME                                 : [my-hostname]
 * SERVER_PORT                                 : 80
 * SERVER_PROTOCOL                             : HTTP/1.1
 * SERVER_SOFTWARE                             : Apache/2.2.3 (CentOS)
 * _                                           : _
 * action_controller.request.path_parameters   : {"controller"=>"sessions", "action"=>"new"}
 * action_controller.request.query_parameters  : {}
 * action_controller.request.request_parameters: {}
 * action_controller.rescue.request            : #
 * action_controller.rescue.response           : #
 * rack.errors                                 : #
 * rack.input                                  : #
 * rack.multiprocess                           : true
 * rack.multithread                            : false
 * rack.request.cookie_hash                    : {"_gitorious_sess"=>"1a4c10ada66c96f213d6f4573d35286c"}
 * rack.request.cookie_string                  : _gitorious_sess=1a4c10ada66c96f213d6f4573d35286c
 * rack.request.query_hash                     : {}
 * rack.request.query_string                   :
 * rack.run_once                               : false
 * rack.session                                : {}
 * rack.session.options                        : {:key=>"_gitorious_sess", :path=>"/", :domain=>".", :expire_after=>21 days, :secure=>false, :httponly=>true, :cookie_only=>true, :secret=>"dopFactAnArcyirUckryfsObNohokOrOmFeinwojUpbofIamcicyesicCulfaydd", :id=>"1a4c10ada66c96f213d6f4573d35286c"}
 * rack.session.record                         : #
 * rack.url_scheme                             : http
 * rack.version                                : [1, 0]

 * Process: 22046
 * Server : [my-server]

-------------------------------
Backtrace:
-------------------------------

 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_view/template_error.rb:43:in `split'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_view/template_error.rb:43:in `source_extract'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_view/template_error.rb:86:in `compute_backtrace'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_view/template_error.rb:11:in `initialize'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_view/template.rb:212:in `new'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_view/template.rb:212:in `rescue in render_template'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_view/template.rb:205:in `render_template'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_view/base.rb:265:in `render'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_view/base.rb:348:in `_render_with_layout'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_view/base.rb:262:in `render'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/base.rb:1250:in `render_for_file'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/base.rb:945:in `render'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:51:in `block in render_with_benchmark'
 [RAILS_ROOT]/vendor/rails/activesupport/lib/active_support/core_ext/benchmark.rb:17:in `block in ms'
 /usr/local/ruby/ruby191/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'
 [RAILS_ROOT]/vendor/rails/activesupport/lib/active_support/core_ext/benchmark.rb:17:in `ms'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:51:in `render_with_benchmark'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/base.rb:1326:in `default_render'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/base.rb:1332:in `perform_action'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/filters.rb:617:in `call_filters'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/filters.rb:610:in `perform_action_with_filters'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `block in perform_action_with_benchmark'
 [RAILS_ROOT]/vendor/rails/activesupport/lib/active_support/core_ext/benchmark.rb:17:in `block in ms'
 /usr/local/ruby/ruby191/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'
 [RAILS_ROOT]/vendor/rails/activesupport/lib/active_support/core_ext/benchmark.rb:17:in `ms'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_with_benchmark'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/rescue.rb:160:in `perform_action_with_rescue'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/flash.rb:146:in `perform_action_with_flash'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/base.rb:532:in `process'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/filters.rb:606:in `process_with_filters'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/base.rb:391:in `process'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/base.rb:386:in `call'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb:437:in `call'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:87:in `dispatch'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:121:in `_call'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:130:in `block in build_middleware_stack'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/string_coercion.rb:25:in `call'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/string_coercion.rb:25:in `call'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/head.rb:9:in `call'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/methodoverride.rb:24:in `call'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/params_parser.rb:15:in `call'
 [RAILS_ROOT]/vendor/rails/railties/lib/rails/rack/metal.rb:47:in `call'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb:122:in `call'
 [RAILS_ROOT]/vendor/rails/activerecord/lib/active_record/query_cache.rb:29:in `block in call'
 [RAILS_ROOT]/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
 [RAILS_ROOT]/vendor/rails/activerecord/lib/active_record/query_cache.rb:9:in `cache'
 [RAILS_ROOT]/vendor/rails/activerecord/lib/active_record/query_cache.rb:28:in `call'
 [RAILS_ROOT]/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/failsafe.rb:26:in `call'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/lock.rb:11:in `block in call'
 :8:in `synchronize'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call'
 [RAILS_ROOT]/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:106:in `call'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/rack/request_handler.rb:92:in `process_request'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/abstract_request_handler.rb:207:in `main_loop'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/railz/application_spawner.rb:441:in `start_request_handler'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/railz/application_spawner.rb:381:in `block in handle_spawn_application'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/utils.rb:252:in `safe_fork'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/railz/application_spawner.rb:377:in `handle_spawn_application'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:163:in `start'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/railz/application_spawner.rb:222:in `start'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/spawn_manager.rb:253:in `block (2 levels) in spawn_rails_application'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/spawn_manager.rb:247:in `block in spawn_rails_application'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/abstract_server_collection.rb:80:in `block in synchronize'
 :8:in `synchronize'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/spawn_manager.rb:246:in `spawn_rails_application'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/spawn_manager.rb:145:in `spawn_application'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/spawn_manager.rb:278:in `handle_spawn_application'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
 /usr/local/ruby/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/bin/passenger-spawn-server:61:in `'


person Sebastien Martin    schedule 21.09.2010    source источник


Ответы (1)


В этом сообщении Мариуса Марнеса Матизена он рекомендует удалить i18n драгоценный камень. Может быть, это решит вашу проблему.

person robinst    schedule 16.02.2011
comment
Я не могу протестировать это решение, так как недавно опубликовал его, но оно выглядит верным, и я ценю ответ. Я сделаю попытку, если снова вернусь к настройке моего сервера. - person Sebastien Martin; 20.04.2011