Redmine не может работать на apache2 с пассажиром: несовместимая библиотечная версия nokogiri

Я хочу установить Redmine на свой компьютер. Я работал с учебниками из http://redmine.org/ для развертывания Redmine на моем ПК. После установки ruby, дополнительных пакетов и redmine, я хочу настроить apache2 для redmine. Но есть проблема после доступа к приложению:

Message from application: incompatible library version - /opt/redmine/.rvm/gems/ruby-2.3.3/gems/nokogiri-1.7.2/lib/nokogiri/nokogiri.so

Я установил ruby ​​на рельсы через rvm:

oleg@oleg-VirtualBox ~ $ ruby -v
ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]
oleg@oleg-VirtualBox ~ $ rails -v
Rails 4.2.8

установил libapache2-mode-passenger с /etc/apache2/mods-available/passenger.conf config:

<IfModule mod_passenger.c>
  PassengerUserSwitching on 
  PassengerUser redmine
  PassengerGroup redmine
  PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
  PassengerDefaultRuby /usr/bin/ruby
</IfModule>

и config для redmine:

<VirtualHost *:80>
    DocumentRoot /var/www/html/redmine/
    ServerName redmine.local

    <Directory /var/www/html/redmine/>
        PassengerResolveSymlinksInDocumentRoot on
        AllowOverride all
        Options -MultiViews
        Options FollowSymLinks
        RailsBaseURI /redmine
    </Directory>
</VirtualHost>

Журнал ошибок Apache:

[ 2017-07-04 13:53:21.9413 1661/7f51d8495700 age/Cor/App/Implementation.cpp:304 ]: Could not spawn process for application /opt/redmine/redmine: An error occurred while starting up the preloader.
  Error ID: 28c6ac21
  Error details saved to: /tmp/passenger-error-GYyEzF.html
  Message from application: incompatible library version - /opt/redmine/.rvm/gems/ruby-2.3.3/gems/nokogiri-1.7.2/lib/nokogiri/nokogiri.so (LoadError)
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/nokogiri-1.7.2/lib/nokogiri.rb:32:in `require'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/nokogiri-1.7.2/lib/nokogiri.rb:32:in `rescue in <top (required)>'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/nokogiri-1.7.2/lib/nokogiri.rb:28:in `<top (required)>'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/roadie-3.2.2/lib/roadie/inliner.rb:2:in `require'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/roadie-3.2.2/lib/roadie/inliner.rb:2:in `<top (required)>'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/roadie-3.2.2/lib/roadie.rb:29:in `require'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/roadie-3.2.2/lib/roadie.rb:29:in `<top (required)>'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/roadie-rails-1.1.1/lib/roadie/rails.rb:6:in `require'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/roadie-rails-1.1.1/lib/roadie/rails.rb:6:in `<top (required)>'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/roadie-rails-1.1.1/lib/roadie-rails.rb:1:in `require'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/roadie-rails-1.1.1/lib/roadie-rails.rb:1:in `<top (required)>'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/bundler-1.15.1/lib/bundler/runtime.rb:82:in `require'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/bundler-1.15.1/lib/bundler/runtime.rb:82:in `block (2 levels) in require'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/bundler-1.15.1/lib/bundler/runtime.rb:77:in `each'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/bundler-1.15.1/lib/bundler/runtime.rb:77:in `block in require'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/bundler-1.15.1/lib/bundler/runtime.rb:66:in `each'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/bundler-1.15.1/lib/bundler/runtime.rb:66:in `require'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/bundler-1.15.1/lib/bundler.rb:108:in `require'
  /opt/redmine/redmine-3.3.4/config/application.rb:5:in `<top (required)>'
  /opt/redmine/redmine-3.3.4/config/environment.rb:2:in `require'
  /opt/redmine/redmine-3.3.4/config/environment.rb:2:in `<top (required)>'
  config.ru:3:in `require'
  config.ru:3:in `block in <main>'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/rack-1.6.8/lib/rack/builder.rb:55:in `instance_eval'
  /opt/redmine/.rvm/gems/ruby-2.3.3/gems/rack-1.6.8/lib/rack/builder.rb:55:in `initialize'
  config.ru:1:in `new'
  config.ru:1:in `<main>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:110:in `eval'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:110:in `preload_app'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:156:in `<module:App>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>'


[ 2017-07-04 13:53:21.9466 1661/7f51d3fff700 age/Cor/Con/CheckoutSession.cpp:285 ]: [Client 1-1] Cannot checkout session because a spawning error occurred. The identifier of the error is 28c6ac21. Please see earlier logs for details about the error.

Файл nokogiri.so присутствует в папке.

Если запустить сервер rails, Redmine запускается и работает хорошо.

Кто-нибудь знает, как решить проблему?

2
задан 4 July 2017 в 14:10

2 ответа

Я не вижу, какая версия Ruby запускается Пассажиром, но я подозрителен, что у Вас есть конфликт между системой Ruby (v2.3.1) и Ruby RVM (v2.3.3).

Если Вы смотрите на вывод ruby -v, Вы добираетесь ruby 2.3.1p112. Но файл журнала, который Вы отправили, имеет следующий путь: .../.rvm/gems/ruby-2.3.3/. Таким образом, я думаю то выполнение rails непосредственно работы, потому что Вы используете системные драгоценные камни, но когда Вы выполняете Пассажира, это использует систему Ruby (на PassengerDefaultRuby), но так или иначе это пытается загрузить несовместимые драгоценные камни. Я рекомендую отследить в обратном порядке Ваши шаги и выбрать между системой Ruby и RVM. В случае, если Вы следовали некоторой инструкции по установке, добавьте его к своему вопросу.

Если требуется использовать систему Ruby, попытайтесь удалить /opt/rubymine/.rvm. Если у Вас есть проблема с зависимостями затем, можно установить их использование bundle install --deployment, таким образом, это будет содержаться в каталоге Rubymine (см. режим развертывания). Удостоверьтесь учетная запись пользователя, под которой Пассажир, имеет доступ для чтения ко всем файлам в /opt/redmine.

Кроме того, можно дать Пассажиру команду использовать другой Ruby с использованием Redmine PasengerRuby параметр конфигурации, см. https://www.phusionpassenger.com/library/deploy/apache/deploy/ruby/

0
ответ дан 2 December 2019 в 08:52

Вы рассмотрели использование Докера? Я вижу, что Вы выполняете VM, и если Вы можете рассмотреть Докера, я думаю, что Вы могли бы значительно извлечь выгоду.

Кто такой докер

Докер является ведущей в мире платформой контейнера программного обеспечения. Разработчики используют Докера для устранения “работ над моей машиной” проблемы при сотрудничестве на коде с коллегами. Операторы используют Докера, чтобы работать и справиться, приложения бок о бок в изолированных контейнерах для поправлений вычисляют плотность. Предприятия используют Докера для создания гибких конвейеров предоставления программного обеспечения для поставки новых возможностей быстрее, более надежно и с уверенностью и для Linux и для приложений Windows Server.

Почему Вы использовали бы его?

Это кажется немного сложным для вхождения, но это довольно просто, после того как Вы приобретаете навык его. Это - главным образом здание и дизайн архитектуры изображений/контейнеров и услуги, в котором трудно разобраться сначала, но если Вы просто используете изображения запаса, предоставленные сообществами вокруг Докера, можно стать довольно далекими.

Я недавно судил Redmine, сам использующего только Докера, потому что легче сохранить чистую ОС, когда у Вас есть эти виды проблем. Я выполняю Дугу Linux на моих основных ноутбуках, и я часто сталкиваюсь с проблемами, где старые версии постепенно сокращены и не легко доступные из АУРА.

Идея состоит в том, что Вы выбираете Докера Redmine Image (или создаете Ваше собственное), настройте a docker-compose.yml ИЛИ выполненный two commands: Сначала запустите свой SQL-сервер, какой бы ни это могло бы быть, и другой для запуска выполнения сервера Redmine (docker run -d --name some-redmine redmine). Эти шаги документируются на странице для изображения.

Другие вещи отметить состоят в том, как Вы обрабатываете персистентные данные, как база данных, которая варьируется на Вашей установке. Я не уверен в том, где мои файлы настройки в данный момент, но если я найду их, то я добавлю их здесь.

0
ответ дан 2 December 2019 в 08:52

Другие вопросы по тегам:

Похожие вопросы: