This file provides information on how to upgrade from VCL 2.1 to VCL 2.2.1. Please note it only applies for the upgrade from 2.1 to 2.2.1, this may or may not work for other versions.
tar xjf apache-VCL-2.2.1-incubating.tar.bz2
Shutdown the httpd and vcld services
service httpd stop or /etc/init.d/httpd stop service vcld stop or /etc/init.d/vcld stop
We will create a backup of the vcl database. This will provide a restore point if necessary.
mysqldump vcl > ~/vcl-pre2.2.1-upgrade.sql
There was a slightly incorrect definition for the vmhost table. vmprofileid should be a smallint instead of a tinyint. The following steps will correct that before applying the update-vcl.sql script.
wget http://people.apache.org/~jfthomps/patches/2.1/vmhostvmprofileid.sql mysql vcl < vmhostvmprofileid.sql
This step updates the mysql schema.
cd /root/apache-VCL-2.2.1-incubating mysql vcl < mysql/update-vcl.sql
The web code now requires access to create temporary tables in mysql. You need to grant the user your web code uses to access mysql the "CREATE TEMPORARY TABLES" permission. Look at the secrets.php file in your web code for the user and hostname. For example, if your web code is installed at /var/www/html/vcl, your secrets.php file would be /var/www/html/vcl/.ht-inc/secrets.php. Look for $vclhost and $vclusername. The secrets.php file might have something like:
$vclhost = 'localhost';
$vcluser = 'vcluser';
Then, you need to issue the grant command to mysql. Using the values from above as examples, connect to mysql and then issue the grant command:
mysql GRANT CREATE TEMPORARY TABLES ON `vcl`.* TO 'vcluser'@'localhost'; exit
This step we will move the 2.1 web directory out of the way, so we can copy in the new web code base. After copying in the new code, we will migrate your configuration changes. These instructions assume that you installed the vcl web code at /var/www/html/vcl. If you installed it elsewhere, replace /var/www/html/vcl with your vcl web root.
cd /var/www/html mv vcl ~/vcl_2.1_web
cd /root/apache-VCL-2.2.1-incubating cp -r web /var/www/html/vcl
cd /var/www/html/vcl/.ht-inc wget https://issues.apache.org/jira/secure/attachment/12477101/utils_virtual_undefined.patch patch < utils_virtual_undefined.patch
wget https://issues.apache.org/jira/secure/attachment/12485328/vmhostcheck_fix.patch patch < vmhostcheck_fix.patch
cd ~/vcl_2.1_web/.ht-inc cp conf.php secrets.php pubkey.pem keys.pem /var/www/html/vcl/.ht-inc
chown apache /var/www/html/vcl/.ht-inc/maintenance
service httpd start or /etc/init.d/httpd start
This step will move the 2.1 vcl code base out of the way, so we can cleanly copy in the new management node(MN) code.
cd <your vcl MN code root path> ie. cd /usr/local/ cp -r vcl ~/vcl_2.1_managementnode
/bin/cp -r /root/apache-VCL-2.2.1-incubating/managementnode/* /usr/local/vcl
service vcld start or /etc/init.d/vcld start