Я хочу установить 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 on rails через 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 запускается Passenger, но я подозрюю, что у вас есть конфликт между системой Ruby (v2.3.1) и RVM Ruby (v2.3.3).
Если вы смотрите на выход ruby -v, вы получаете ruby 2.3.1p112. Но файл журнала, который вы опубликовали, имеет следующий путь: .../.rvm/gems/ruby-2.3.3/. Поэтому я думаю, что запуск rails напрямую работает, потому что вы используете системные драгоценные камни, но когда вы запускаете Passenger, он использует систему Ruby (per PassengerDefaultRuby), но каким-то образом пытается загрузить несовместимые драгоценные камни. Я рекомендую отменить шаги и выбрать между системой Ruby и RVM. Если вы выполнили какое-либо руководство по установке, добавьте его в свой вопрос.
Если вы хотите использовать систему Ruby, попробуйте удалить /opt/rubymine/.rvm. Если у вас есть проблемы с зависимостями, вы можете установить их с помощью bundle install --deployment, поэтому он будет содержаться в каталоге Rubymine (см. Режим развертывания). Убедитесь, что учетная запись пользователя, под которой находится Пассажир, имеет доступ для чтения ко всем файлам в /opt/redmine.
В качестве альтернативы вы можете поручить Пассажиру использовать другой Ruby с Redmine с использованием опции конфигурации PasengerRuby, см. [D3] режим развертывания
Считаете ли вы использование Docker? Я вижу, что вы запускаете виртуальную машину, и если вы можете рассмотреть Docker, я думаю, что вы могли бы очень выиграть.
Кажется, что вам сложно войти, но это довольно просто, как только вы получите его. Это в основном дизайн зданий и архитектуры изображений / контейнеров и сервисов, которые трудно получить сразу, но если вы просто используете фондовые изображения, предоставленные сообществами вокруг Docker, вы можете получить довольно далеко.
Недавно я попробовал Redmine самостоятельно, используя только Docker, потому что легче поддерживать чистую ОС при возникновении таких проблем. Я запускаю Arch Linux на своих основных ноутбуках, и я часто сталкиваюсь с проблемами, когда старые версии выходят из строя и не доступны из AUR.
Идея состоит в том, что вы извлекаете AUR (или создаете свои собственные), настраиваете docker-compose.yml OR run two commands: сначала запустите свой SQL-сервер, в зависимости от того, быть, а другой - запустить сервер, на котором работает Redmine (docker run -d --name some-redmine redmine). Эти действия задокументированы на странице для изображения.
Следует обратить внимание на то, как вы обрабатываете постоянные данные, такие как база данных, которая зависит от вашей настройки. Я не уверен, где мои файлы настройки находятся в данный момент, но если я их найду, я добавлю их здесь.
Я не вижу, какая версия Ruby запускается Passenger, но я подозрюю, что у вас есть конфликт между системой Ruby (v2.3.1) и RVM Ruby (v2.3.3).
Если вы смотрите на выход ruby -v, вы получаете ruby 2.3.1p112. Но файл журнала, который вы опубликовали, имеет следующий путь: .../.rvm/gems/ruby-2.3.3/. Поэтому я думаю, что запуск rails напрямую работает, потому что вы используете системные драгоценные камни, но когда вы запускаете Passenger, он использует систему Ruby (per PassengerDefaultRuby), но каким-то образом пытается загрузить несовместимые драгоценные камни. Я рекомендую отменить шаги и выбрать между системой Ruby и RVM. Если вы выполнили какое-либо руководство по установке, добавьте его в свой вопрос.
Если вы хотите использовать систему Ruby, попробуйте удалить /opt/rubymine/.rvm. Если у вас есть проблемы с зависимостями, вы можете установить их с помощью bundle install --deployment, поэтому он будет содержаться в каталоге Rubymine (см. Режим развертывания). Убедитесь, что учетная запись пользователя, под которой находится Пассажир, имеет доступ для чтения ко всем файлам в /opt/redmine.
В качестве альтернативы вы можете поручить Пассажиру использовать другой Ruby с Redmine с использованием опции конфигурации PasengerRuby, см. [D3] режим развертывания
Считаете ли вы использование Docker? Я вижу, что вы запускаете виртуальную машину, и если вы можете рассмотреть Docker, я думаю, что вы могли бы очень выиграть.
Кажется, что вам сложно войти, но это довольно просто, как только вы получите его. Это в основном дизайн зданий и архитектуры изображений / контейнеров и сервисов, которые трудно получить сразу, но если вы просто используете фондовые изображения, предоставленные сообществами вокруг Docker, вы можете получить довольно далеко.
Недавно я попробовал Redmine самостоятельно, используя только Docker, потому что легче поддерживать чистую ОС при возникновении таких проблем. Я запускаю Arch Linux на своих основных ноутбуках, и я часто сталкиваюсь с проблемами, когда старые версии выходят из строя и не доступны из AUR.
Идея состоит в том, что вы извлекаете AUR (или создаете свои собственные), настраиваете docker-compose.yml OR run two commands: сначала запустите свой SQL-сервер, в зависимости от того, быть, а другой - запустить сервер, на котором работает Redmine (docker run -d --name some-redmine redmine). Эти действия задокументированы на странице для изображения.
Следует обратить внимание на то, как вы обрабатываете постоянные данные, такие как база данных, которая зависит от вашей настройки. Я не уверен, где мои файлы настройки находятся в данный момент, но если я их найду, я добавлю их здесь.