<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0"
 xmlns:blogChannel="http://backend.userland.com/blogChannelModule"
>

<channel>
<title><![CDATA[Dobrica Pavlinušić's random unstructured stuff: WebGUI]]></title>
<link>https://saturn.ffzg.hr/rot13/index.cgi?action=weblog_display;category=WebGUI</link>
<description></description>
<pubDate>Fri, 06 Aug 2010 12:11:50 -0000</pubDate>
<webMaster>root@saturn.ffzg.hr</webMaster>
<generator>Socialtext Workspace v2.19.0.2</generator>

<item>
<title><![CDATA[WebGUI upgrade 2010]]></title>
<link>https://saturn.ffzg.hr/rot13/index.cgi?webgui_upgrade_2010</link>
<description><![CDATA[<div>Creator: Dobrica Pavlinušić</div><hr/><div>Tags: WebGUI</div><hr/><div class="wiki">
<p>
This page is continuation from <a href="https://saturn.ffzg.hr/rot13/index.cgi?webgui_upgrade" title="(192 months) Upgrade from WebGUI 6.2.11 to 7.3.33 toc Install dependencies .pre apt-get install apache2-mpm-prefo...">WebGUI upgrade</a> from 7.4.39 to 7.</p>
<div class="nlw_phrase"><table class="wafl_container">
  <tr>
    <td>
      <div class="wafl_box">
        
          <div class="wafl_titlebox">
            <div class="wafl_title">
              
                Contents: [Dobrica Pavlinušić's random unstructured stuff]
              
            </div>
          </div>
          <div class="wafl_items">
            
              <div class="wiki">
<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#create_snapshot_of_production">Dobrica Pavlinušić's random unstructured stuff (Create snapshot of production)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Create snapshot of production} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#where_is_webgui">Dobrica Pavlinušić's random unstructured stuff (Where is WebGUI ?)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Where is WebGUI ?} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#create_lvm_snapshot">Dobrica Pavlinušić's random unstructured stuff (Create LVM snapshot)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Create LVM snapshot} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#rsync_config">Dobrica Pavlinušić's random unstructured stuff (rsync config)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] rsync config} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#on_development_machine">Dobrica Pavlinušić's random unstructured stuff (On development machine)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] On development machine} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#create_webgui_upgrade_filesystem_for_upgrade">Dobrica Pavlinušić's random unstructured stuff (Create webgui-upgrade filesystem for upgrade)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Create webgui-=upgrade filesystem for upgrade} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#create_lxc_configuration">Dobrica Pavlinušić's random unstructured stuff (Create LXC configuration)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Create LXC configuration} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#on_machine_used_for_testing">Dobrica Pavlinušić's random unstructured stuff (On machine used for testing)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] On machine used for testing} --></span></li>
</ul></ul>
</div>

            
            
          </div>
        
      </div>
    </td>
  </tr>
</table>
<!-- wiki: {toc: }
--></div><br /><br /><h1 id="create_snapshot_of_production">Create snapshot of production</h1>
<h2 id="where_is_webgui">Where is WebGUI ?</h2>
<pre>
root@mjesec:~# vzlist 212005
      CTID      NPROC STATUS  IP_ADDR         HOSTNAME                        
    212005         43 running 193.198.212.5   webgui.rot13.org                

root@mjesec:~# vzquota stat 212005 
   resource          usage       softlimit      hardlimit    grace
  1k-blocks       11474572        20971520       22020096         
     inodes         140595          286527         315180         
</pre>
<br /><h2 id="create_lvm_snapshot">Create LVM snapshot</h2>
<pre>
root@mjesec:~# lvcreate -s -n vz-snap -L 30g /dev/vg/vz
  Logical volume &quot;vz-snap&quot; created

root@mjesec:~# mkdir /mnt/vz-snap

root@mjesec:~# mount /dev/vg/vz-snap /mnt/vz-snap -o ro
</pre>
<br /><h2 id="rsync_config">rsync config</h2>
<pre>
[vz-snap]
        comment = /vz read-only snapshot for backup
        path = /mnt/vz-snap
        use chroot = yes
        lock file = /var/lock/rsyncd
        read only = yes
        list = yes
        uid = root
        gid = root
        strict modes = yes
        hosts allow = 10.60.0.201
        ignore errors = no
        ignore nonreadable = no
        transfer logging = no
        timeout = 600
        refuse options = checksum dry-run
        dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
</pre>
<br /><h1 id="on_development_machine">On development machine</h1>
<h2 id="create_webgui_upgrade_filesystem_for_upgrade">Create webgui-upgrade filesystem for upgrade</h2>
<pre>
root@stage:~# mkdir /mnt/webgui-upgrade

root@stage:~# lvcreate -n webgui-upgrade -L 50G /dev/stage
  Logical volume &quot;webgui-upgrade&quot; created

root@stage:~# mkfs.btrfs /dev/stage/webgui-upgrade 

WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using

fs created label (null) on /dev/stage/webgui-upgrade
        nodesize 4096 leafsize 4096 sectorsize 4096 size 50.00GB

root@stage:~# mount /dev/stage/webgui-upgrade /mnt/webgui-upgrade/

root@stage:~# time rsync -ravH --numeric-ids --sparse 10.60.0.9::vz-snap/private/212005 /mnt/webgui-upgrade/

</pre>
<br /><p>
This takes some time...</p>
<pre>
sent 1931305 bytes  received 11245927032 bytes  11413351.94 bytes/sec
total size is 11238867558  speedup is 1.00

real    16m25.334s
user    0m48.835s
sys     2m11.820s

root@stage:~# mkdir /mnt/webgui-upgrade/.snap

root@stage:~# btrfsctl -s /mnt/webgui-upgrade/2010-08-05-from-mjesec /mnt/webgui-upgrade/
operation complete
Btrfs Btrfs v0.19

</pre>
<br /><h2 id="create_lxc_configuration">Create LXC configuration</h2>
<p>
<a target="_blank" title="(external link)" href="https://10.60.0.92:6999/?p=.git;a=history;f=webgui-upgrade">https://10.60.0.92:6999/?p=.git;a=history;f=webgui-upgrade</a></p>
<h2 id="on_machine_used_for_testing">On machine used for testing</h2>
<pre>
dpavlin@t61p:~$ cat /etc/hosts

# webgui-upgrade
10.60.0.246 psihologija.ffzg.hr
</pre>
</div>
]]></description>
<author>Dobrica Pavlinu&#x161;i&#x107;</author>
<category>WebGUI</category>
<guid isPermaLink="true">https://saturn.ffzg.hr/rot13/index.cgi?webgui_upgrade_2010</guid>
<pubDate>Fri, 06 Aug 2010 12:11:50 -0000</pubDate>
</item>
<item>
<title><![CDATA[WebGUI upgrade]]></title>
<link>https://saturn.ffzg.hr/rot13/index.cgi?webgui_upgrade</link>
<description><![CDATA[<div>Creator: Dobrica Pavlinušić</div><hr/><div>Tags: WebGUI</div><hr/><div class="wiki">
<p>
Upgrade from WebGUI 6.2.11 to 7.3.33</p>
<div class="nlw_phrase"><table class="wafl_container">
  <tr>
    <td>
      <div class="wafl_box">
        
          <div class="wafl_titlebox">
            <div class="wafl_title">
              
                Contents: [Dobrica Pavlinušić's random unstructured stuff]
              
            </div>
          </div>
          <div class="wafl_items">
            
              <div class="wiki">
<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#install_dependencies">Dobrica Pavlinušić's random unstructured stuff (Install dependencies)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Install dependencies} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#basic_configuration">Dobrica Pavlinušić's random unstructured stuff (Basic configuration)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Basic configuration} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#mysql_binary_log">Dobrica Pavlinušić's random unstructured stuff (Mysql binary log)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Mysql binary log} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#cleanup_target_machine">Dobrica Pavlinušić's random unstructured stuff (Cleanup target machine)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Cleanup target machine} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#copy_existing_installation">Dobrica Pavlinušić's random unstructured stuff (Copy existing installation)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Copy existing installation} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#copy_mysql_databases">Dobrica Pavlinušić's random unstructured stuff (Copy MySQL databases)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Copy MySQL databases} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#copy_existing_webgui_installation">Dobrica Pavlinušić's random unstructured stuff (Copy existing WebGUI installation)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Copy existing WebGUI installation} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#finish_database_setup">Dobrica Pavlinušić's random unstructured stuff (Finish database setup)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Finish database setup} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#upgrade_steps">Dobrica Pavlinušić's random unstructured stuff (Upgrade steps)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Upgrade steps} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#upgrade_scripts">Dobrica Pavlinušić's random unstructured stuff (Upgrade scripts)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Upgrade scripts} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#helper_scripts">Dobrica Pavlinušić's random unstructured stuff (Helper scripts)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Helper scripts} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#tweaks">Dobrica Pavlinušić's random unstructured stuff (Tweaks)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Tweaks} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#mysql_encoding">Dobrica Pavlinušić's random unstructured stuff (MySQL encoding)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] MySQL encoding} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#fix_configuration">Dobrica Pavlinušić's random unstructured stuff (Fix configuration)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Fix configuration} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#code_cleanup">Dobrica Pavlinušić's random unstructured stuff (Code cleanup)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Code cleanup} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#fix_permissions">Dobrica Pavlinušić's random unstructured stuff (Fix permissions)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Fix permissions} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#spectre">Dobrica Pavlinušić's random unstructured stuff (Spectre)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Spectre} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#cleanup_versions">Dobrica Pavlinušić's random unstructured stuff (Cleanup versions)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Cleanup versions} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#delete_workflow_instances">Dobrica Pavlinušić's random unstructured stuff (Delete workflow instances)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Delete workflow instances} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#etc_resolv_conf">Dobrica Pavlinušić's random unstructured stuff (/etc/resolv.conf)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] /etc/resolv.conf} --></span></li>
</ul></ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#critical_verision_you_have_to_upgrade_to">Dobrica Pavlinušić's random unstructured stuff (Critical verision you have to upgrade to)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Critical verision you have to upgrade to} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#6_6_4">Dobrica Pavlinušić's random unstructured stuff (6.6.4)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] 6.6.4} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#6_8_10">Dobrica Pavlinušić's random unstructured stuff (6.8.10)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] 6.8.10} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#6_99_5">Dobrica Pavlinušić's random unstructured stuff (6.99.5)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] 6.99.5} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#7_3_22">Dobrica Pavlinušić's random unstructured stuff (7.3.22)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] 7.3.22} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#version_related_notes">Dobrica Pavlinušić's random unstructured stuff (Version related notes)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Version related notes} --></span></li>

<ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#7_3_4">Dobrica Pavlinušić's random unstructured stuff (7.3.4)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] 7.3.4} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#7_4_17">Dobrica Pavlinušić's random unstructured stuff (7.4.17)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] 7.4.17} --></span></li>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#7_4_33">Dobrica Pavlinušić's random unstructured stuff (7.4.33)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] 7.4.33} --></span></li>
</ul>
<li><span class="nlw_phrase"><a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#hint">Dobrica Pavlinušić's random unstructured stuff (Hint)</a><!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Hint} --></span></li>
</ul>
</div>

            
            
          </div>
        
      </div>
    </td>
  </tr>
</table>
<!-- wiki: {toc: }
--></div><br /><br /><h1 id="install_dependencies">Install dependencies</h1>
<pre>
apt-get install apache2-mpm-prefork
apt-get install libapache2-mod-perl2
apt-get install perlmagick imagemagick
</pre>
<br /><p>
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.</p>
<h1 id="basic_configuration">Basic configuration</h1>
<p>
All operations on both hosts (mjesec, zemlja) are done as <tt>root</tt> 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.</p>
<h2 id="mysql_binary_log">Mysql binary log</h2>
<p>
Comment out following in <tt>/etc/mysql/my.cnf</tt></p>
<pre>
log_bin
expire_logs_days
max_binlog_size
</pre>
<br /><p>
To preserve disk space if you are not using replication!</p>
<p>
And restart server:</p>
<pre>
/etc/init.d/mysql restart
rm /var/log/mysql/mysql-bin.*
</pre>
<br /><h1 id="cleanup_target_machine">Cleanup target machine</h1>
<p>
If this is not first installation attempt, you might want to cleanup target machine first.</p>
<pre>
# root@mjesec
cd /data/WebGUI
grep dsn etc/*.conf | cut -d: -f4- \
  | xargs -i echo 'drop database {};' \
  | ssh zemlja 'cat &gt; /data/drop_all_dbs.sql'
</pre>
<br /><p>
Now switch to target machine and finish cleanup:</p>
<pre>
# root@zemlja
cd /data
xargs -i mysql -e '{}' &lt; /data/drop_all_dbs.sql
rm -Rf WebGUI
</pre>
<br /><h1 id="copy_existing_installation">Copy existing installation</h1>
<p>
In this step, we will copy existing WebGUI 6.2.11 installation to new (virtual) host (zemlja) to test upgrade.</p>
<h2 id="copy_mysql_databases">Copy MySQL databases</h2>
<pre>
# root@mjesec
cd /data/WebGUI 
grep dsn etc/*.conf | cut -d: -f4- \
  | xargs mysqldump --databases \
  | ssh zemlja mysql mysql
</pre>
<br /><h2 id="copy_existing_webgui_installation">Copy existing WebGUI installation</h2>
<pre>
# root@mjesec
cd /data
tar cfp - WebGUI/ | ssh zemlja 'cd /data &amp;&amp; tar xvfp -'
</pre>
<br /><p>
This is much faster than scp in my expirience...</p>
<h2 id="finish_database_setup">Finish database setup</h2>
<p>
Now, on zemlja, let's grant webgui user access to those databases:</p>
<pre>
# root@zemlja
cd /data/WebGUI
mysql -e 'create user webgui'
grep dsn etc/*.conf | cut -d: -f4- \
  | xargs -i mysql -e &quot;grant all privileges on {}.* to webgui@localhost identified by 'password';&quot; 
mysql -e &quot;flush privileges&quot;
</pre>
<br /><h1 id="upgrade_steps">Upgrade steps</h1>
<p>
First, test current enviroment for any mis-configuration:</p>
<pre>
# root@zemlja
cd /data/WebGUI/sbin
perl testEnvironment.pl
</pre>
<br /><p>
If there are missing perl libraries, install them. Some will have to be forced, but all-in-all it goes well.</p>
<p>
And run upgrade...</p>
<pre>
# root@zemlja
cd /data/WebGUI/sbin
perl upgrade.pl --doit
</pre>
<br /><p>
Now, extract new version of webgui on which you want to upgrade (I'm assume that you downloaded required versions in /data):</p>
<pre>
cd /data/
ls
tar xvfz webgui-6.6.4-beta.tar.gz 
cd /data/WebGUI/sbin/
perl testEnvironment.pl 
perl upgrade.pl --doit
</pre>
<br /><p>
This will take a while.</p>
<p>
After that you might want to remove backup of databases:</p>
<pre>
rm /tmp/backups/*
</pre>
<br /><h2 id="upgrade_scripts">Upgrade scripts</h2>
<p>
Here are list of upgrade scripts:</p>
<ul>
<li><span class="nlw_phrase"><a href="https://saturn.ffzg.hr/rot13/index.cgi/z-1-backpan.sh?action=attachments_download;page_name=webgui_upgrade;id=20080525130345-4-3296">z-1-backpan.sh</a><!-- wiki: {file: z-=1-=backpan.sh} --></span></li>
<li><span class="nlw_phrase"><a href="https://saturn.ffzg.hr/rot13/index.cgi/z-3-mysql-perms.sh?action=attachments_download;page_name=webgui_upgrade;id=20080525130346-5-3296">z-3-mysql-perms.sh</a><!-- wiki: {file: z-=3-=mysql-=perms.sh} --></span></li>
<li><span class="nlw_phrase"><a href="https://saturn.ffzg.hr/rot13/index.cgi/z-4-webgui-6.6.5.sh?action=attachments_download;page_name=webgui_upgrade;id=20080525130347-6-3296">z-4-webgui-6.6.5.sh</a><!-- wiki: {file: z-=4-=webgui-=6.6.5.sh} --></span></li>
<li><span class="nlw_phrase"><a href="https://saturn.ffzg.hr/rot13/index.cgi/z-5-webgui-6.8.10.sh?action=attachments_download;page_name=webgui_upgrade;id=20080525130349-7-3296">z-5-webgui-6.8.10.sh</a><!-- wiki: {file: z-=5-=webgui-=6.8.10.sh} --></span></li>
<li><span class="nlw_phrase"><a href="https://saturn.ffzg.hr/rot13/index.cgi/z-6-webgui-7.0.9.sh?action=attachments_download;page_name=webgui_upgrade;id=20080525130350-8-3296">z-6-webgui-7.0.9.sh</a><!-- wiki: {file: z-=6-=webgui-=7.0.9.sh} --></span></li>

<ul>
<li><span class="nlw_phrase"><a href="https://saturn.ffzg.hr/rot13/index.cgi/upgrade_6.8.9-6.8.10.pl?action=attachments_download;page_name=webgui_upgrade;id=20080525130354-12-3296">upgrade_6.8.9-6.8.10.pl</a><!-- wiki: {file: upgrade_6.8.9-=6.8.10.pl} --></span></li>
<li><span class="nlw_phrase"><a href="https://saturn.ffzg.hr/rot13/index.cgi/webgui-7.0.diff?action=attachments_download;page_name=webgui_upgrade;id=20080525130341-0-3296">webgui-7.0.diff</a><!-- wiki: {file: webgui-=7.0.diff} --></span></li>
</ul>
<li><span class="nlw_phrase"><a href="https://saturn.ffzg.hr/rot13/index.cgi/z-7-webgui-7.2.3.sh?action=attachments_download;page_name=webgui_upgrade;id=20080525130352-9-3296">z-7-webgui-7.2.3.sh</a><!-- wiki: {file: z-=7-=webgui-=7.2.3.sh} --></span></li>
<li><span class="nlw_phrase"><a href="https://saturn.ffzg.hr/rot13/index.cgi/z-8-webgui-7.3.22.sh?action=attachments_download;page_name=webgui_upgrade;id=20080525130353-10-3296">z-8-webgui-7.3.22.sh</a><!-- wiki: {file: z-=8-=webgui-=7.3.22.sh} --></span></li>
<li><span class="nlw_phrase"><a href="https://saturn.ffzg.hr/rot13/index.cgi/z-9-webgui-7.4.38.sh?action=attachments_download;page_name=webgui_upgrade;id=20080525130354-11-3296">z-9-webgui-7.4.38.sh</a><!-- wiki: {file: z-=9-=webgui-=7.4.38.sh} --></span></li>
</ul>
<h2 id="helper_scripts">Helper scripts</h2>
<p>
Backup/restore whole WebGUI instance (data+database) so that you can re-try upgrade</p>
<blockquote>
This was probably one of most useful ideas enabling me to re-try upgrade until it finish without errors!</blockquote>
<br /><ul>
<li><span class="nlw_phrase"><a href="https://saturn.ffzg.hr/rot13/index.cgi/webgui-snap.sh?action=attachments_download;page_name=webgui_upgrade;id=20080525130345-3-3296">webgui-snap.sh</a><!-- wiki: {file: webgui-=snap.sh} --></span></li>
<li><span class="nlw_phrase"><a href="https://saturn.ffzg.hr/rot13/index.cgi/webgui-restore.sh?action=attachments_download;page_name=webgui_upgrade;id=20080525130344-2-3296">webgui-restore.sh</a><!-- wiki: {file: webgui-=restore.sh} --></span></li>
<li><span class="nlw_phrase"><a href="https://saturn.ffzg.hr/rot13/index.cgi/webgui-recover-db.sh?action=attachments_download;page_name=webgui_upgrade;id=20080525130341-1-3296">webgui-recover-db.sh</a><!-- wiki: {file: webgui-=recover-=db.sh} --></span></li>
</ul>
<h1 id="tweaks">Tweaks</h1>
<p>
Here are some commands to help you with various changes which break WebGUI:</p>
<pre>
# root@zemlja
cd /data/WebGUI
rm lib/HTML/Template.pm

cd /data/WebGUI/etc/
mv log.conf.original log.conf
mv spectre.conf.original spectre.conf
</pre>
<br /><h2 id="mysql_encoding">MySQL encoding</h2>
<p>
My data has <tt>iso-8859-2</tt> while MySQL thinks it's in <tt>latin-1</tt>.</p>
<pre>
mysqldump --all-databases --add-drop-database --default-character-set=latin1 &gt; all.sql
cat all.sql | sed \
 -e 's/DEFAULT CHARSET=latin1/DEFAULT CHARSET=utf8/g' \
 -e 's/character set latin1 collate latin1_bin/character set utf8 collate utf8_bin/' \
 -e 's/DEFAULT CHARACTER SET latin1/DEFAULT CHARACTER SET utf8/' \
 -e 's/SET NAMES latin1/SET NAMES utf8/' \
 | iconv -f iso-8859-2 -t utf-8 \
 | mysql --default-character-set=utf8 mysql
</pre>
<br /><blockquote>
<strong>This should work, but it doesn't</strong></blockquote>
<br /><p>
So, we are using much simplier solution which keep encoding in database in wrong latin1 encoding, but it displays correctly in WebGUI:</p>
<pre>
cat all.sql | iconv -f iso-8859-2 -t utf-8 | mysql mysql
</pre>
<br /><h2 id="fix_configuration">Fix configuration</h2>
<p>
Upgrade procedure isn't still perfect. Here is a list of tweaks to fix configuraion:</p>
<pre>
cd /data/WebGUI/etc/
perl -p -i -n -e 's/WebGUI::Asset::Wobject::WebGUI::Asset::Wobject::Survey/WebGUI::Asset::Wobject::Survey/g' *.conf
</pre>
<br /><h2 id="code_cleanup">Code cleanup</h2>
<p>
You might want to replace <tt>WebGUI/lib/WebGUI</tt> which is result of upgrade with clean version from distribution. I have accumulated some cruft there, and it was spitting errors in <tt>/var/log/apache2/error.log</tt> and <tt>/var/log/webgui.log</tt></p>
<h2 id="fix_permissions">Fix permissions</h2>
<pre>
cd /data/WebGUI
sudo chown -R www-data */uploads
</pre>
<br /><h2 id="spectre">Spectre</h2>
<p>
I didn't have <tt>spectre.conf</tt> after upgrade. Test connectivity with:</p>
<pre>
cd /data/WebGUI/sbin/
perl spectre.pl --test
</pre>
<br /><p>
Add following to <tt>/etc/rc.local</tt></p>
<pre>
cd /data/WebGUI/sbin/
perl spectre.pl --daemon
</pre>
<br /><h3 id="cleanup_versions">Cleanup versions</h3>
<p>
Since I created few workflows which always returned commerr (because of mis-configuration) I needed to find way to manually erase them.</p>
<pre>
select tagId from assetVersionTag
join WorkflowInstance on WorkflowInstance.instanceId = assetVersionTag.workflowInstanceId ;
</pre>
<br /><h3 id="delete_workflow_instances">Delete workflow instances</h3>
<pre>
delete from WorkflowInstance ;
</pre>
<br /><p>
This will erase <strong>all</strong> pending workflow instances. So, be sure to check if they are all stuck before running this command!</p>
<h3 id="etc_resolv_conf">/etc/resolv.conf</h3>
<p>
Make sure your <tt>nameserver</tt> entries point to existing servers. If you have one of DNS servers which doesn't respord (I had 127.0.0.1 for DNS and there wasn't any DNS server on machine running WebGUI) you will get Errors 500 from spectre without any indication where the problem is.</p>
<h1 id="critical_verision_you_have_to_upgrade_to">Critical verision you have to upgrade to</h1>
<p>
<strong>This part is obsoleted by scripts above which provide correct and workable upgrade path</strong></p>
<h2 id="6_6_4">6.6.4</h2>
<p>
last 6.6.x version required for upgrade to 6.7.0</p>
<h2 id="6_8_10">6.8.10</h2>
<p>
Upgrade to this version will die at one point with:</p>
<pre>
Cannot open config file '../../etc/log.conf' at /usr/share/perl5/Log/Log4perl/Config.pm line 612.
</pre>
<br /><pre>
# root@zemlja
cd /data/WebGUI/etc/
cp log.conf.original log.conf
cp spectre.conf.original spectre.conf
</pre>
<br /><p>
And then, re-run upgrade procedure:</p>
<pre>
cd /data/WebGUI/sbin/
perl upgrade --doit
</pre>
<br /><p>
Unit it succeeds.</p>
<h2 id="6_99_5">6.99.5</h2>
<p>
this verison will convert config files to JSON format</p>
<p>
First, install <strong>old</strong> JSON or you will be in pain: <a target="_blank" title="(external link)" href="http://backpan.perl.org/authors/id/M/MA/MAKAMAKA/JSON-0.991.tar.gz">http://backpan.perl.org/authors/id/M/MA/MAKAMAKA/JSON-0.991.tar.gz</a></p>
<p>
You might have problems upgrading to version 6.99.0 or later because scripts expect configuration in JSON format, and upgrade won't convert files for you (because it created config files from tar). So, change your <tt>upgrade.pl</tt> beginning to something like this:</p>
<pre>
## Find site configs.

print &quot;\nTesting site config versions...\n&quot; unless ($quiet);
opendir(DIR,&quot;../etc&quot;);
my @files = readdir(DIR);
closedir(DIR);
foreach my $file (@files) {
        next unless ($file =~ m/\.conf$/);
#       next if ($file eq &quot;spectre.conf&quot; || $file eq &quot;log.conf&quot;);
        my $configFile = &quot;../etc/&quot;.$file;
        open(FILE,&quot;&lt;&quot;.$configFile);
        my $line = &lt;FILE&gt;;
        close(FILE);
        unless ($line =~ m/JSON 1/) {
                print &quot;\tConverting &quot;.$file.&quot; from PlainConfig to JSON\n&quot; unless ($quiet);
                convertPlainconfigToJson($configFile);
        }
}

exit;
</pre>
<br /><p>
Note commented out line and added exit.</p>
<p>
Now you can run <tt>upgrade.pl</tt> once to convert configuration files to JSON, then run <tt>testEnvironment.pl</tt> and finally run <tt>upgrade.pl</tt> once more to do actual update.</p>
<h2 id="7_3_22">7.3.22</h2>
<p>
requirement for upgrade to 7.4.0</p>
<p>
To prevent <tt>perl upgrade.pl --doit</tt> die with:</p>
<pre>
Cannot open config file '../etc/log.conf' at /usr/share/perl5/Log/Log4perl/Config.pm line 612.
</pre>
<br /><p>
fix it:</p>
<pre>
cd /data/WebGUI/etc/
mv log.conf.original log.conf
</pre>
<br /><p>
and <strong>then</strong> run upgrade!</p>
<h1 id="version_related_notes">Version related notes</h1>
<p>
This are just notes. You can ignore them for normal upgrade described above.</p>
<h2 id="7_3_4">7.3.4</h2>
<p>
Re-run upgrade procedure if it breaks</p>
<h2 id="7_4_17">7.4.17</h2>
<p>
Attack of JSON again:</p>
<pre>
Can't locate object method &quot;relaxed&quot; via package &quot;JSON&quot;
</pre>
<br /><p>
Install <a target="_blank" title="(external link)" href="http://backpan.perl.org/authors/id/R/RI/RIZEN/Config-JSON-1.1.0.tar.gz">http://backpan.perl.org/authors/id/R/RI/RIZEN/Config-JSON-1.1.0.tar.gz</a></p>
<h2 id="7_4_33">7.4.33</h2>
<p>
It will install newer JSON and Config::JSON packages from CPAN</p>
<h1 id="hint">Hint</h1>
<p>
For testing, I created <tt>*.zemlja.example.com</tt> DNS entry, so that all sites become <tt>old.site.name.zemlja.example.com</tt>.</p>
</div>
<hr/><div>Attachments: upgrade_6.8.9-6.8.10.pl, webgui-7.0.diff, webgui-recover-db.sh, webgui-restore.sh, webgui-snap.sh, z-1-backpan.sh, z-3-mysql-perms.sh, z-4-webgui-6.6.5.sh, z-5-webgui-6.8.10.sh, z-6-webgui-7.0.9.sh, z-7-webgui-7.2.3.sh, z-8-webgui-7.3.22.sh, z-9-webgui-7.4.38.sh</div>]]></description>
<author>Dobrica Pavlinu&#x161;i&#x107;</author>
<category>WebGUI</category>
<guid isPermaLink="true">https://saturn.ffzg.hr/rot13/index.cgi?webgui_upgrade</guid>
<pubDate>Thu, 05 Aug 2010 13:22:32 -0000</pubDate>
</item>
</channel>
</rss>