This page provides information on how to upgrade from VCL 2.2 to VCL 2.2.1. Please note it only applies for the upgrade from 2.2 to 2.2.1, this may or may not work for other versions.

The basic steps that will be performed

  • Download and Extract 2.2.1 code
  • Shutdown httpd and vcld services
  • Create backup of vcl database
  • Update mysql schema
  • Grant CREATE TEMPORARY TABLES to mysql user
  • Update Web code, create a backup, copy in new, make changes
  • Restart httpd service
  • Update Management node vcl code, create a backup, copy in new, make changes
  • Restart vcld service

Download and Extract 2.2.1 code

  1. follow instructions on VCL 2.2.1 Release page to download and verify apache-VCL-2.2.1-incubating.tar.bz2 and put in in /root
  2. extract VCL 2.2.1 code
    tar xjf apache-VCL-2.2.1-incubating.tar.bz2
    

Shutdown services

Shutdown the httpd and vcld services

service httpd stop or /etc/init.d/httpd stop
service vcld stop or /etc/init.d/vcld stop

Create a backup of vcl database

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

Update mysql schema

This step updates the mysql schema.

cd /root/apache-VCL-2.2.1-incubating
mysql vcl < mysql/update-vcl.sql

Grant CREATE TEMPORARY TABLES to mysql user

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

Update web code

This step we will move the 2.2 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.

  1. copy your old code out of the way
    cd /var/www/html
    mv vcl ~/vcl_2.2_web
    
  2. copy the new code in place
    cd /root/apache-VCL-2.2.1-incubating
    cp -r web /var/www/html/vcl
    
  3. apply a patch to fix editing reservations
    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
    
  4. apply patch to fix processing of block allocations
    wget https://issues.apache.org/jira/secure/attachment/12485328/vmhostcheck_fix.patch
    patch < vmhostcheck_fix.patch
    
  5. copy your 2.2 config files
    cd ~/vcl_2.2_web/.ht-inc
    cp conf.php secrets.php pubkey.pem keys.pem /var/www/html/vcl/.ht-inc
    

Restart httpd service

service httpd start or /etc/init.d/httpd start

Update management node code

This step will move the 2.2 vcl code base out of the way, so we can cleanly copy in the new management node(MN) code.

  1. Copy 2.2 code base to a backup location
    cd <your vcl MN code root path>
    ie. cd /usr/local/
    cp -r vcl ~/vcl_2.2_managementnode
    
  2. Copy in the 2.2.1 code base to /usr/local, copying in should preserve any drivers or other files you've added.
    /bin/cp -r /root/apache-VCL-2.2.1-incubating/managementnode/* /usr/local/vcl
    

Restart vcld service

service vcld start or /etc/init.d/vcld start
  • No labels

1 Comment

  1. If you run into
    ERROR 1558 (HY000) at line 31: Column count of mysql.proc is wrong. Expected 20, found 16. Created with MySQL 50077, now running 50157. Please use mysql_upgrade to fix this error.

    Run mysql_upgrade before the Update mysql schema step.

    As root type "mysql_upgrade"

    It's completed when you see

    Running 'mysql_fix_privilege_tables'...
    OK