Я хочу установить 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 запускается и работает хорошо.
Кто-нибудь знает, как решить проблему?
Я не вижу, какая версия 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/
Вы рассмотрели использование Докера? Я вижу, что Вы выполняете VM, и если Вы можете рассмотреть Докера, я думаю, что Вы могли бы значительно извлечь выгоду.
Докер является ведущей в мире платформой контейнера программного обеспечения. Разработчики используют Докера для устранения “работ над моей машиной” проблемы при сотрудничестве на коде с коллегами. Операторы используют Докера, чтобы работать и справиться, приложения бок о бок в изолированных контейнерах для поправлений вычисляют плотность. Предприятия используют Докера для создания гибких конвейеров предоставления программного обеспечения для поставки новых возможностей быстрее, более надежно и с уверенностью и для Linux и для приложений Windows Server.
Это кажется немного сложным для вхождения, но это довольно просто, после того как Вы приобретаете навык его. Это - главным образом здание и дизайн архитектуры изображений/контейнеров и услуги, в котором трудно разобраться сначала, но если Вы просто используете изображения запаса, предоставленные сообществами вокруг Докера, можно стать довольно далекими.
Я недавно судил Redmine, сам использующего только Докера, потому что легче сохранить чистую ОС, когда у Вас есть эти виды проблем. Я выполняю Дугу Linux на моих основных ноутбуках, и я часто сталкиваюсь с проблемами, где старые версии постепенно сокращены и не легко доступные из АУРА.
Идея состоит в том, что Вы выбираете Докера Redmine Image (или создаете Ваше собственное), настройте a docker-compose.yml
ИЛИ выполненный two commands
: Сначала запустите свой SQL-сервер, какой бы ни это могло бы быть, и другой для запуска выполнения сервера Redmine (docker run -d --name some-redmine redmine
). Эти шаги документируются на странице для изображения.
Другие вещи отметить состоят в том, как Вы обрабатываете персистентные данные, как база данных, которая варьируется на Вашей установке. Я не уверен в том, где мои файлы настройки в данный момент, но если я найду их, то я добавлю их здесь.