Dobrica Pavlinušić's random unstructured stuff
WebGUI upgrade: Revision 16

Upgrade from WebGUI 6.2.11 to 7.3.4

Install dependencies

apt-get install apache2-mpm-prefork
apt-get install libapache2-mod-perl2
apt-get install perlmagick imagemagick

Don't bother with installation of perl modules from packages. Debian has modules which are sometimes a bit too old for cutting-edge WebGUI, so just let CPAN install it for you.

Basic configuration

All operations on both hosts (mjesec, zemlja) are done as root user. This is not strictly necessery (especially for WebGUI tasks), but it's easier in combination with MySQL setup. We want to get running quickly, YMMV.

Cleanup target machine

If this is not first installation attempt, you might want to cleanup target machine first.

# root@mjesec
cd /data/WebGUI
grep dsn etc/*.conf | cut -d: -f4- \
  | xargs -i echo 'drop database {};' \
  | ssh zemlja 'cat > /data/drop_all_dbs.sql'

Now switch to target machine and finish cleanup:

# root@zemlja
cd /data
xargs -i mysql -e '{}' < /data/drop_all_dbs.sql
rm -Rf WebGUI

Copy existing installation

In this step, we will copy existing WebGUI 6.2.11 installation to new (virtual) host (zemlja) to test upgrade.

Copy MySQL databases

# root@mjesec
cd /data/WebGUI 
grep dsn etc/*.conf | cut -d: -f4- \
  | xargs mysqldump --databases \
  | ssh zemlja mysql mysql

Copy existing WebGUI installation

# root@mjesec
cd /data
tar cfp - WebGUI/ | ssh zemlja 'cd /data && tar xvfp -'

This is much faster than scp in my expirience...

Finish database setup

Now, on zemlja, let's grant webgui user access to those databases:

# root@zemlja
cd /data/WebGUI
mysql -e 'create user webgui'
grep dsn etc/*.conf | cut -d: -f4- \
  | xargs -i mysql -e "grant all privileges on {}.* to webgui@localhost identified by 'password';" 
mysql -e "flush privileges"

Upgrade steps

First, test current enviroment for any mis-configuration:

# root@zemlja
cd /data/WebGUI/sbin
perl testEnvironment.pl
...
Testing complete!

If there are missing perl libraries, install them. Some will have to be forced, but all-in-all it goes well.

And run upgrade...

# root@zemlja
cd /data/WebGUI/sbin
perl upgrade.pl --doit

Hint

For testing, I created *.zemlja.example.com DNS entry, so that all sites become old.site.name.zemlja.example.com.