Ticket #691 (closed task: fixed)
Upgrade Wagn hosting for patterns site
Reported by: | chris | Owned by: | chris |
---|---|---|---|
Priority: | major | Milestone: | Maintenance |
Component: | Wagn | Keywords: | |
Cc: | ed | Estimated Number of Hours: | 0.0 |
Add Hours to Ticket: | 0 | Billable?: | yes |
Total Hours: | 10.1 |
Description (last modified by chris) (diff)
The http://patterns.transitionresearchnetwork.org/ site is running using a development set up and the webrick server falls over every now and then, so the plan is to upgrade to a production style setup.
References:
- ticket:635 webrick server problems
- wiki:TransitionResearchWagn documentation
- ticket:561 the last install
- http://wagn.org/installation
Change History
comment:1 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 2.0
- Status changed from new to accepted
- Description modified (diff)
- Total Hours changed from 0.0 to 2.0
comment:2 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 0.1
- Total Hours changed from 2.0 to 2.1
So, there is actually a passanger version of Nginx:
a-up About to upgrade nginx-common/wheezy nginx-extras/wheezy The following packages will be upgraded: nginx-common nginx-extras 2 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 1087 kB of archives. After unpacking 1250 kB will be used. Do you want to continue? [Y/n/?] y
Then uncomment the following lines in /etc/nginx/nginx.conf:
passenger_root /usr; passenger_ruby /usr/bin/ruby;
Test and restart:
/etc/init.d/nginx configtest [ ok ] Testing nginx configuration:[....] nginx:. /etc/init.d/nginx restart [....] Restarting nginx: nginxnginx: [alert] Unable to start the Phusion Passenger watchdog because its executable (/usr/buildout/agents/PassengerWatchdog) does not exist. This probably means that your Phusion Passenger installation is broken or incomplete, or that your 'passenger_root' directive is set to the wrong value. Please reinstall Phusion Passenger or fix your 'passenger_root' directive, whichever is applicable. (-1: Unknown error) . ok
So, re-comment and restart... More work needed...
comment:3 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 1.5
- Total Hours changed from 2.1 to 3.6
So nginx-extras from Phusion has replaced the nginx-extras from Debian backports:
dpkg --status nginx-extras Package: nginx-extras Status: install ok installed Priority: extra Section: httpd Installed-Size: 2531 Maintainer: Phusion <info@phusion.nl> Architecture: amd64 Source: nginx Version: 1:1.4.4-2.4.0.37~wheezy1 Provides: httpd, nginx Depends: nginx-common (= 1:1.4.4-2.4.0.37~wheezy1), perl (>= 5.14.2-21+deb7u1), perlapi-5.14.2, libc6 (>= 2.11), libexpat1 (>= 2.0.1), libgcc1 (>= 1:4.1.1), libgd2-noxpm (>= 2.0.36~rc1~dfsg) | libgd2-xpm (>= 2.0.36~rc1~dfsg), libgeoip1 (>= 1.4.8+dfsg), liblua5.1-0, libpam0g (>= 0.99.7.1), libpcre3 (>= 8.10), libperl5.14 (>= 5.14.2), libssl1.0.0 (>= 1.0.1), libstdc++6 (>= 4.6), libxml2 (>= 2.7.4), libxslt1.1 (>= 1.1.25), zlib1g (>= 1:1.2.0) Recommends: passenger (>= 4.0.37), passenger (<< 4.0.38) Suggests: nginx-doc (= 1:1.4.4-2.4.0.37~wheezy1) Conflicts: nginx-full, nginx-light, nginx-naxsi Description: nginx web/proxy server (extended version) Nginx ("engine X") is a high-performance web and reverse proxy server created by Igor Sysoev. It can be used both as a standalone web server and as a proxy to reduce the load on back-end HTTP or mail servers. . This package provides a version of nginx with the standard modules, plus extra features and modules such as the Perl module, which allows the addition of Perl in configuration files. . STANDARD HTTP MODULES: Core, Access, Auth Basic, Auto Index, Browser, Charset, Empty GIF, FastCGI, Geo, Gzip, Headers, Index, Limit Requests, Limit Zone, Log, Map, Memcached, Proxy, Referer, Rewrite, SCGI, SPDY, Split Clients, SSI, Upstream, User ID, UWSGI. . OPTIONAL HTTP MODULES: Addition, Debug, Embedded Perl, FLV, GeoIP, Gzip Precompression, Image Filter, IPv6, MP4, Random Index, Real IP, Secure Link, SSL, Stub Status, Substitution, WebDAV, XSLT. . MAIL MODULES: Mail Core, IMAP, POP3, SMTP, SSL. . THIRD PARTY MODULES: Auth PAM, Chunkin, DAV Ext, Echo, Embedded Lua, Fancy Index, HttpHeadersMore, HTTP Substitution Filter, http push, Nginx Development Kit, Upload module, Upload Progress, Upstream Fair Queue, Phusion Passenger. Homepage: http://nginx.net
Now to configure it...
It looks like we are best off creating a new site and then copying data into is:
So...
mkdir /web/patterns.transitionresearchnetwork.org chown www-data:www-data /web/patterns.transitionresearchnetwork.org su - www-data -s /bin/bash cd /web/patterns.transitionresearchnetwork.org gem install wagn
That didn't do anything... so following:
git clone https://github.com/wagn/wagn.git Cloning into 'wagn'... remote: Reusing existing pack: 75927, done. remote: Counting objects: 127, done. remote: Compressing objects: 100% (126/126), done. remote: Total 76054 (delta 6), reused 0 (delta 0) Receiving objects: 100% (76054/76054), 40.17 MiB | 1.05 MiB/s, done. Resolving deltas: 100% (54954/54954), done. cd wagn bundle install --without postgres:memcache:test:debug:development:assets Fetching gem metadata from http://rubygems.org/......... Fetching gem metadata from http://rubygems.org/.. Resolving dependencies... Errno::EACCES: Permission denied - /web/.bundler An error occurred while installing rake (10.1.1), and Bundler cannot continue. Make sure that `gem install rake -v '10.1.1'` succeeds before bundling.
So as root:
mkdir /web/.bundler chown www-data:www-data /web/.bundler
And try the above again:
bundle install --without postgres:memcache:test:debug:development:assets Fetching gem metadata from http://rubygems.org/......... Fetching gem metadata from http://rubygems.org/.. Resolving dependencies... We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. Enter your password to install the bundled RubyGems to your system:
OK, so the command does need to be run as root...
sudo -i cd /web/patterns.transitionresearchnetwork.org/wagn/ bundle install --without postgres:memcache:test:debug:development:assets Fetching gem metadata from http://rubygems.org/......... Fetching gem metadata from http://rubygems.org/.. Resolving dependencies... Installing rake (10.1.1) Installing i18n (0.6.9) Installing multi_json (1.8.4) Installing activesupport (3.2.16) Using builder (3.0.4) Installing activemodel (3.2.16) Using erubis (2.7.0) Using journey (1.0.4) Using rack (1.4.5) Using rack-cache (1.2) Using rack-test (0.6.2) Using hike (1.2.3) Using tilt (1.4.1) Using sprockets (2.2.2) Installing actionpack (3.2.16) Installing mime-types (1.25.1) Using polyglot (0.3.3) Using treetop (1.4.15) Using mail (2.5.4) Installing actionmailer (3.2.16) Installing arel (3.0.3) Installing tzinfo (0.3.38) Installing activerecord (3.2.16) Installing activeresource (3.2.16) Installing airbrake (3.1.15) Using bundler (1.3.5) Using climate_control (0.0.3) Installing cocaine (0.5.3) Using coderay (1.1.0) Using htmlentities (4.3.1) Installing json (1.8.1) Using systemu (2.5.2) Using macaddr (1.6.1) Installing mysql2 (0.3.14) Using paperclip (2.8.0) Using rack-ssl (1.3.3) Using rdoc (3.12.2) Using thor (0.18.1) Installing railties (3.2.16) Installing rails (3.2.16) Installing recaptcha (0.3.6) Using rmagick (2.13.2) Using ruby-prof (0.12.2) Installing rubyzip (1.1.0) Gem::InstallError: rubyzip requires Ruby version >= 1.9.2. An error occurred while installing rubyzip (1.1.0), and Bundler cannot continue. Make sure that `gem install rubyzip -v '1.1.0'` succeeds before bundling.
So...
gem install rubyzip -v '1.1.0' Fetching: rubyzip-1.1.0.gem (100%) Successfully installed rubyzip-1.1.0 1 gem installed Installing ri documentation for rubyzip-1.1.0... Installing RDoc documentation for rubyzip-1.1.0...
Check the ruby version:
aptitude search ruby | grep ^i i libmysql-ruby - Transitional package for ruby-mysql id libmysql-ruby1.8 - Transitional package for ruby-mysql i A libruby1.8 - Libraries necessary to run Ruby 1.8 i A libruby1.9.1 - Libraries necessary to run Ruby 1.9.1 i A ruby-daemon-controller - Library for robust daemon management i ruby-mysql - MySQL module for Ruby i A ruby-rack - Modular Ruby webserver interface i A ruby1.8 - Interpreter of object-oriented scripting l i A ruby1.8-dev - Header files for compiling extension modul i ruby1.9.1 - Interpreter of object-oriented scripting l i ruby1.9.1-dev - Header files for compiling extension modul i rubygems - package management framework for Ruby libr id rubygems1.8 - Transitional package for rubygems
So, following:
ruby -v ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] aptitude install ruby-switch ruby-switch --list ruby1.8 ruby1.9.1 aptitude install ruby1.9.3 The following NEW packages will be installed: libdrm-intel1{a} libdrm-nouveau1a{a} libdrm-radeon1{a} libdrm2{a} libgl1-mesa-dri{a} libgl1-mesa-glx{a} libglapi-mesa{a} libpciaccess0{a} libruby1.9.1-dbg{a} libtcltk-ruby1.9.1{a} libx11-xcb1{a} libxaw7{a} libxcb-glx0{a} libxcb-shape0{a} libxmu6{a} libxss1{a} libxtst6{a} libxv1{a} libxxf86dga1{a} libxxf86vm1{a} ri1.9.1{a} ruby1.9.1-examples{a} ruby1.9.1-full{a} ruby1.9.3 tcl8.5{a} tk8.5{a} x11-utils{a} xbitmaps{a} xterm{a} 0 packages upgraded, 29 newly installed, 0 to remove and 0 not upgraded. Need to get 37.4 MB of archives. After unpacking 129 MB will be used. Do you want to continue? [Y/n/?] y ruby-switch --list ruby1.8 ruby1.9.1
This is because:
This package depends on the ruby1.9.1 package, and provides compatibility symbolic links from 1.9.3 executables and manual pages to their 1.9.1 counterparts.
Trying the command again:
bundle install --without postgres:memcache:test:debug:development:assets Fetching gem metadata from http://rubygems.org/......... Fetching gem metadata from http://rubygems.org/.. Resolving dependencies.... Using rake (10.1.1) Using i18n (0.6.9) Using multi_json (1.8.4) Using activesupport (3.2.16) Using builder (3.0.4) Using activemodel (3.2.16) Using erubis (2.7.0) Using journey (1.0.4) Using rack (1.4.5) Using rack-cache (1.2) Using rack-test (0.6.2) Using hike (1.2.3) Using tilt (1.4.1) Using sprockets (2.2.2) Using actionpack (3.2.16) Using mime-types (1.25.1) Using polyglot (0.3.3) Using treetop (1.4.15) Using mail (2.5.4) Using actionmailer (3.2.16) Using arel (3.0.3) Using tzinfo (0.3.38) Using activerecord (3.2.16) Using activeresource (3.2.16) Using airbrake (3.1.15) Using bundler (1.3.5) Using climate_control (0.0.3) Using cocaine (0.5.3) Using coderay (1.1.0) Using htmlentities (4.3.1) Using json (1.8.1) Using systemu (2.5.2) Using macaddr (1.6.1) Using mysql2 (0.3.14) Using paperclip (2.8.0) Using rack-ssl (1.3.3) Using rdoc (3.12.2) Using thor (0.18.1) Using railties (3.2.16) Using rails (3.2.16) Using recaptcha (0.3.6) Using rmagick (2.13.2) Using ruby-prof (0.12.2) Installing rubyzip (1.1.0) Gem::InstallError: rubyzip requires Ruby version >= 1.9.2. An error occurred while installing rubyzip (1.1.0), and Bundler cannot continue. Make sure that `gem install rubyzip -v '1.1.0'` succeeds before bundling.
And Ruby 2.0 isn't in backports:
More research needed...
comment:4 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 0.25
- Total Hours changed from 3.6 to 3.85
I have signed up for a Wagn account with the following message:
Hi
I'm trying to install Wagn on Debian Wheezy with Phusion, I have it working with WEBrick and a Nginx reverse proxy at https://patterns.transitionresearchnetwork.org/ see the notes at /trac/wiki/TransitionResearchWagn but when following http://wagn.org/wagn_in_production I run up against:
Gem::InstallError: rubyzip requires Ruby version >= 1.9.2.
Debian Wheezy has Ruby 1.9.1, more info on this ticket /trac/ticket/691
All the best
Chris
When that come through I'll raise a ticket there -- could't find any existing references to this issue.
comment:5 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 0.25
- Total Hours changed from 3.85 to 4.1
This is the issue:
sudo -i cd /web/patterns.transitionresearchnetwork.org/wagn ruby -v ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] bundle install --without postgres:memcache:test:debug:development:assets Fetching gem metadata from http://rubygems.org/......... Fetching gem metadata from http://rubygems.org/.. Resolving dependencies.... Using rake (10.1.1) Using i18n (0.6.9) Using multi_json (1.8.4) Using activesupport (3.2.16) Using builder (3.0.4) Using activemodel (3.2.16) Using erubis (2.7.0) Using journey (1.0.4) Using rack (1.4.5) Using rack-cache (1.2) Using rack-test (0.6.2) Using hike (1.2.3) Using tilt (1.4.1) Using sprockets (2.2.2) Using actionpack (3.2.16) Using mime-types (1.25.1) Using polyglot (0.3.3) Using treetop (1.4.15) Using mail (2.5.4) Using actionmailer (3.2.16) Using arel (3.0.3) Using tzinfo (0.3.38) Using activerecord (3.2.16) Using activeresource (3.2.16) Using airbrake (3.1.15) Using bundler (1.3.5) Using climate_control (0.0.3) Using cocaine (0.5.3) Using coderay (1.1.0) Using htmlentities (4.3.1) Using json (1.8.1) Using systemu (2.5.2) Using macaddr (1.6.1) Using mysql2 (0.3.14) Using paperclip (2.8.0) Using rack-ssl (1.3.3) Using rdoc (3.12.2) Using thor (0.18.1) Using railties (3.2.16) Using rails (3.2.16) Using recaptcha (0.3.6) Using rmagick (2.13.2) Using ruby-prof (0.12.2) Installing rubyzip (1.1.0) Gem::InstallError: rubyzip requires Ruby version >= 1.9.2. An error occurred while installing rubyzip (1.1.0), and Bundler cannot continue. Make sure that `gem install rubyzip -v '1.1.0'` succeeds before bundling. gem install rubyzip -v '1.1.0' Successfully installed rubyzip-1.1.0 1 gem installed Installing ri documentation for rubyzip-1.1.0... Installing RDoc documentation for rubyzip-1.1.0... bundle install --without postgres:memcache:test:debug:development:assets Fetching gem metadata from http://rubygems.org/......... Fetching gem metadata from http://rubygems.org/.. Resolving dependencies.... Using rake (10.1.1) Using i18n (0.6.9) Using multi_json (1.8.4) Using activesupport (3.2.16) Using builder (3.0.4) Using activemodel (3.2.16) Using erubis (2.7.0) Using journey (1.0.4) Using rack (1.4.5) Using rack-cache (1.2) Using rack-test (0.6.2) Using hike (1.2.3) Using tilt (1.4.1) Using sprockets (2.2.2) Using actionpack (3.2.16) Using mime-types (1.25.1) Using polyglot (0.3.3) Using treetop (1.4.15) Using mail (2.5.4) Using actionmailer (3.2.16) Using arel (3.0.3) Using tzinfo (0.3.38) Using activerecord (3.2.16) Using activeresource (3.2.16) Using airbrake (3.1.15) Using bundler (1.3.5) Using climate_control (0.0.3) Using cocaine (0.5.3) Using coderay (1.1.0) Using htmlentities (4.3.1) Using json (1.8.1) Using systemu (2.5.2) Using macaddr (1.6.1) Using mysql2 (0.3.14) Using paperclip (2.8.0) Using rack-ssl (1.3.3) Using rdoc (3.12.2) Using thor (0.18.1) Using railties (3.2.16) Using rails (3.2.16) Using recaptcha (0.3.6) Using rmagick (2.13.2) Using ruby-prof (0.12.2) Installing rubyzip (1.1.0) Gem::InstallError: rubyzip requires Ruby version >= 1.9.2. An error occurred while installing rubyzip (1.1.0), and Bundler cannot continue. Make sure that `gem install rubyzip -v '1.1.0'` succeeds before bundling.
Others have had this issue:
But I can't find an answer...
comment:6 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 0.5
- Total Hours changed from 4.1 to 4.6
The suggestion is:
- use rvm to manage your ruby versions. It's a powerful tool, and the more recent ruby versions have some genuine performance improvements that are worth having.
- if you expect to stay on top of upgrades (recommended!), it will be easiest if you start using the new wagn gem installation rather than the current git-based approach. We haven't been promoting that mechanism broadly yet, but we expect to put out 1.13 in a week or so, and will begin promoting it then. We're using it for all the sites we host, and it's already six or seven point releases past the master branch, so it's ready for prime time and has some valuable improvements. And this will really be the only supported mechanism moving forward. See docs about how to install on our develop branch on GitHub?.
- I would not recommend serving with Webrick if you're expecting any real traffic. The new gem installation mechanism makes Wagn much more like a standard rack app (with the one exception that you will need to symlink a public directory to the public directory in the gem; that's one wart we wanted to fix before promoting the gem), which in turn makes it much easier to serve with passenger.
I want to try to stick with the Debian version of Ruby if at all possible so as to make upgrades and updates easier.
So trying the gem install (which failed earlier, see ticket:691#comment:3):
sudo -i cd /web/patterns.transitionresearchnetwork.org/ rm -rf * gem install wagn
The above appears to do nothing, so making it more verbose:
gem install --verbose wagn ... Building native extensions. This could take a while... ERROR: Error installing wagn: ERROR: Failed to build gem native extension. /usr/bin/ruby1.9.1 extconf.rb checking for Ruby version >= 1.8.5... yes checking for gcc... yes checking for Magick-config... no Can't install RMagick 2.13.2. Can't find Magick-config in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin *** 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/ruby1.9.1 Gem files will remain installed in /var/lib/gems/1.9.1/gems/rmagick-2.13.2 for inspection. Results logged to /var/lib/gems/1.9.1/gems/rmagick-2.13.2/ext/RMagick/gem_make.out
So:
aptitude install ruby-rmagick librmagick-ruby
Trying again:
gem install --verbose wagn ... ERROR: Error installing wagn: ERROR: Failed to build gem native extension. /usr/bin/ruby1.9.1 extconf.rb checking for Ruby version >= 1.8.5... yes checking for gcc... yes checking for Magick-config... no Can't install RMagick 2.13.2. Can't find Magick-config in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin *** 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/ruby1.9.1 Gem files will remain installed in /var/lib/gems/1.9.1/gems/rmagick-2.13.2 for inspection. Results logged to /var/lib/gems/1.9.1/gems/rmagick-2.13.2/ext/RMagick/gem_make.out
So:
aptitude install libmagick-dev The following NEW packages will be installed: graphicsmagick-libmagick-dev-compat libbz2-dev{a} libexif-dev{a} libexif12{a} libgraphics-magick-perl{a} libgraphicsmagick++1-dev{a} libgraphicsmagick++3{a} libgraphicsmagick1-dev{a} libgraphicsmagick3{a} libjasper-dev{a} libjbig-dev{a} libjpeg8-dev{a} liblcms1-dev{a} libtiff4-dev{a} libtiffxx0c2{a} libwmf-dev{a} libxml2-dev{a}
And, try again:
gem install --verbose wagn Building native extensions. This could take a while... ERROR: Error installing wagn: ERROR: Failed to build gem native extension. /usr/bin/ruby1.9.1 extconf.rb checking for Ruby version >= 1.8.5... yes checking for gcc... yes checking for Magick-config... yes Warning: Found a partial ImageMagick installation. Your operating system likely has some built-in ImageMagick libraries but not all of ImageMagick. This will most likely cause problems at both compile and runtime. Found partial installation at: /usr checking for ImageMagick version >= 6.4.9... yes checking for HDRI disabled version of ImageMagick... yes checking for stdint.h... yes checking for sys/types.h... yes checking for wand/MagickWand.h... no Can't install RMagick 2.13.2. Can't find MagickWand.h. *** 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/ruby1.9.1 Gem files will remain installed in /var/lib/gems/1.9.1/gems/rmagick-2.13.2 for inspection. Results logged to /var/lib/gems/1.9.1/gems/rmagick-2.13.2/ext/RMagick/gem_make.out
So:
aptitude install libmagickwand-dev The following NEW packages will be installed: gir1.2-rsvg-2.0{a} libcgraph5{a} libdjvulibre-dev{a} libgraphviz-dev{a} libgvpr1{a} libilmbase-dev{a} liblqr-1-0-dev{a} libmagickcore-dev{a} libmagickwand-dev libopenexr-dev{a} librsvg2-dev{a} libxt-dev{a} 0 packages upgraded, 12 newly installed, 0 to remove and 0 not upgraded. Need to get 4592 kB/5871 kB of archives. After unpacking 19.7 MB will be used. The following packages have unmet dependencies: graphicsmagick-libmagick-dev-compat : Conflicts: libmagickcore-dev but 8:6.7.7.10-5+deb7u2 is to be installed. The following actions will resolve these dependencies: Remove the following packages: 1) graphicsmagick-libmagick-dev-compat Accept this solution? [Y/n/q/?] Y gir1.2-rsvg-2.0{a} libcgraph5{a} libdjvulibre-dev{a} libgraphviz-dev{a} libgvpr1{a} libilmbase-dev{a} liblqr-1-0-dev{a} libmagickcore-dev{a} libmagickwand-dev libopenexr-dev{a} librsvg2-dev{a} libxt-dev{a} The following packages will be REMOVED: graphicsmagick-libmagick-dev-compat{a} libgraphics-magick-perl{u} libgraphicsmagick++1-dev{u} libgraphicsmagick++3{u} libgraphicsmagick1-dev{u} libgraphicsmagick3{u} ...
Trying again:
gem install --verbose wagn
And that worked!
Thanks to the help here:
So now the next stage...
comment:7 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 2.0
- Total Hours changed from 4.6 to 6.6
After running gem install --verbose wagn, following, https://github.com/wagn/wagn/tree/develop the next step is:
cd /web/patterns.transitionresearchnetwork.org wagn new patterns create create Rakefile create mods create mods/.gitkeep create log create log/.gitkeep create files create files/.gitkeep create tmp create Gemfile create config.ru create .gitignore create config create config/application.rb create config/environment.rb create config/boot.rb create config/database.yml create script create script/wagn run bundle install Fetching gem metadata from http://rubygems.org/........... Fetching additional metadata from http://rubygems.org/.. Resolving dependencies... Using rake (10.1.1) Using i18n (0.6.9) Using multi_json (1.9.0) Using activesupport (3.2.16) Using builder (3.0.4) Using activemodel (3.2.16) Using erubis (2.7.0) Using journey (1.0.4) Using rack (1.4.5) Using rack-cache (1.2) Using rack-test (0.6.2) Using hike (1.2.3) Using tilt (1.4.1) Using sprockets (2.2.2) Using actionpack (3.2.16) Using mime-types (1.25.1) Using polyglot (0.3.4) Using treetop (1.4.15) Using mail (2.5.4) Using actionmailer (3.2.16) Using arel (3.0.3) Using tzinfo (0.3.38) Using activerecord (3.2.16) Using activeresource (3.2.16) Using airbrake (3.1.15) Using bundler (1.5.3) Using climate_control (0.0.3) Using cocaine (0.5.3) Using coderay (1.1.0) Using htmlentities (4.3.1) Using json (1.8.1) Using systemu (2.5.2) Using macaddr (1.6.1) Installing mysql2 (0.3.15) Using paperclip (2.8.0) Using rack-ssl (1.3.3) Using rdoc (3.12.2) Using thor (0.18.1) Using railties (3.2.16) Using rails (3.2.16) Using recaptcha (0.3.6) Using rmagick (2.13.2) Using rubyzip (1.1.0) Using sass (3.2.14) Using smartname (0.2.3) Using uuid (2.3.7) Using xmlscan (0.3.0) Using wagn (1.12.13) Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
Next create a database for the new site:
sudo -i mysql mysql> CREATE DATABASE patterns; mysql> GRANT USAGE ON patterns.* TO patterns@localhost IDENTIFIED BY 'XXXXXXXX'; mysql> GRANT ALL PRIVILEGES ON patterns.* TO patterns@localhost; mysql> FLUSH PRIVILEGES;
Edit /web/patterns.transitionresearchnetwork.org/patterns/config/database.yml with the database details, this file suggests three databases, so creating the test and development databases:
sudo -i mysql mysql> CREATE DATABASE patterns_dev; mysql> GRANT USAGE ON patterns_dev.* TO patterns@localhost IDENTIFIED BY 'XXXXXXXX'; mysql> GRANT ALL PRIVILEGES ON patterns_dev.* TO patterns@localhost; mysql> CREATE DATABASE patterns_test; mysql> GRANT USAGE ON patterns_test.* TO patterns@localhost IDENTIFIED BY 'XXXXXXXX'; mysql> GRANT ALL PRIVILEGES ON patterns_test.* TO patterns@localhost; mysql> FLUSH PRIVILEGES;
And following the instructions in that file:
cd /web/patterns.transitionresearchnetwork.org/patterns gem install mysql2 Building native extensions. This could take a while... Successfully installed mysql2-0.3.15 1 gem installed Installing ri documentation for mysql2-0.3.15... Installing RDoc documentation for mysql2-0.3.15... gem 'mysql2' ERROR: While executing gem ... (RuntimeError) Unknown command mysql2
Not sure what this means... perhaps this is a PATH issue?
The next step:
cd /web/patterns.transitionresearchnetwork.org/patterns rake wagn:create dropping creating loading schema -- create_table("card_references", {:force=>true}) -> 0.9974s -- add_index("card_references", ["referee_id"], {:name=>"wiki_references_referenced_card_id"}) -> 0.3672s -- add_index("card_references", ["referee_key"], {:name=>"wiki_references_referenced_name"}) -> 0.4907s -- add_index("card_references", ["referer_id"], {:name=>"wiki_references_card_id"}) -> 0.2266s -- create_table("card_revisions", {:force=>true}) -> 0.0788s -- add_index("card_revisions", ["card_id"], {:name=>"revisions_card_id_index"}) -> 0.2190s -- add_index("card_revisions", ["creator_id"], {:name=>"revisions_created_by_index"}) -> 0.2308s -- create_table("cards", {:force=>true}) -> 0.0992s -- add_index("cards", ["key"], {:name=>"cards_key_uniq", :unique=>true}) -> 0.4615s -- add_index("cards", ["left_id"], {:name=>"index_cards_on_trunk_id"}) -> 4.4474s -- add_index("cards", ["name"], {:name=>"cards_name_index"}) -> 0.6360s -- add_index("cards", ["read_rule_id"], {:name=>"index_cards_on_read_rule_id"}) -> 1.3626s -- add_index("cards", ["right_id"], {:name=>"index_cards_on_tag_id"}) -> 0.3617s -- add_index("cards", ["type_id"], {:name=>"card_type_index"}) -> 0.2495s -- create_table("schema_migrations_cards", {:id=>false, :force=>true}) -> 0.1334s -- add_index("schema_migrations_cards", ["version"], {:name=>"unique_schema_migrations_cards", :unique=>true}) -> 1.7714s -- create_table("sessions", {:force=>true}) -> 0.5285s -- add_index("sessions", ["session_id"], {:name=>"sessions_session_id_index"}) -> 0.1979s -- create_table("users", {:force=>true}) -> 0.2313s -- initialize_schema_migrations_table() -> 0.7886s -- assume_migrated_upto_version(20130411210957, ["/var/lib/gems/1.9.1/gems/wagn-1.12.13/db/migrate"]) -> 0.5099s -- assume_migrated_upto_version("20140110193325", ["/var/lib/gems/1.9.1/gems/wagn-1.12.13/db/migrate_cards"]) -> 0.4850s loading bootstrap bootstrap load starting
So, now copy the data from the old site:
mkdir /web/patterns.transitionresearchnetwork.org/patterns/local rsync -av /web/wagn/local/ /web/patterns.transitionresearchnetwork.org/patterns/local/
Insert the database:
mysqldump wagn > /tmp/wagn.sql cat /tmp/wagn.sql | mysql patterns rake wagn:migrate migrating structure migrating cards == CommonCssPatch: migrating ================================================= == CommonCssPatch: migrated (0.6030s) ======================================== == ResetAccountRequestType: migrating ======================================== == ResetAccountRequestType: migrated (0.8829s) ===============================
Chown the site to match the user the webserver runs as:
chown www-data:www-data -R /web/patterns.transitionresearchnetwork.org/patterns
Configure Nginx with a basic config:
server { listen 80; server_name wagn-phusion.penguin.webarch.net; access_log /var/log/nginx/wagn-phusion.access.log; error_log /var/log/nginx/wagn-phusion.error.log crit; root /web/patterns.transitionresearchnetwork.org/patterns; passenger_enabled on; }
And restart Nginx and we have a 403 at:
So reading:
One suggestion, in that doc:
passenger-config --ruby-command passenger-config was invoked through the following Ruby interpreter: Command: /usr/bin/ruby1.9.1 Version: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] To use in Apache: PassengerRuby /usr/bin/ruby1.9.1 To use in Nginx : passenger_ruby /usr/bin/ruby1.9.1 To use with Standalone: /usr/bin/ruby1.9.1 /usr/bin/passenger start The following Ruby interpreter was found first in $PATH: Command: /usr/bin/ruby Version: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] To use in Apache: PassengerRuby /usr/bin/ruby To use in Nginx : passenger_ruby /usr/bin/ruby To use with Standalone: /usr/bin/ruby /usr/bin/passenger start ## Notes for RVM users Do you want to know which command to use for a different Ruby interpreter? 'rvm use' that Ruby interpreter, then re-run 'passenger-config --ruby-command'.
So this was added to the Nginx config:
passenger_ruby /usr/bin/ruby;
But there is still a 403, so the Nginx log level was changed to 'info' but this didn't cause the logs to have any more information.
Perhaps this is a clue, there is this variable:
passenger_show_version_in_header on;
But this isn't in the headers:
GET / HTTP/1.1 Host: wagn-phusion.penguin.webarch.net User-Agent: Mozilla/5.0 (X11; Linux i686; rv:27.0) Gecko/20100101 Firefox/27.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-gb,en;q=0.5 Accept-Encoding: gzip, deflate DNT: 1 Connection: keep-alive Cache-Control: max-age=0 HTTP/1.1 403 Forbidden Server: nginx/1.4.4 Date: Thu, 06 Mar 2014 11:55:57 GMT Content-Type: text/html; charset=utf-8 Content-Length: 168 Connection: keep-alive
Also we do now have a error massage appearing in the logs:
2014/03/06 11:55:57 [error] 7357#0: *20 directory index of "/web/patterns.transitionresearchnetwork.org/patterns/" is forbidden, client: XX.XX.XX.XX, server: wagn-phusion.penguin.webarch.net, request: "GET / HTTP/1.1", host: "wagn-phusion.penguin.webarch.net"
But I'm not sure what to try next so I'm about to post this to the Wagn site:
I have installed wagn, following the instructions at https://github.com/wagn/wagn/tree/develop but appear to have a problem with the Nginx config, I have this:
server {
listen 80;
server_name wagn-phusion.penguin.webarch.net;
access_log /var/log/nginx/wagn-phusion.access.log;
error_log /var/log/nginx/wagn-phusion.error.log info;
root /web/patterns.transitionresearchnetwork.org/patterns;
passenger_enabled on;
passenger_ruby /usr/bin/ruby;
passenger_show_version_in_header on;
}
However the front page is a 403:
http://wagn-phusion.penguin.webarch.net/
2014/03/06 11:55:57 [error] 7357#0: *20 directory index of "/web/patterns.transitionresearchnetwork.org/patterns/" is forbidden, client: XX.XX.XX.XX, server: wagn-phusion.penguin.webarch.net, request: "GET / HTTP/1.1", host: "wagn-phusion.penguin.webarch.net"
And note that the Nginx headers don't have the Phusion Passenger version string:
Server: nginx/1.4.4
But we do that the Phusion version of Nginx:
dpkg --status nginx-extras | grep Version
Version: 1:1.4.4-2.4.0.37~wheezy1
dpkg --status nginx-extras | grep Maintainer
Maintainer: Phusion <info@…>
So, I'm not sure what to try next, is there a Wagn Nginx Phusion Passenger config somewhere I could look at?
comment:8 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 0.25
- Total Hours changed from 6.6 to 6.85
I have added these lines to /etc/nginx/nginx.conf:
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini; passenger_ruby /usr/bin/ruby;
And restarted Nginx but this hasn't changed anything.
There is this suggestion:
touch /web/patterns.transitionresearchnetwork.org/patterns/tmp/restart.txt chown www-data:www-data /web/patterns.transitionresearchnetwork.org/patterns/tmp/restart.txt /etc/init.d/nginx restart
But that hasn't made any difference.
Following this suggestion I have added this line to /etc/nginx/nginx.conf:
passenger_log_level 3;
But that hasn't resulted in any more information in the logs.
Following this suggestion:
export PASSENGER_TMPDIR=/web/patterns.transitionresearchnetwork.org/patterns/tmp passenger-status ERROR: Phusion Passenger doesn't seem to be running.
But it does appear to be running:
passenger-memory-stats Version: 4.0.37 Date : 2014-03-06 12:53:47 +0000 ------------- Apache processes ------------- *** WARNING: The Apache executable cannot be found. Please set the APXS2 environment variable to your 'apxs2' executable's filename, or set the HTTPD environment variable to your 'httpd' or 'apache2' executable's filename. ---------- Nginx processes ----------- PID PPID VMSize Private Name -------------------------------------- 13758 1 167.3 MB 0.2 MB nginx: master process /usr/sbin/nginx 13760 13758 167.3 MB 1.1 MB nginx: worker process 13764 13758 167.3 MB 0.5 MB nginx: worker process 13767 13758 167.3 MB 1.2 MB nginx: worker process 13770 13758 167.3 MB 1.1 MB nginx: worker process ### Processes: 5 ### Total private dirty RSS: 4.16 MB ----- Passenger processes ----- PID VMSize Private Name ------------------------------- 13740 89.4 MB 0.3 MB PassengerWatchdog 13743 108.6 MB 0.3 MB PassengerHelperAgent 13752 80.9 MB 0.9 MB PassengerLoggingAgent ### Processes: 3 ### Total private dirty RSS: 1.50 MB
I haven't found any help searching for "ERROR: Phusion Passenger doesn't seem to be running." and "Nginx".
comment:9 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 0.3
- Total Hours changed from 6.85 to 7.15
Thanks to help from Ethan the site is now working:
The thing that was missing was a symlink:
cd /web/patterns.transitionresearchnetwork.org/patterns ln -s `bundle show wagn`/public
And to change the Nginx config to:
root /web/patterns.transitionresearchnetwork.org/patterns/public; passenger_enabled on;
Outstanding is the config for serving the images.
comment:10 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 0.25
- Total Hours changed from 7.15 to 7.4
Sorting images and the mod:
cd /web/patterns.transitionresearchnetwork.org/patterns rsync -av local/files/ files/ rsync -av local/mods/ mods/ rm -rf local
And the favicon:
cd public wget http://www.transitionnetwork.org/favicon.ico
Now I think it's ready to be made live, once Tom has checked it.
Then the documentation will need updating wiki:TransitionResearchWagn
comment:11 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 0.25
- Total Hours changed from 7.4 to 7.65
I have switched the sites around, now the new site is available here:
And the old one here:
comment:12 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 0.35
- Total Hours changed from 7.65 to 8.0
I have done some updating to the documentation at wiki:PenguinServer and wiki:TransitionResearchWagn but it could do with some information about how to upgrade Wagn, but until I do this I won't know the exact steps involved so that can probably wait.
Once Tom has confirmed that editing works OK on the new site then the old one can be deleted.
comment:13 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 1.5
- Total Hours changed from 8.0 to 9.5
Testing the site at:
Generates a "A" rating but flags up a few issues for the HTTPS version of the site:
- This site works only in browsers with SNI support. -- this is because the site doesn't have a dedicated IP address, this means the site won't work in some older browsers see Wikipedia.
- Certification Paths: Path #2: Trusted - Extra download: UTN-USERFirst-Hardware -- this needs fixing.
A DH prime was generated:
sudo -i cd /etc/ssl/transitionnetwork.org/ openssl dhparam 4096
And the result was saved as /etc/ssl/transitionnetwork.org/dhparam.pem and this was added to the /etc/nginx/nginx.conf file:
ssl_dhparam /etc/ssl/transitionnetwork.org/dhparam.pem;
To solve the cert path issue:
sudo -i cd /etc/ssl/wagn wget http://crt.usertrust.com/UTNAddTrustServer_CA.crt openssl x509 -inform DER -in UTNAddTrustServer_CA.crt -out UTNAddTrustServer_CA.pem cat wagn.pem > wagn.chained.pem.new cat GandiStandardSSLCA.pem >> wagn.chained.pem.new cat UTNAddTrustServer_CA.pem >> wagn.chained.pem.new mv wagn.chained.pem wagn.chained.pem.old mv wagn.chained.pem.new wagn.chained.pem
Note that since we have a fairly new version of Nginx we can enable support for the draft 2 of SPDY protocol (but not the latest because we are not running Nginx 1.5.10 or greater) by adding spdy to the listen directive, this has been done for all the HTTPS sites on the server.
To track memory usage /etc/munin/plugin-conf.d/munin-node was updated:
[multips_memory] env.names php5-fpm munin-node nginx mysqld tracd python PassengerHelper
This should result in the passenger memory usage showing up on this graph.
To get some further graphs, these munin-plugins-rails were installed:
gem install munin-plugins-rails Fetching: request-log-analyzer-1.12.10.gem (100%) Fetching: munin-plugins-rails-0.2.13.gem (100%) Successfully installed request-log-analyzer-1.12.10 Successfully installed munin-plugins-rails-0.2.13 2 gems installed Installing ri documentation for request-log-analyzer-1.12.10... unable to convert U+2501 from UTF-8 to US-ASCII for lib/request_log_analyzer/output/fixed_width.rb, skipping Installing ri documentation for munin-plugins-rails-0.2.13... Installing RDoc documentation for request-log-analyzer-1.12.10... unable to convert U+2501 from UTF-8 to US-ASCII for lib/request_log_analyzer/output/fixed_width.rb, skipping Installing RDoc documentation for munin-plugins-rails-0.2.13... request-log-analyzer-munin install
The command to generate the dhparam.pem is still running and the munin stats will need checking later.
We now have a A+ at ssl labs.
Some updates have also been made to the wiki:SecurityInfo?version=17 page.
comment:14 Changed 3 years ago by chris
Note that the munin plugins need more work:
cd /etc/munin/plugins munin-run munin_passenger_memory_stats Can't exec "/usr/local/bin/ruby": No such file or directory at /usr/share/perl5/Munin/Node/Service.pm line 263. # FATAL: Failed to exec. munin-run munin_passenger_queue Can't exec "/usr/local/bin/ruby": No such file or directory at /usr/share/perl5/Munin/Node/Service.pm line 263. # FATAL: Failed to exec. munin-run munin_passenger_status Can't exec "/usr/local/bin/ruby": No such file or directory at /usr/share/perl5/Munin/Node/Service.pm line 263. # FATAL: Failed to exec.
comment:15 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 0.25
- Total Hours changed from 9.5 to 9.75
Sorting out the munin scripts from https://github.com/barttenbrinke/munin-plugins-rails
The files that were created in /etc/munin/plugin-conf.d were deleted and their content fixed and added to /etc/munin/plugin-conf.d/munin-node:
[munin_passenger_*] user root command /usr/bin/ruby %c env.passenger_status '/usr/sbin/passenger-status' env.passenger_memory_stats '/usr/sbin/passenger-memory-stats' env.graph_category Passenger
But the scripts don't produce great results:
munin-run munin_passenger_memory_stats *** WARNING: The Apache executable cannot be found. Please set the APXS2 environment variable to your 'apxs2' executable's filename, or set the HTTPD environment variable to your 'httpd' or 'apache2' executable's filename. *** WARNING: The Apache executable cannot be found. Please set the APXS2 environment variable to your 'apxs2' executable's filename, or set the HTTPD environment variable to your 'httpd' or 'apache2' executable's filename. memory.value 74176266 munin-run munin_passenger_queue requests.value munin-run munin_passenger_status max.value running.value active.value sessions.value 0
I'm not sure these script are worth fixing so I have deleted them, I have done a quick search for "ngnix passenger munin" and not found and munin plugins that look any good so for now I think we will have to live wothout any passenger munin graphs.
comment:16 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 0.1
- Total Hours changed from 9.75 to 9.85
The new passenger site is in /web/patterns.transitionresearchnetwork.org/ and the old WEBrick site is in /web/wagn/, it is using 300MB of space:
cd /web/wagn du -h --max-depth=1 408K ./test 392K ./db 324K ./app 176K ./config 8.0K ./.bundle 120K ./features 28M ./local 256K ./lib 8.0K ./.vim 209M ./tmp 31M ./.git 23M ./log 7.0M ./public 776K ./spec 16K ./script 760K ./mods 12K ./bin 300M .
But 209M of this is tmp files, so these have been deleted:
rm -rf tmp/*
And it's now using 92M of space, this isn't really an issue, but I think it would be safe to now delete the old site once the users of the site have done some testing -- it doesn't appears to have been used much since the upgrade, see https://patterns.transitionresearchnetwork.org/recent
comment:17 Changed 3 years ago by ed
Ed: checking this for budgets work. This work took 10 hours. We have classed it as 'maintenance'. I think we need a new milesetone 'TRNRG' for this work as it falls outside of standard maintenance stuff and we've been covering it in the maintenance budget. TBC by Ed.
Chris - yes delete the old site!
comment:18 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0.0 to 0.25
- Total Hours changed from 9.85 to 10.1
Looking at https://patterns.transitionresearchnetwork.org/recent it's clear it's been used since the upgrade and there haven't been reports of problems so I agree it's safe to delete the old site:
rm -rf /web/wagn rm /etc/nginx/sites-available/wagn
And the wagn user and group were deleted from /etc/passwd and /etc/group.
Think this is good to close now apart from the Trac Milestone issue?
comment:21 Changed 3 years ago by chris
This wiki page has been updated: wiki:TransitionResearchWagn and the old documentation on it has been archived to wiki:WagnWebrick.
comment:22 Changed 2 years ago by chris
- Status changed from accepted to closed
- Resolution set to fixed
Closing as this task has been completed.
The instructions at:
Are for Apache, this pages is linked for non-Apache servers:
And that page links to:
Which redirects to:
And from there the instructions can be found:
Following these instructions:
Then /etc/apt/sources.list.d/passenger.list was created, containing:
Then:
Check that we are running nginx-extras:
We are not so:
Oh dear...
We want to install this package:
So /etc/apt/preferences.d/backports.pref was edited to add nginx-extras:
And then:
That isn't exactly what we want, so:
Try again:
But we want nginx-extras (1.4.4-1~bpo70+1) so:
That's more like it!
Install and restart Nginx:
Now back to the instructions and:
This created /etc/nginx/nginx.conf.dpkg-dist, so comparing this with the live config:
The key differences here are:
So these lines were added and Ngnix restarted and to see that passanger is running:
According to the instructions:
But we don't... so, looking at:
The first suggestion is to check the /var/log/nginx/error.log and we have this in it:
One suggestion is to delete all the ngnix config and reinstall:
Also:
I think the issues might be cause by the fact that we are running Ngnix from backports, for now I have commented out these directoves:
Switching to the Wheezy version of Nginx (1.2 rather than 1.4, so we will lose things like spdy.
On restarting Nginx we have these errors in the logs:
But the server is running...
So the passenger config was uncommented in /etc/nginx/nginx.conf:
But then Nginx wouldn't restart:
So those lines were commented out again.
Uninstalling and reinstalling was tried:
And the config was uncommented and tested:
So one way forward would be to:
Then diff the configs to try to find the differences.
This would be best done late at night when less people are using sites on the server, I'll try to do this tonight.