User:Woozle/Redmine/2
2020-02-09
Redmine: download
The download/install instructions suggest strongly that using subversion is the best way to upgrade --
svn co https://svn.redmine.org/redmine/branches/4.0-stable redmine-4.0
...and then cd to the redmine-4.0
folder which that creates, and:
svn update
I think this assumes I'm working with an already-configured instance, though, so I should look at the installation guide before trying the svn update
.
On further reflection, I realized that I should probably be installing v4.1, in spite of the example:
svn co http://svn.redmine.org/redmine/branches/4.1-stable/ redmine-4.1
That seemed to work too.
Ruby
It looked like the packaged version of Ruby (2.5.1p57 (2018-03-29 revision 63029)) would be ok -- Redmine 4.1 wants Ruby 2.3, 2.4, 2.5, or 2.6 and Rails 5.2 -- so I did that.
Rails
I was never able to find actual instructions for installing Rails (unless you're serving from Windows or Mac for some reason), but a hint somewhere suggested that it could be installed with gem
:
root@cloud1:~# gem install rails Fetching: concurrent-ruby-1.1.5.gem (100%) Successfully installed concurrent-ruby-1.1.5 Fetching: i18n-1.8.2.gem (100%) HEADS UP! i18n 1.1 changed fallbacks to exclude default locale. But that may break your application. If you are upgrading your Rails application from an older version of Rails: Please check your Rails app for 'config.i18n.fallbacks = true'. If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be 'config.i18n.fallbacks = [I18n.default_locale]'. If not, fallbacks will be broken in your app by I18n 1.1.x. If you are starting a NEW Rails application, you can ignore this notice. For more info see: https://github.com/svenfuchs/i18n/releases/tag/v1.1.0 Successfully installed i18n-1.8.2 Fetching: thread_safe-0.3.6.gem (100%) Successfully installed thread_safe-0.3.6 Fetching: tzinfo-1.2.6.gem (100%) Successfully installed tzinfo-1.2.6 Fetching: zeitwerk-2.2.2.gem (100%) Successfully installed zeitwerk-2.2.2 Fetching: activesupport-6.0.2.1.gem (100%) Successfully installed activesupport-6.0.2.1 Fetching: rack-2.2.1.gem (100%) Successfully installed rack-2.2.1 Fetching: rack-test-1.1.0.gem (100%) Successfully installed rack-test-1.1.0 Fetching: mini_portile2-2.4.0.gem (100%) Successfully installed mini_portile2-2.4.0 Fetching: nokogiri-1.10.7.gem (100%) Building native extensions. This could take a while... ERROR: Error installing rails: ERROR: Failed to build gem native extension. current directory: /var/lib/gems/2.5.0/gems/nokogiri-1.10.7/ext/nokogiri /usr/bin/ruby2.5 -r ./siteconf20200209-18711-ifi5p4.rb extconf.rb mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h extconf failed, exit code 1 Gem files will remain installed in /var/lib/gems/2.5.0/gems/nokogiri-1.10.7 for inspection. Results logged to /var/lib/gems/2.5.0/extensions/x86_64-linux/2.5.0/nokogiri-1.10.7/gem_make.out
It took some puzzling to work out that the key part of that message was:
can't find header files for ruby at /usr/lib/ruby/include/ruby.h
...suggesting that the Ruby header files (presumably in the ruby-dev
package) need to be installed.
Having installed them, we will try again...
root@cloud1:~# gem install rails Building native extensions. This could take a while... ERROR: Error installing rails: ERROR: Failed to build gem native extension. current directory: /var/lib/gems/2.5.0/gems/nokogiri-1.10.7/ext/nokogiri /usr/bin/ruby2.5 -r ./siteconf20200209-10713-el6zi0.rb extconf.rb checking if the C compiler accepts ... yes Building nokogiri using packaged libraries. Using mini_portile version 2.4.0 checking for gzdopen() in -lz... no zlib is missing; necessary for building libxml2 *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/usr/bin/$(RUBY_BASE_NAME)2.5 --help --clean --use-system-libraries --enable-static --disable-static --with-zlib-dir --without-zlib-dir --with-zlib-include --without-zlib-include=${zlib-dir}/include --with-zlib-lib --without-zlib-lib=${zlib-dir}/lib --enable-cross-build --disable-cross-build To see why this extension failed to compile, please check the mkmf.log which can be found here: /var/lib/gems/2.5.0/extensions/x86_64-linux/2.5.0/nokogiri-1.10.7/mkmf.log extconf failed, exit code 1 Gem files will remain installed in /var/lib/gems/2.5.0/gems/nokogiri-1.10.7 for inspection. Results logged to /var/lib/gems/2.5.0/extensions/x86_64-linux/2.5.0/nokogiri-1.10.7/gem_make.out
Presumably we just need to install zlib... but searching for "zlib" in apt came up with several packages:
zlib1g | compression library - runtime |
zlib1g-dbg | compression library - development |
zlib1g-dev | compression library - development |
zlibc | An on-fly auto-uncompressing C library |
zopfli | zlib (gzip, deflate) compatible compressor |
Our first guess was zlib1g
, but that was already installed. Searching for the error came up with a post by someone who had solved it with zlib1g-dev
, so we tried that next... and it appears to have succeeded:
root@cloud1:~# gem install rails Building native extensions. This could take a while... Successfully installed nokogiri-1.10.7 Fetching: crass-1.0.6.gem (100%) Successfully installed crass-1.0.6 Fetching: loofah-2.4.0.gem (100%) Successfully installed loofah-2.4.0 Fetching: rails-html-sanitizer-1.3.0.gem (100%) Successfully installed rails-html-sanitizer-1.3.0 Fetching: rails-dom-testing-2.0.3.gem (100%) Successfully installed rails-dom-testing-2.0.3 Fetching: builder-3.2.4.gem (100%) Successfully installed builder-3.2.4 Fetching: erubi-1.9.0.gem (100%) Successfully installed erubi-1.9.0 Fetching: actionview-6.0.2.1.gem (100%) Successfully installed actionview-6.0.2.1 Fetching: actionpack-6.0.2.1.gem (100%) Successfully installed actionpack-6.0.2.1 Fetching: activemodel-6.0.2.1.gem (100%) Successfully installed activemodel-6.0.2.1 Fetching: activerecord-6.0.2.1.gem (100%) Successfully installed activerecord-6.0.2.1 Fetching: globalid-0.4.2.gem (100%) Successfully installed globalid-0.4.2 Fetching: activejob-6.0.2.1.gem (100%) Successfully installed activejob-6.0.2.1 Fetching: mini_mime-1.0.2.gem (100%) Successfully installed mini_mime-1.0.2 Fetching: mail-2.7.1.gem (100%) Successfully installed mail-2.7.1 Fetching: actionmailer-6.0.2.1.gem (100%) Successfully installed actionmailer-6.0.2.1 Fetching: nio4r-2.5.2.gem (100%) Building native extensions. This could take a while... Successfully installed nio4r-2.5.2 Fetching: websocket-extensions-0.1.4.gem (100%) Successfully installed websocket-extensions-0.1.4 Fetching: websocket-driver-0.7.1.gem (100%) Building native extensions. This could take a while... Successfully installed websocket-driver-0.7.1 Fetching: actioncable-6.0.2.1.gem (100%) Successfully installed actioncable-6.0.2.1 Fetching: mimemagic-0.3.4.gem (100%) Successfully installed mimemagic-0.3.4 Fetching: marcel-0.3.3.gem (100%) Successfully installed marcel-0.3.3 Fetching: activestorage-6.0.2.1.gem (100%) Successfully installed activestorage-6.0.2.1 Fetching: actionmailbox-6.0.2.1.gem (100%) Successfully installed actionmailbox-6.0.2.1 Fetching: actiontext-6.0.2.1.gem (100%) Successfully installed actiontext-6.0.2.1 Fetching: thor-1.0.1.gem (100%) Successfully installed thor-1.0.1 Fetching: method_source-0.9.2.gem (100%) Successfully installed method_source-0.9.2 Fetching: railties-6.0.2.1.gem (100%) Successfully installed railties-6.0.2.1 Fetching: bundler-2.1.4.gem (100%) Successfully installed bundler-2.1.4 Fetching: sprockets-4.0.0.gem (100%) Successfully installed sprockets-4.0.0 Fetching: sprockets-rails-3.2.1.gem (100%) Successfully installed sprockets-rails-3.2.1 Fetching: rails-6.0.2.1.gem (100%) Successfully installed rails-6.0.2.1 Parsing documentation for nokogiri-1.10.7 Installing ri documentation for nokogiri-1.10.7 Parsing documentation for crass-1.0.6 Installing ri documentation for crass-1.0.6 Parsing documentation for loofah-2.4.0 Installing ri documentation for loofah-2.4.0 Parsing documentation for rails-html-sanitizer-1.3.0 Installing ri documentation for rails-html-sanitizer-1.3.0 Parsing documentation for rails-dom-testing-2.0.3 Installing ri documentation for rails-dom-testing-2.0.3 Parsing documentation for builder-3.2.4 Installing ri documentation for builder-3.2.4 Parsing documentation for erubi-1.9.0 Installing ri documentation for erubi-1.9.0 Parsing documentation for actionview-6.0.2.1 Installing ri documentation for actionview-6.0.2.1 Parsing documentation for actionpack-6.0.2.1 Installing ri documentation for actionpack-6.0.2.1 Parsing documentation for activemodel-6.0.2.1 Installing ri documentation for activemodel-6.0.2.1 Parsing documentation for activerecord-6.0.2.1 Installing ri documentation for activerecord-6.0.2.1 Parsing documentation for globalid-0.4.2 Installing ri documentation for globalid-0.4.2 Parsing documentation for activejob-6.0.2.1 Installing ri documentation for activejob-6.0.2.1 Parsing documentation for mini_mime-1.0.2 Installing ri documentation for mini_mime-1.0.2 Parsing documentation for mail-2.7.1 Installing ri documentation for mail-2.7.1 Parsing documentation for actionmailer-6.0.2.1 Installing ri documentation for actionmailer-6.0.2.1 Parsing documentation for nio4r-2.5.2 Installing ri documentation for nio4r-2.5.2 Parsing documentation for websocket-extensions-0.1.4 Installing ri documentation for websocket-extensions-0.1.4 Parsing documentation for websocket-driver-0.7.1 Installing ri documentation for websocket-driver-0.7.1 Parsing documentation for actioncable-6.0.2.1 Installing ri documentation for actioncable-6.0.2.1 Parsing documentation for mimemagic-0.3.4 Installing ri documentation for mimemagic-0.3.4 Parsing documentation for marcel-0.3.3 Installing ri documentation for marcel-0.3.3 Parsing documentation for activestorage-6.0.2.1 Installing ri documentation for activestorage-6.0.2.1 Parsing documentation for actionmailbox-6.0.2.1 Installing ri documentation for actionmailbox-6.0.2.1 Parsing documentation for actiontext-6.0.2.1 Installing ri documentation for actiontext-6.0.2.1 Parsing documentation for thor-1.0.1 Installing ri documentation for thor-1.0.1 Parsing documentation for method_source-0.9.2 Installing ri documentation for method_source-0.9.2 Parsing documentation for railties-6.0.2.1 Installing ri documentation for railties-6.0.2.1 Parsing documentation for bundler-2.1.4 Installing ri documentation for bundler-2.1.4 Parsing documentation for sprockets-4.0.0 Installing ri documentation for sprockets-4.0.0 Parsing documentation for sprockets-rails-3.2.1 Installing ri documentation for sprockets-rails-3.2.1 Parsing documentation for rails-6.0.2.1 Installing ri documentation for rails-6.0.2.1 Done installing documentation for nokogiri, crass, loofah, rails-html-sanitizer, rails-dom-testing, builder, erubi, actionview, actionpack, activemodel, activerecord, globalid, activejob, mini_mime, mail, actionmailer, nio4r, websocket-extensions, websocket-driver, actioncable, mimemagic, marcel, activestorage, actionmailbox, actiontext, thor, method_source, railties, bundler, sprockets, sprockets-rails, rails after 38 seconds 32 gems installed
2020-02-10
Redmine config
Looking through my main Redmine documentation, I saw mention of Redmine/rake, and the rake about
command which reports on what Rails frameworks are available. I figured that if nothing else, Rails needs to be available.
root@cloud1:~# rake about rake aborted! No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb) (See full trace by running task with --trace)
Okay, so maybe we need to be in Redmine's project folder...
root@cloud1:~# cd /home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1 root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1# rake about Please configure your config/database.yml first Could not find gem 'rails (= 5.2.4.1)' in any of the gem sources listed in your Gemfile. Run `bundle install` to install missing gems.
This feels a bit like skipping around arbitrarily, but maybe I should run bundle install
at this point?
Part of the problem may be that I installed Rails 6, but Redmine is apparently configured to demand 5.2.4.1 and nothing else...
root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1# bundle install Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application for all non-root users on this machine. Please configure your config/database.yml first Please configure your config/database.yml first The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32, x86-mswin32. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32`. The dependency ffi (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32, x86-mswin32. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32`. Fetching gem metadata from https://rubygems.org/.......... Fetching gem metadata from https://rubygems.org/. Resolving dependencies... Fetching rake 13.0.1 Installing rake 13.0.1 Using concurrent-ruby 1.1.5 Fetching i18n 1.6.0 Installing i18n 1.6.0 Fetching minitest 5.14.0 Installing minitest 5.14.0 Using thread_safe 0.3.6 Using tzinfo 1.2.6 Fetching activesupport 5.2.4.1 Installing activesupport 5.2.4.1 Using builder 3.2.4 Using erubi 1.9.0 Using mini_portile2 2.4.0 Using nokogiri 1.10.7 Using rails-dom-testing 2.0.3 Using crass 1.0.6 Using loofah 2.4.0 Using rails-html-sanitizer 1.3.0 Fetching actionview 5.2.4.1 Installing actionview 5.2.4.1 Using rack 2.2.1 Using rack-test 1.1.0 Fetching actionpack 5.2.4.1 Installing actionpack 5.2.4.1 Using nio4r 2.5.2 Using websocket-extensions 0.1.4 Using websocket-driver 0.7.1 Fetching actioncable 5.2.4.1 Installing actioncable 5.2.4.1 Using globalid 0.4.2 Fetching activejob 5.2.4.1 Installing activejob 5.2.4.1 Using mini_mime 1.0.2 Using mail 2.7.1 Fetching actionmailer 5.2.4.1 Installing actionmailer 5.2.4.1 Using method_source 0.9.2 Using thor 1.0.1 Fetching railties 5.2.4.1 Installing railties 5.2.4.1 Fetching actionpack-xml_parser 2.0.1 Installing actionpack-xml_parser 2.0.1 Fetching activemodel 5.2.4.1 Installing activemodel 5.2.4.1 Fetching arel 9.0.0 Installing arel 9.0.0 Fetching activerecord 5.2.4.1 Installing activerecord 5.2.4.1 Using mimemagic 0.3.4 Using marcel 0.3.3 Fetching activestorage 5.2.4.1 Installing activestorage 5.2.4.1 Fetching public_suffix 4.0.3 Installing public_suffix 4.0.3 Fetching addressable 2.7.0 Installing addressable 2.7.0 Fetching ast 2.4.0 Installing ast 2.4.0 Using bundler 2.1.4 Fetching regexp_parser 1.6.0 Installing regexp_parser 1.6.0 Fetching xpath 3.2.0 Installing xpath 3.2.0 Fetching capybara 3.25.0 Installing capybara 3.25.0 Fetching childprocess 3.0.0 Installing childprocess 3.0.0 Fetching css_parser 1.7.1 Installing css_parser 1.7.1 Fetching csv 3.1.2 Installing csv 3.1.2 Fetching docile 1.3.2 Installing docile 1.3.2 Fetching htmlentities 4.3.4 Installing htmlentities 4.3.4 Fetching jaro_winkler 1.5.4 Installing jaro_winkler 1.5.4 with native extensions Fetching json 2.3.0 Installing json 2.3.0 with native extensions Fetching mini_magick 4.9.5 Installing mini_magick 4.9.5 Fetching mocha 1.11.2 Installing mocha 1.11.2 Fetching net-ldap 0.16.2 Installing net-ldap 0.16.2 Fetching parallel 1.19.1 Installing parallel 1.19.1 Fetching parser 2.7.0.2 Installing parser 2.7.0.2 Fetching puma 3.12.2 Installing puma 3.12.2 with native extensions Fetching ruby-openid 2.9.2 Installing ruby-openid 2.9.2 Fetching rack-openid 1.4.2 Installing rack-openid 1.4.2 Using sprockets 4.0.0 Using sprockets-rails 3.2.1 Fetching rails 5.2.4.1 Installing rails 5.2.4.1 Fetching rainbow 3.0.0 Installing rainbow 3.0.0 Fetching rbpdf-font 1.19.1 Installing rbpdf-font 1.19.1 Fetching rbpdf 1.20.1 Installing rbpdf 1.20.1 Fetching redcarpet 3.5.0 Installing redcarpet 3.5.0 with native extensions Fetching request_store 1.4.1 Installing request_store 1.4.1 Fetching roadie 4.0.0 Installing roadie 4.0.0 Fetching roadie-rails 2.1.1 Installing roadie-rails 2.1.1 Fetching rouge 3.12.0 Installing rouge 3.12.0 Fetching ruby-progressbar 1.10.1 Installing ruby-progressbar 1.10.1 Fetching unicode-display_width 1.6.1 Installing unicode-display_width 1.6.1 Fetching rubocop 0.76.0 Installing rubocop 0.76.0 Fetching rubocop-performance 1.5.2 Installing rubocop-performance 1.5.2 Fetching rubocop-rails 2.3.2 Installing rubocop-rails 2.3.2 Fetching rubyzip 2.2.0 Installing rubyzip 2.2.0 Fetching selenium-webdriver 3.142.7 Installing selenium-webdriver 3.142.7 Fetching simplecov-html 0.10.2 Installing simplecov-html 0.10.2 Fetching simplecov 0.17.1 Installing simplecov 0.17.1 Fetching yard 0.9.24 Installing yard 0.9.24 Bundle complete! 30 Gemfile dependencies, 81 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed. Post-install message from i18n: HEADS UP! i18n 1.1 changed fallbacks to exclude default locale. But that may break your application. Please check your Rails app for 'config.i18n.fallbacks = true'. If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be 'config.i18n.fallbacks = [I18n.default_locale]'. If not, fallbacks will be broken in your app by I18n 1.1.x. For more info see: https://github.com/svenfuchs/i18n/releases/tag/v1.1.0
I don't get why "installing your bundle as root will break this application for all non-root users on this machine", since as far as I can tell they're always installed as root-owned. The old install on cloud4, which was done with apt, has /var/lib/gems
and all its contents owned by root, so I think that's the way it's supposed to be. Maybe the Gemfile gets root-owned? That'll get taken care of later when I re-chown the Redmine project folder (before trying to run it).
root@cloud1:~# cd /home/vbzo/domains/rm.vbz.ovh/site/svn/ root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn# ls -al total 12 drwxr-xr-x 3 vbzo vbzo 4096 Feb 10 15:50 . drwxr-xr-x 4 vbzo vbzo 4096 Feb 9 12:38 .. drwxr-xr-x 18 root root 4096 Feb 10 15:36 redmine-4.1 root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn# chown -R vbzo:vbzo redmine-4.1
Redmine folder setup
Removing the original public_html
folder because it's empty and I want to use Redmine's public
folder for that. I could point Apache directly at <redmine folder>/public
, but when given a choice I'll do things where reconfiguration does not require restarting anything.
root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn# cd redmine-4.1/ root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1# rmdir ../../../public_html/ root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1# ln -rs public ../../../public_html
2020-02-12
It remains unclear where Redmine (especially the new one) expects config files to be.
On cloud4 (old installation), configuration files are in /etc/redmine/default
, which is linked from the main project folder:
/usr/share/redmine/instances/default/config
is a link to
/etc/redmine/default
-- but where is it set that Redmine expects to see instance-configuration folders in <redmine-folder>/instances
? New Redmine doesn't have an instances folder.
Looking through the new install for anything that might be pointing at configuration files/folders, I found appveyor.yml
, but that seems to be part of something called AppVeyor which is some kind of continuous-integration service (i.e. part of Redmine's development process) and not part of installing or running an instance.
Skipping around a bit -- when I try to access the instance, I get this error:
This looked like an Apache error, so I checked Apache's error log and it seems to support this:
[Wed Feb 12 20:18:22.406987 2020] [autoindex:error] [pid 28388] [client 107.15.53.219:5345] AH01276: Cannot serve directory /home/vbzo/domains/rm.vbz.ovh/public_html/: No matching DirectoryIndex (index.html,index.htm,index.php) found, and server-generated directory index forbidden by Options directive
I had changed the DirectoryIndex
(in Apache's config for this domain) to dispatch.fcgi
, which evidence suggests is what Redmine uses for an index file, but the error suggests that Apache is still looking for index.* files.
I thought I had restarted Apache after making that change but apparently I hadn't, because restarting it resulted in a different error:
Looking for evidence of how Apache is supposed to be configured for .fcgi files... The new Redmine comes with a file called htaccess.fcgi.example
which one presumes is supposed to be renamed .htaccess (or maybe htaccess.fcgi
? and how would that get invoked?) but there are no instructions.
In any case, that file contains the code:
<IfModule mod_fastcgi.c> AddHandler fastcgi-script .fcgi </IfModule> <IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi </IfModule>
Meanwhile, the site-config on cloud4 (old server) has this:
Options +ExecCGI
AddHandler cgi-script .fcgi
DirectoryIndex dispatch.fcgi
# RAILS-SPECIFIC STUFF
RailsBaseURI /
PassengerUser vbz-net
I copied those lines into the site-config on cloud1 (new server), but Apache didn't like them. Investigation revealed that
RailsBaseURI
is the first problem -- presumably Rails directives aren't being recognized because Apache needs a Rails module enabled.
Disabling those two lines for now leaves us with this in the Apache error log:
[Thu Feb 13 01:03:23.890549 2020] [cgi:error] [pid 5631] [client 107.15.53.219:55937] AH01215: Please configure your config/database.yml first: /home/vbzo/domains/rm.vbz.ovh/public_html/dispatch.fcgi
This is at least a clue towards the "where should the config files go" question.
At that point I copied the two .example
files to new names:
configuration.yml.example
→configuration.yml
database.yml.example
→database.yml
I still don't know where they are supposed to go, but now maybe I have a test to see if they're in the right place? I've put the renamed copies in the same folder as the original example files.
2020-02-13
part 1
I'd imported the Redmine database earlier but not created a user for it; did that now, and configured database.yml
with the appropriate credentials. I now get this error in Apache's log:
[Thu Feb 13 14:37:21.489459 2020] [cgi:error] [pid 1539] [client 107.15.53.219:29345] AH01215: /var/lib/gems/2.5.0/gems/bundler-2.1.4/lib/bundler/resolver.rb:290:in `block in verify_gemfile_dependencies_are_found!': /home/vbzo/domains/rm.vbz.ovh/public_html/dispatch.fcgi [Thu Feb 13 14:37:21.489940 2020] [cgi:error] [pid 1539] [client 107.15.53.219:29345] AH01215: : Could not find gem 'mysql2 (~> 0.5.0)' in any of the gem sources listed in your Gemfile. (Bundler::GemNotFound): /home/vbzo/domains/rm.vbz.ovh/public_html/dispatch.fcgi
followed by what looks like an execution-stack trace.
I think this means I need to install the mysql2
gem, which I think I might know how to do.
part 2
I'm testing a theory about why gem
sometimes complains about being run as root, so I ran it as root:
root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1# gem install mysql2 Fetching: mysql2-0.5.3.gem (100%) Building native extensions. This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. current directory: /var/lib/gems/2.5.0/gems/mysql2-0.5.3/ext/mysql2 /usr/bin/ruby2.5 -r ./siteconf20200213-8027-8ztdkh.rb extconf.rb checking for rb_absint_size()... yes checking for rb_absint_singlebit_p()... yes checking for rb_wait_for_single_fd()... yes checking for -lmysqlclient... no ----- mysql client is missing. You may need to 'sudo apt-get install libmariadb-dev', 'sudo apt-get install libmysqlclient-dev' or 'sudo yum install mysql-devel', and try again. ----- *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/usr/bin/$(RUBY_BASE_NAME)2.5 --with-mysql-dir --without-mysql-dir --with-mysql-include --without-mysql-include=${mysql-dir}/include --with-mysql-lib --without-mysql-lib=${mysql-dir}/lib --with-mysql-config --without-mysql-config --with-mysql-dir --without-mysql-dir --with-mysql-include --without-mysql-include=${mysql-dir}/include --with-mysql-lib --without-mysql-lib=${mysql-dir}/lib --with-mysqlclientlib --without-mysqlclientlib To see why this extension failed to compile, please check the mkmf.log which can be found here: /var/lib/gems/2.5.0/extensions/x86_64-linux/2.5.0/mysql2-0.5.3/mkmf.log extconf failed, exit code 1 Gem files will remain installed in /var/lib/gems/2.5.0/gems/mysql2-0.5.3 for inspection. Results logged to /var/lib/gems/2.5.0/extensions/x86_64-linux/2.5.0/mysql2-0.5.3/gem_make.out
Looking at mkmf.log, the key seems to be lines ending in "-------------------- <yes/no>", where the first and only "no" line is:
find_library: checking for -lmysqlclient... -------------------- no
So presumably I need to install lmysqlclient. (From apt, I hope?)
part 3
This article suggested that the package might be called libmysqlclient-dev
, so I searched apt
for "libmysql" and found default-libmysqlclient-dev
, which I installed.
I then tried gem install again:
root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1# gem install mysql2 Building native extensions. This could take a while... Successfully installed mysql2-0.5.3 Parsing documentation for mysql2-0.5.3 Installing ri documentation for mysql2-0.5.3 Done installing documentation for mysql2 after 0 seconds 1 gem installed
...and all appears right with the world.
part 4a
Now what error do we get?
[Thu Feb 13 19:19:58.871510 2020] [cgi:error] [pid 28015] [client 107.15.53.219:7649] AH01215: /var/lib/gems/2.5.0/gems/yard-0.9.24/lib/yard/config.rb:95:in `expand_path': couldn't find login name -- expanding `~' (ArgumentError): /home/vbzo/domains/rm.vbz.ovh/public_html/dispatch.fcgi
part 4b
Experimentation determined that Apache was not setting the $HOME
environment variable, which was probably causing this failure. After some futzing around it finally dawned on me that this is probably what those two Rails-specific Apache directives --
# RAILS-SPECIFIC STUFF RailsBaseURI / PassengerUser vbzo
-- which I had commented out -- were intended to remedy. It therefore was necessary to install whatever thing made it possible for Apache to recognize them, which turns out to be Phusion Passenger.
False start: I initially tried installing them from apt
, but this led to an error about bundler being too old (despite the bundler gem being of the needed version, 2.14, where the requirement was at least version 2.
After some further dead-end futzing around, I realized that installing Passenger from apt had probably brought in a bunch of outdated stuff including bundler, so all that needed to go away and Passenger needed to be installed from a current source:
dirmngr is already the newest version (2.2.4-1ubuntu1.2).
gnupg is already the newest version (2.2.4-1ubuntu1.2).
root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7 Executing: /tmp/apt-key-gpghome.XfUnaZCAKM/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7 gpg: key 561F9B9CAC40B2F7: 2 signatures not checked due to missing keys gpg: key 561F9B9CAC40B2F7: public key "Phusion Automated Software Signing (Used by automated tools to sign software packages) <auto-software-signing@phusion.nl>" imported gpg: Total number processed: 1 gpg: imported: 1 root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1# apt-get install -y apt-transport-https ca-certificates
Setting up apt-transport-https (1.6.12) ...
Then...
sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger bionic main > /etc/apt/sources.list.d/passenger.list'
...and then...
root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1# apt update Hit:1 http://mirrors.digitalocean.com/ubuntu bionic InRelease Get:2 http://mirrors.digitalocean.com/ubuntu bionic-updates InRelease [88.7 kB] Hit:3 https://deb.nodesource.com/node_11.x bionic InRelease Hit:4 http://software.virtualmin.com/vm/6/gpl/apt virtualmin-bionic InRelease Hit:5 http://software.virtualmin.com/vm/6/gpl/apt virtualmin-universal InRelease Get:6 http://mirrors.digitalocean.com/ubuntu bionic-backports InRelease [74.6 kB] Get:7 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] Hit:8 http://archive.ubuntu.com/ubuntu bionic InRelease Ign:9 https://oss-binaries.phusionpassenger.com/apt/passenger bionic InRelease Get:10 https://oss-binaries.phusionpassenger.com/apt/passenger bionic Release [22.8 kB] Get:11 https://oss-binaries.phusionpassenger.com/apt/passenger bionic Release.gpg [819 B] Get:12 https://oss-binaries.phusionpassenger.com/apt/passenger bionic/main amd64 Packages [14.5 kB] Fetched 290 kB in 1s (219 kB/s) Reading package lists... Done Building dependency tree Reading state information... Done 2 packages can be upgraded. Run 'apt list --upgradable' to see them. root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1# apt upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages were automatically installed and are no longer required: gyp libc-ares2 libhttp-parser2.7.1 libjs-async libjs-coffeescript libjs-inherits libjs-node-uuid libjs-source-map libjs-uglify libjs-underscore libuv1-dev node-abbrev node-ansi node-ansi-color-table node-archy node-async node-balanced-match node-block-stream node-brace-expansion node-builtin-modules node-combined-stream node-concat-map node-cookie-jar node-delayed-stream node-forever-agent node-form-data node-fs.realpath node-fstream node-fstream-ignore node-github-url-from-git node-glob node-graceful-fs node-gyp node-hosted-git-info node-inflight node-inherits node-ini node-is-builtin-module node-isexe node-json-stringify-safe node-lockfile node-lru-cache node-mime node-minimatch node-mkdirp node-mute-stream node-node-uuid node-nopt node-normalize-package-data node-npmlog node-once node-osenv node-path-is-absolute node-pseudomap node-qs node-read node-read-package-json node-request node-retry node-rimraf node-semver node-sha node-slide node-spdx-correct node-spdx-expression-parse node-spdx-license-ids node-tar node-tunnel-agent node-underscore node-validate-npm-package-license node-which node-wrappy node-yallist nodejs-doc python-pkg-resources ruby-actionmailer ruby-actionpack ruby-actionview ruby-activejob ruby-activemodel ruby-activerecord ruby-activesupport ruby-arel ruby-atomic ruby-binding-of-caller ruby-blankslate ruby-builder ruby-byebug ruby-coffee-rails ruby-coffee-script ruby-coffee-script-source ruby-columnize ruby-concurrent ruby-crass ruby-debug-inspector ruby-erubis ruby-execjs ruby-ffi ruby-globalid ruby-hike ruby-i18n ruby-jbuilder ruby-jquery-rails ruby-json ruby-listen ruby-loofah ruby-mail ruby-mime-types ruby-mime-types-data ruby-molinillo ruby-multi-json ruby-net-http-persistent ruby-nokogiri ruby-oj ruby-pkg-config ruby-polyglot ruby-rack-test ruby-rails-deprecated-sanitizer ruby-rails-dom-testing ruby-rails-html-sanitizer ruby-railties ruby-rb-inotify ruby-sass ruby-sass-rails ruby-sdoc ruby-spring ruby-sprockets ruby-sprockets-rails ruby-sqlite3 ruby-thor ruby-thread-safe ruby-tilt ruby-treetop ruby-turbolinks ruby-tzinfo ruby-uglifier ruby-web-console Use 'apt autoremove' to remove them. The following NEW packages will be installed: passenger-dev passenger-doc The following packages will be upgraded: libapache2-mod-passenger passenger 2 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 7283 kB of archives. After this operation, 50.9 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 https://oss-binaries.phusionpassenger.com/apt/passenger bionic/main amd64 libapache2-mod-passenger amd64 1:6.0.4-1~bionic1 [418 kB] Get:2 https://oss-binaries.phusionpassenger.com/apt/passenger bionic/main amd64 passenger amd64 1:6.0.4-1~bionic1 [2322 kB] Get:3 https://oss-binaries.phusionpassenger.com/apt/passenger bionic/main amd64 passenger-dev amd64 1:6.0.4-1~bionic1 [4506 kB] Get:4 https://oss-binaries.phusionpassenger.com/apt/passenger bionic/main amd64 passenger-doc all 1:6.0.4-1~bionic1 [36.6 kB] Fetched 7283 kB in 2s (3386 kB/s) (Reading database ... 208400 files and directories currently installed.) Preparing to unpack .../libapache2-mod-passenger_1%3a6.0.4-1~bionic1_amd64.deb ... Unpacking libapache2-mod-passenger (1:6.0.4-1~bionic1) over (5.0.30-1+deb9u1build0.18.04.1) ... Preparing to unpack .../passenger_1%3a6.0.4-1~bionic1_amd64.deb ... Unpacking passenger (1:6.0.4-1~bionic1) over (5.0.30-1+deb9u1build0.18.04.1) ... Selecting previously unselected package passenger-dev. Preparing to unpack .../passenger-dev_1%3a6.0.4-1~bionic1_amd64.deb ... Unpacking passenger-dev (1:6.0.4-1~bionic1) ... Selecting previously unselected package passenger-doc. Preparing to unpack .../passenger-doc_1%3a6.0.4-1~bionic1_all.deb ... Unpacking passenger-doc (1:6.0.4-1~bionic1) ... Setting up passenger (1:6.0.4-1~bionic1) ... Setting up passenger-doc (1:6.0.4-1~bionic1) ... Setting up passenger-dev (1:6.0.4-1~bionic1) ... Setting up libapache2-mod-passenger (1:6.0.4-1~bionic1) ... Installing new version of config file /etc/apache2/mods-available/passenger.conf ... Installing new version of config file /etc/apache2/mods-available/passenger.load ... Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
So passenger-dev
and passenger-doc
were already there but upgraded. Running apt install passenger
just confirmed that everything we want was already installed and upgraded. But, aha, there's a validation program included! (I had to manually select "Apache", else it defaulted to just checking Passenger.)
root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1# /usr/bin/passenger-config validate-install What would you like to validate? Use <space> to select. If the menu doesn't display correctly, press '!' ⬢ Passenger itself ‣ ⬢ Apache ------------------------------------------------------------------------- * Checking whether this Passenger install is in PATH... ✓ * Checking whether there are no other Passenger installations... ✓ * Checking whether Apache is installed... ✗ Unable to validate your Apache installation: more software required This program requires the apxs2 tool in order to be able to validate your Apache installation. This tool is currently not installed. You can solve this as follows: Please install it with apt-get install apache2-dev When done, please re-run this program. Detected 1 error(s), 0 warning(s).
Okay, so hopefully the apache2-dev
package from apt doesn't bring in any unwanted old versions...
root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1# apt install apache2-dev Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: autoconf automake autopoint autotools-dev debhelper dh-autoreconf dh-strip-nondeterminism gettext intltool-debian libapr1-dev libaprutil1-dev libarchive-cpio-perl libarchive-zip-perl libcroco3 libexpat1-dev libfile-stripnondeterminism-perl libldap2-dev libltdl-dev libsctp-dev libsctp1 libtool m4 po-debconf uuid-dev Suggested packages: autoconf-archive gnu-standards autoconf-doc dh-make dwz gettext-doc libasprintf-dev libgettextpo-dev libtool-doc lksctp-tools gfortran | fortran95-compiler gcj-jdk m4-doc libmail-box-perl The following NEW packages will be installed: apache2-dev autoconf automake autopoint autotools-dev debhelper dh-autoreconf dh-strip-nondeterminism gettext intltool-debian libapr1-dev libaprutil1-dev libarchive-cpio-perl libarchive-zip-perl libcroco3 libexpat1-dev libfile-stripnondeterminism-perl libldap2-dev libltdl-dev libsctp-dev libsctp1 libtool m4 po-debconf uuid-dev 0 upgraded, 25 newly installed, 0 to remove and 0 not upgraded. Need to get 6257 kB of archives. After this operation, 33.8 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://mirrors.digitalocean.com/ubuntu bionic-updates/main amd64 uuid-dev amd64 2.31.1-0.4ubuntu3.5 [33.2 kB] Get:2 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 libsctp1 amd64 1.0.17+dfsg-2 [8008 B] Get:3 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 libsctp-dev amd64 1.0.17+dfsg-2 [61.9 kB] Get:4 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 libapr1-dev amd64 1.6.3-2 [690 kB] Get:5 http://mirrors.digitalocean.com/ubuntu bionic-updates/main amd64 libldap2-dev amd64 2.4.45+dfsg-1ubuntu1.4 [262 kB] Get:6 http://mirrors.digitalocean.com/ubuntu bionic-updates/main amd64 libexpat1-dev amd64 2.2.5-3ubuntu0.2 [122 kB] Get:7 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 libaprutil1-dev amd64 1.6.1-2 [391 kB] Get:8 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 autotools-dev all 20180224.1 [39.6 kB] Get:9 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 m4 amd64 1.4.18-1 [197 kB] Get:10 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 autoconf all 2.69-11 [322 kB] Get:11 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 automake all 1:1.15.1-3ubuntu2 [509 kB] Get:12 http://mirrors.digitalocean.com/ubuntu bionic-updates/main amd64 autopoint all 0.19.8.1-6ubuntu0.3 [426 kB] Get:13 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 libtool all 2.4.6-2 [194 kB] Get:14 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 dh-autoreconf all 17 [15.8 kB] Get:15 http://mirrors.digitalocean.com/ubuntu bionic-updates/main amd64 libarchive-zip-perl all 1.60-1ubuntu0.1 [84.6 kB] Get:16 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 libfile-stripnondeterminism-perl all 0.040-1.1~build1 [13.8 kB] Get:17 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 dh-strip-nondeterminism all 0.040-1.1~build1 [5208 B] Get:18 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 libcroco3 amd64 0.6.12-2 [81.3 kB] Get:19 http://mirrors.digitalocean.com/ubuntu bionic-updates/main amd64 gettext amd64 0.19.8.1-6ubuntu0.3 [1293 kB] Get:20 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 intltool-debian all 0.35.0+20060710.4 [24.9 kB] Get:21 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 po-debconf all 1.0.20 [232 kB] Get:22 http://mirrors.digitalocean.com/ubuntu bionic-updates/main amd64 debhelper all 11.1.6ubuntu2 [902 kB] Get:23 http://mirrors.digitalocean.com/ubuntu bionic-updates/main amd64 apache2-dev amd64 2.4.29-1ubuntu4.11 [177 kB] Get:24 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 libarchive-cpio-perl all 0.10-1 [9644 B] Get:25 http://mirrors.digitalocean.com/ubuntu bionic/main amd64 libltdl-dev amd64 2.4.6-2 [162 kB] Fetched 6257 kB in 2s (3281 kB/s) Selecting previously unselected package uuid-dev:amd64. (Reading database ... 204093 files and directories currently installed.) Preparing to unpack .../00-uuid-dev_2.31.1-0.4ubuntu3.5_amd64.deb ... Unpacking uuid-dev:amd64 (2.31.1-0.4ubuntu3.5) ... Selecting previously unselected package libsctp1:amd64. Preparing to unpack .../01-libsctp1_1.0.17+dfsg-2_amd64.deb ... Unpacking libsctp1:amd64 (1.0.17+dfsg-2) ... Selecting previously unselected package libsctp-dev:amd64. Preparing to unpack .../02-libsctp-dev_1.0.17+dfsg-2_amd64.deb ... Unpacking libsctp-dev:amd64 (1.0.17+dfsg-2) ... Selecting previously unselected package libapr1-dev. Preparing to unpack .../03-libapr1-dev_1.6.3-2_amd64.deb ... Unpacking libapr1-dev (1.6.3-2) ... Selecting previously unselected package libldap2-dev:amd64. Preparing to unpack .../04-libldap2-dev_2.4.45+dfsg-1ubuntu1.4_amd64.deb ... Unpacking libldap2-dev:amd64 (2.4.45+dfsg-1ubuntu1.4) ... Selecting previously unselected package libexpat1-dev:amd64. Preparing to unpack .../05-libexpat1-dev_2.2.5-3ubuntu0.2_amd64.deb ... Unpacking libexpat1-dev:amd64 (2.2.5-3ubuntu0.2) ... Selecting previously unselected package libaprutil1-dev. Preparing to unpack .../06-libaprutil1-dev_1.6.1-2_amd64.deb ... Unpacking libaprutil1-dev (1.6.1-2) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../07-autotools-dev_20180224.1_all.deb ... Unpacking autotools-dev (20180224.1) ... Selecting previously unselected package m4. Preparing to unpack .../08-m4_1.4.18-1_amd64.deb ... Unpacking m4 (1.4.18-1) ... Selecting previously unselected package autoconf. Preparing to unpack .../09-autoconf_2.69-11_all.deb ... Unpacking autoconf (2.69-11) ... Selecting previously unselected package automake. Preparing to unpack .../10-automake_1%3a1.15.1-3ubuntu2_all.deb ... Unpacking automake (1:1.15.1-3ubuntu2) ... Selecting previously unselected package autopoint. Preparing to unpack .../11-autopoint_0.19.8.1-6ubuntu0.3_all.deb ... Unpacking autopoint (0.19.8.1-6ubuntu0.3) ... Selecting previously unselected package libtool. Preparing to unpack .../12-libtool_2.4.6-2_all.deb ... Unpacking libtool (2.4.6-2) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../13-dh-autoreconf_17_all.deb ... Unpacking dh-autoreconf (17) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../14-libarchive-zip-perl_1.60-1ubuntu0.1_all.deb ... Unpacking libarchive-zip-perl (1.60-1ubuntu0.1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../15-libfile-stripnondeterminism-perl_0.040-1.1~build1_all.deb ... Unpacking libfile-stripnondeterminism-perl (0.040-1.1~build1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../16-dh-strip-nondeterminism_0.040-1.1~build1_all.deb ... Unpacking dh-strip-nondeterminism (0.040-1.1~build1) ... Selecting previously unselected package libcroco3:amd64. Preparing to unpack .../17-libcroco3_0.6.12-2_amd64.deb ... Unpacking libcroco3:amd64 (0.6.12-2) ... Selecting previously unselected package gettext. Preparing to unpack .../18-gettext_0.19.8.1-6ubuntu0.3_amd64.deb ... Unpacking gettext (0.19.8.1-6ubuntu0.3) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../19-intltool-debian_0.35.0+20060710.4_all.deb ... Unpacking intltool-debian (0.35.0+20060710.4) ... Selecting previously unselected package po-debconf. Preparing to unpack .../20-po-debconf_1.0.20_all.deb ... Unpacking po-debconf (1.0.20) ... Selecting previously unselected package debhelper. Preparing to unpack .../21-debhelper_11.1.6ubuntu2_all.deb ... Unpacking debhelper (11.1.6ubuntu2) ... Selecting previously unselected package apache2-dev. Preparing to unpack .../22-apache2-dev_2.4.29-1ubuntu4.11_amd64.deb ... Unpacking apache2-dev (2.4.29-1ubuntu4.11) ... Selecting previously unselected package libarchive-cpio-perl. Preparing to unpack .../23-libarchive-cpio-perl_0.10-1_all.deb ... Unpacking libarchive-cpio-perl (0.10-1) ... Selecting previously unselected package libltdl-dev:amd64. Preparing to unpack .../24-libltdl-dev_2.4.6-2_amd64.deb ... Unpacking libltdl-dev:amd64 (2.4.6-2) ... Setting up libldap2-dev:amd64 (2.4.45+dfsg-1ubuntu1.4) ... Setting up libarchive-zip-perl (1.60-1ubuntu0.1) ... Setting up libltdl-dev:amd64 (2.4.6-2) ... Setting up libsctp1:amd64 (1.0.17+dfsg-2) ... Setting up libarchive-cpio-perl (0.10-1) ... Setting up uuid-dev:amd64 (2.31.1-0.4ubuntu3.5) ... Setting up m4 (1.4.18-1) ... Setting up libcroco3:amd64 (0.6.12-2) ... Setting up autotools-dev (20180224.1) ... Setting up libexpat1-dev:amd64 (2.2.5-3ubuntu0.2) ... Setting up autopoint (0.19.8.1-6ubuntu0.3) ... Setting up libfile-stripnondeterminism-perl (0.040-1.1~build1) ... Setting up libtool (2.4.6-2) ... Setting up libsctp-dev:amd64 (1.0.17+dfsg-2) ... Setting up libapr1-dev (1.6.3-2) ... Setting up gettext (0.19.8.1-6ubuntu0.3) ... Setting up libaprutil1-dev (1.6.1-2) ... Setting up autoconf (2.69-11) ... Setting up intltool-debian (0.35.0+20060710.4) ... Setting up automake (1:1.15.1-3ubuntu2) ... update-alternatives: using /usr/bin/automake-1.15 to provide /usr/bin/automake (automake) in auto mode Setting up po-debconf (1.0.20) ... Setting up dh-autoreconf (17) ... Setting up dh-strip-nondeterminism (0.040-1.1~build1) ... Setting up debhelper (11.1.6ubuntu2) ... Setting up apache2-dev (2.4.29-1ubuntu4.11) ... Processing triggers for install-info (6.5.0.dfsg.1-2) ... Processing triggers for libc-bin (2.27-3ubuntu1) ... Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
None of that looks like anything I was running afoul of before. So.
root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1# /usr/bin/passenger-config validate-install What would you like to validate? Use <space> to select. If the menu doesn't display correctly, press '!' ⬢ Passenger itself ‣ ⬢ Apache ------------------------------------------------------------------------- Checking whether there are multiple Apache installations... Only a single installation detected. This is good. ------------------------------------------------------------------------- * Checking whether this Passenger install is in PATH... ✓ * Checking whether there are no other Passenger installations... ✓ * Checking whether Apache is installed... ✓ * Checking whether the Passenger module is correctly configured in Apache... ✓ Everything looks good. :-)
I restarted Apache, but it didn't seem to make any difference; still getting the same error, although the form has changed slightly:
[Thu Feb 13 21:53:57.611810 2020] [cgi:error] [pid 3113] [client 107.15.53.219:31393] AH01215: /var/lib/gems/2.5.0/gems/yard-0.9.24/lib/yard/config.rb:95:in `expand_path': /home/vbzo/domains/rm.vbz.ovh/public_html/dispatch.fcgi [Thu Feb 13 21:53:57.611875 2020] [cgi:error] [pid 3113] [client 107.15.53.219:31393] AH01215: : : /home/vbzo/domains/rm.vbz.ovh/public_html/dispatch.fcgi [Thu Feb 13 21:53:57.611911 2020] [cgi:error] [pid 3113] [client 107.15.53.219:31393] AH01215: couldn't find login name -- expanding `~': /home/vbzo/domains/rm.vbz.ovh/public_html/dispatch.fcgi
I confirmed that the error means what I think it means by putting this line right before config.rb line 95:
system("echo HOME IS [$HOME]")
This returns malformed header from script 'dispatch.fcgi': Bad header: HOME IS []
as expected.
Googling the current version of the error message, I found that someone had fixed the problem like this (forgot to save the link, but there's a more compact version here) - inserted before the debug line:
# The HOME environment variable is important when invoking Bolt. If HOME is not
# already set, set it.
if ENV['HOME'].nil?
require 'etc'
ENV['HOME'] = Etc.getpwuid.dir
end
("require 'etc' apparently refers to the Ruby Etc module.) The debug line now outputs HOME IS [/home/vbzo]
, so that seems like it's working and I commented out the debug line.
Next error:
[Thu Feb 13 22:09:03.093211 2020] [cgi:error] [pid 8348] [client 107.15.53.219:61505] AH01215: /var/lib/gems/2.5.0/gems/activerecord-5.2.4.1/lib/active_record/connection_adapters/connection_specification.rb:260:in `resolve_symbol_connection': 'development' database is not configured. Available: ["production"] (ActiveRecord::AdapterNotSpecified): /home/vbzo/domains/rm.vbz.ovh/public_html/dispatch.fcgi
I don't know why it insists on having a development database when I'm not doing development (the above debugging and patching aside); I copied the production db specs to the development db section.
Next error:
[Thu Feb 13 22:12:21.144585 2020] [cgi:error] [pid 3108] [client 107.15.53.219:3585] AH01215: /var/lib/gems/2.5.0/gems/activesupport-5.2.4.1/lib/active_support/dependencies.rb:291:in `require': cannot load such file -- fcgi (LoadError): /home/vbzo/domains/rm.vbz.ovh/public_html/dispatch.fcgi
part 5
Following instructions here, I created a Gemfile.local
with the contents given, and now the error is:
[Thu Feb 13 22:39:30.995554 2020] [cgi:error] [pid 12890] [client 107.15.53.219:48801] AH01215: /var/lib/gems/2.5.0/gems/bundler-2.1.4/lib/bundler/resolver.rb:290:in `block in verify_gemfile_dependencies_are_found!': Could not find gem 'fcgi' in any of the gem sources listed in your Gemfile. (Bundler::GemNotFound): /home/vbzo/domains/rm.vbz.ovh/public_html/dispatch.fcgi [Thu Feb 13 22:39:30.995813 2020] [cgi:error] [pid 12890] [client 107.15.53.219:48801] AH01215: \tfrom /var/lib/gems/2.5.0/gems/bundler-2.1.4/lib/bundler/resolver.rb:258:in `each': /home/vbzo/domains/rm.vbz.ovh/public_html/dispatch.fcgi
Could it be this simple?
root@cloud1:/home/vbzo/domains/rm.vbz.ovh/site/svn/redmine-4.1# gem install fcgi Fetching: fcgi-0.9.2.1.gem (100%) Building native extensions. This could take a while... Successfully installed fcgi-0.9.2.1 Parsing documentation for fcgi-0.9.2.1 Installing ri documentation for fcgi-0.9.2.1 Done installing documentation for fcgi after 0 seconds 1 gem installed
At first I thought the error message was unchanged, but then I realized the timestamp I was looking at was the same as before. Apparently these are now the most recent messages:
[Thu Feb 13 22:39:31.000685 2020] [cgi:error] [pid 12890] [client 107.15.53.219:48801] End of script output before headers: dispatch.fcgi [Thu Feb 13 22:46:09.129183 2020] [cgi:error] [pid 14546] [client 107.15.53.219:62561] End of script output before headers: dispatch.fcgi
...and, like, what is actually the problem there? This is not helpful.
part 6
vbzo@cloud1:~/domains/rm.vbz.ovh/site/svn/redmine-4.1$ rake db:migrate == 20160404080304 ForcePasswordResetDuringSetup: migrating ==================== == 20160404080304 ForcePasswordResetDuringSetup: migrated (0.0490s) =========== == 20160416072926 RemovePositionDefaults: migrating =========================== -- change_column("boards", :position, :integer, {:default=>nil}) -> 0.0054s -- change_column("custom_fields", :position, :integer, {:default=>nil}) -> 0.0056s -- change_column("enumerations", :position, :integer, {:default=>nil}) -> 0.0210s -- change_column("issue_statuses", :position, :integer, {:default=>nil}) -> 0.0052s -- change_column("roles", :position, :integer, {:default=>nil}) -> 0.0052s -- change_column("trackers", :position, :integer, {:default=>nil}) -> 0.0045s == 20160416072926 RemovePositionDefaults: migrated (0.0826s) ================== == 20160529063352 AddRolesSettings: migrating ================================= -- add_column(:roles, :settings, :text, {}) -> 0.0550s == 20160529063352 AddRolesSettings: migrated (0.0552s) ======================== == 20161001122012 AddTrackerIdIndexToWorkflows: migrating ===================== -- add_index(:workflows, :tracker_id) -> 0.0183s == 20161001122012 AddTrackerIdIndexToWorkflows: migrated (0.0185s) ============ == 20161002133421 AddIndexOnMemberRolesInheritedFrom: migrating =============== -- add_index(:member_roles, :inherited_from) -> 0.0203s == 20161002133421 AddIndexOnMemberRolesInheritedFrom: migrated (0.0205s) ====== == 20161010081301 ChangeIssuesDescriptionLimit: migrating ===================== -- change_column(:issues, :description, :text, {:limit=>16777216}) -> 0.0829s == 20161010081301 ChangeIssuesDescriptionLimit: migrated (0.0830s) ============ == 20161010081528 ChangeJournalDetailsValueLimit: migrating =================== -- change_column(:journal_details, :value, :text, {:limit=>16777216}) -> 0.0388s -- change_column(:journal_details, :old_value, :text, {:limit=>16777216}) -> 0.0443s == 20161010081528 ChangeJournalDetailsValueLimit: migrated (0.0833s) ========== == 20161010081600 ChangeJournalsNotesLimit: migrating ========================= -- change_column(:journals, :notes, :text, {:limit=>16777216}) -> 0.0548s == 20161010081600 ChangeJournalsNotesLimit: migrated (0.0553s) ================ == 20161126094932 AddIndexOnChangesetsIssuesIssueId: migrating ================ -- add_index(:changesets_issues, :issue_id) -> 0.0108s == 20161126094932 AddIndexOnChangesetsIssuesIssueId: migrated (0.0113s) ======= == 20161220091118 AddIndexOnIssuesParentId: migrating ========================= -- add_index(:issues, :parent_id) -> 0.0188s == 20161220091118 AddIndexOnIssuesParentId: migrated (0.0192s) ================ == 20170207050700 AddIndexOnDiskFilenameToAttachments: migrating ============== -- add_index(:attachments, :disk_filename) -> 0.0156s == 20170207050700 AddIndexOnDiskFilenameToAttachments: migrated (0.0161s) ===== == 20170302015225 ChangeAttachmentsDigestLimitTo64: migrating ================= -- change_column(:attachments, :digest, :string, {:limit=>64}) -> 0.0063s == 20170302015225 ChangeAttachmentsDigestLimitTo64: migrated (0.0066s) ======== == 20170309214320 AddProjectDefaultAssignedToId: migrating ==================== -- add_column(:projects, :default_assigned_to_id, :integer, {:default=>nil}) -> 0.0541s -- column_exists?(:projects, :default_assignee_id, :integer) -> 0.0015s == 20170309214320 AddProjectDefaultAssignedToId: migrated (0.0566s) =========== == 20170320051650 ChangeRepositoriesExtraInfoLimit: migrating ================= -- change_column(:repositories, :extra_info, :text, {:limit=>16777216}) -> 0.0313s == 20170320051650 ChangeRepositoriesExtraInfoLimit: migrated (0.0321s) ======== == 20170418090031 AddViewNewsToAllExistingRoles: migrating ==================== == 20170418090031 AddViewNewsToAllExistingRoles: migrated (0.8994s) =========== == 20170419144536 AddViewMessagesToAllExistingRoles: migrating ================ == 20170419144536 AddViewMessagesToAllExistingRoles: migrated (0.0220s) ======= == 20170723112801 RenameCommentsToContent: migrating ========================== -- rename_column(:comments, :comments, :content) -> 0.0081s == 20170723112801 RenameCommentsToContent: migrated (0.0084s) ================= == 20180501132547 AddAuthorIdToTimeEntries: migrating ========================= -- add_column(:time_entries, :author_id, :integer, {:default=>nil, :after=>:project_id}) -> 0.0553s == 20180501132547 AddAuthorIdToTimeEntries: migrated (0.0675s) ================ == 20180913072918 AddVerifyPeerToAuthSources: migrating ======================= -- change_table(:auth_sources) -> 0.0196s == 20180913072918 AddVerifyPeerToAuthSources: migrated (0.0199s) ============== == 20180923082945 ChangeSqliteBooleansTo0And1: migrating ====================== == 20180923082945 ChangeSqliteBooleansTo0And1: migrated (0.0000s) ============= == 20180923091603 ChangeSqliteBooleansDefault: migrating ====================== == 20180923091603 ChangeSqliteBooleansDefault: migrated (0.0000s) ============= == 20190315094151 ChangeCustomValuesValueLimit: migrating ===================== -- change_column(:custom_values, :value, :text, {:limit=>16777216}) -> 0.0267s == 20190315094151 ChangeCustomValuesValueLimit: migrated (0.0271s) ============ == 20190315102101 AddTrackersDescription: migrating =========================== -- add_column(:trackers, :description, :string, {:after=>:name}) -> 0.0509s == 20190315102101 AddTrackersDescription: migrated (0.0515s) ================== == 20190510070108 AddUniqueIdToImportItems: migrating ========================= -- change_table(:import_items) -> 0.0289s == 20190510070108 AddUniqueIdToImportItems: migrated (0.0295s) ================ == 20190620135549 ChangeRolesNameLimit: migrating ============================= -- change_column(:roles, :name, :string, {:limit=>255, :default=>""}) -> 0.0249s == 20190620135549 ChangeRolesNameLimit: migrated (0.0254s) ====================
So, something is working... but still getting the 500 error and End of script output before headers: dispatch.fcgi
.