LINUX.ORG.RU
решено ФорумAdmin

Запуск Redmine через FastCGI

 , , ,


0

1

Не могу понять почему у меня Redmine не хочет работать через FastCGI. Запускаю webrick:

ruby script/rails server webrick -e production
Запускается и работает.

Пытаюсь запустить spawn-fcgi:

sudo spawn-fcgi -a 127.0.0.1 -p 2005 -u www-data -g www-data -f /var/www/redmine/public/dispatch.fcgi -n
(последняя опция для nofork, получаю выхлоп в консоль) Сразу валится с ошибкой:
/var/lib/gems/1.9.1/gems/activerecord-3.2.19/lib/active_record/connection_adapters/abstract/connection_specification.rb:47:in `resolve_hash_connection': database configuration does not specify adapter (ActiveRecord::AdapterNotSpecified)
	from /var/lib/gems/1.9.1/gems/activerecord-3.2.19/lib/active_record/connection_adapters/abstract/connection_specification.rb:41:in `resolve_string_connection'
	from /var/lib/gems/1.9.1/gems/activerecord-3.2.19/lib/active_record/connection_adapters/abstract/connection_specification.rb:25:in `spec'
	from /var/lib/gems/1.9.1/gems/activerecord-3.2.19/lib/active_record/connection_adapters/abstract/connection_specification.rb:130:in `establish_connection'
	from /var/lib/gems/1.9.1/gems/activerecord-3.2.19/lib/active_record/railtie.rb:88:in `block (2 levels) in <class:Railtie>'
	from /var/lib/gems/1.9.1/gems/activesupport-3.2.19/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'
	from /var/lib/gems/1.9.1/gems/activesupport-3.2.19/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
	from /var/lib/gems/1.9.1/gems/activesupport-3.2.19/lib/active_support/lazy_load_hooks.rb:26:in `block in on_load'
	from /var/lib/gems/1.9.1/gems/activesupport-3.2.19/lib/active_support/lazy_load_hooks.rb:25:in `each'
	from /var/lib/gems/1.9.1/gems/activesupport-3.2.19/lib/active_support/lazy_load_hooks.rb:25:in `on_load'
	from /var/lib/gems/1.9.1/gems/activerecord-3.2.19/lib/active_record/railtie.rb:80:in `block in <class:Railtie>'
	from /var/lib/gems/1.9.1/gems/railties-3.2.19/lib/rails/initializable.rb:30:in `instance_exec'
	from /var/lib/gems/1.9.1/gems/railties-3.2.19/lib/rails/initializable.rb:30:in `run'
	from /var/lib/gems/1.9.1/gems/railties-3.2.19/lib/rails/initializable.rb:55:in `block in run_initializers'
	from /var/lib/gems/1.9.1/gems/railties-3.2.19/lib/rails/initializable.rb:54:in `each'
	from /var/lib/gems/1.9.1/gems/railties-3.2.19/lib/rails/initializable.rb:54:in `run_initializers'
	from /var/lib/gems/1.9.1/gems/railties-3.2.19/lib/rails/application.rb:136:in `initialize!'
	from /var/lib/gems/1.9.1/gems/railties-3.2.19/lib/rails/railtie/configurable.rb:30:in `method_missing'
	from /var/www/redmine/config/environment.rb:14:in `<top (required)>'
	from /var/www/redmine/public/dispatch.fcgi:4:in `require'
	from /var/www/redmine/public/dispatch.fcgi:4:in `<main>'
Непонятно почему жалуется на «database configuration does not specify adapter» при том что этот adapter вполне specified:
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "somepassword"
  encoding: utf8

★★★★★

Ответ на: комментарий от PreciousProtection

Если не production, то кто?

Похоже, что во втором варианте оно пытается запустить не production. В первом production был явно указан.

Похоже на правду, но если не production, то кто? В database.yml все кроме production закомментированы.

Camel ★★★★★
() автор топика
Ответ на: комментарий от PreciousProtection

environment.rb

А что там должно быть? У меня там default

# Load the rails application
require File.expand_path('../application', __FILE__)

# Make sure there's no plugin in vendor/plugin before starting
vendor_plugins_dir = File.join(Rails.root, "vendor", "plugins")
if Dir.glob(File.join(vendor_plugins_dir, "*")).any?
  $stderr.puts "Plugins in vendor/plugins (#{vendor_plugins_dir}) are no longer allowed. " +
    "Please, put your Redmine plugins in the `plugins` directory at the root of your " +
    "Redmine directory (#{File.join(Rails.root, "plugins")})"
  exit 1
end

# Initialize the rails application
RedmineApp::Application.initialize!

Camel ★★★★★
() автор топика
Ответ на: Если не production, то кто? от Camel

Настройки database.yml касаются только настроек БД, и не влияют на то, что будет запущено - production или develop (или как там).

PreciousProtection
()
Ответ на: environment.rb от Camel

Или сделать переменную окружения для самого процесса

export RAILS_ENV=production

или в environment.rb добавить

ENV['RAILS_ENV'] ||= 'production'

о других способах я не знаю

PreciousProtection
()
Ответ на: комментарий от PreciousProtection

Не помогло

ENV['RAILS_ENV'] ||= 'production'

Попробовал, не помогло. Ещё пробовал удалить все файлы кроме production.rb из config/environments, тоже не помогло.

Camel ★★★★★
() автор топика
Ответ на: комментарий от PreciousProtection

Directory

Вечером попробую ещё рабочую директорию задать принудительно.

sudo spawn-fcgi -a 127.0.0.1 -p 2005 -u www-data -g www-data -f /var/www/redmine/public/dispatch.fcgi -d /var/www/redmine -n
Camel ★★★★★
() автор топика
Ответ на: Directory от Camel

в sudo твое export RAILS_ENV может не проникнуть, задавай переменную прямо в команде sudo

anonymous
()
Ответ на: комментарий от anonymous

Прямее чем sudo

в sudo твое export RAILS_ENV может не проникнуть, задавай переменную прямо в команде sudo

Не-не-не, это

ENV['RAILS_ENV'] ||= 'production'

строчка из файла config/environment.rb. Но запустить с переменной оболочки RAILS_ENV тоже попробую.

Camel ★★★★★
() автор топика

раскомментируй в database.yml все секции назад, как было.

попробуй запускать так:

sudo RAILS_ENV=production spawn-fcgi -a 127.0.0.1 -p 2005 bla-bla

возможно почерпнешь что-то здесь, например изменить шебанг.

nerve ★★
()
Ответ на: комментарий от nerve

Заработало

sudo RAILS_ENV=production spawn-fcgi -a 127.0.0.1 -p 2005 -u www-data -g www-data -f /var/www/redmine/public/dispatch.fcgi -n

Это правильный ответ. Раскомментировать как было в database.yml не требуется.

На всякий случай cast PreciousProtection

Camel ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.