You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

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

The basic steps that will be performed

  • Download and Extract 2.3 code
  • Shutdown httpd and vcld services
  • Create backup of vcl database
  • Update mysql schema
  • 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.3 code

  1. follow instructions on VCL 2.3 Release page to download and verify apache-VCL-2.3-incubating.tar.bz2 and put in in /root
  2. extract VCL 2.3 code
    tar xjf apache-VCL-2.3-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.3-upgrade.sql

Update mysql schema

This step updates the mysql schema.

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

Update web code

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

  1. copy your old code out of the way
    cd /var/www/html
    mv vcl ~/vcl_2.2.1_web
    
  2. copy the new code in place
    cd /root/apache-VCL-2.3-incubating
    cp -r web /var/www/html/vcl
    
  3. copy your 2.2.1 config files
    cd ~/vcl_2.2.1_web/.ht-inc
    cp conf.php secrets.php pubkey.pem keys.pem /var/www/html/vcl/.ht-inc
    
  4. Make the maintenance directory writable by the web server user. You will need to know what user httpd runs as on your server. This can be found with
    ps aux | grep httpd
    
    Look at the first column. One process will be owned by root. The remaining processes will be owned by the web server user. Now, own /var/www/html/vcl/.ht-inc/maintenance to that user (replacing 'apache' with your web server user if different):
    chown apache /var/www/html/vcl/.ht-inc/maintenance
    
  5. make some changes to conf.php:
    vi /var/www/html/vcl/.ht-inc/conf.php or nano /var/www/html/vcl/.ht-inc/conf.php
    
    1. $blockNotifyUsers has been replaced by a user group permission so it needs to be removed
    2. Multilingualization has been added VCL - so DEFAULTLOCALE has been to conf.php to set the default locale. Add
      define("DEFAULTLOCALE", "en_US");
      
      to your file, changing en_US if needed to match your locale. You can look in /var/www/html/vcl/locale to see which ones are available.
    3. some LDAP related items have been simplified in the code using some additional options in $authMechs. For any LDAP entries, you need to add two options. "lookupuserbeforeauth" is used if you need VCL to look up the full DN of a user and use that when doing the bind that authenticates the user (if you don't know what this means, leave it set to 0). If you need to set it to 1, then you will need to set "lookupuserfield" to what LDAP attribute to use when looking up the user's DN (typically either 'cn', 'uid', or 'samaccountname')
      "lookupuserbeforeauth" => 0,
      "lookupuserfield" => '',
      
    4. If you are using any Local accounts for authentication, you need to modify the entries for $addUserFunc and $updateUserFunc. Change
      $addUserFunc[$item['affiliationid']] = create_function('', 'return 0;');
      $updateUserFunc[$item['affiliationid']] = create_function('', 'return 0;');
      
      to
      $addUserFunc[$item['affiliationid']] = create_function('', 'return NULL;');
      $updateUserFunc[$item['affiliationid']] = create_function('', 'return NULL;');
      
    5. If you are using Shibboleth authentication, you need to add the following lines for each affiliation using Shibboleth, replacing all occurances of 'affilid' with the id for that affiliation:
      $affilValFunc[affilid] = create_function('', 'return 1;');
      $addUserFunc[affilid] = 'addShibUserStub';
      $addUserFuncArgs[affilid] = affilid;
      $updateUserFunc[affilid] = create_function('', 'return NULL;');
      

Restart httpd service

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

Update management node code

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

  1. Copy 2.2.1 code base to a backup location
    cd <your vcl MN code root path>
    ie. cd /usr/local/
    cp -r vcl ~/vcl_2.2.1_managementnode
    
  2. Copy in the 2.3 code base to /usr/local, copying in should preserve any drivers or other files you've added.
    /bin/cp -r /root/apache-VCL-2.3-incubating/managementnode/* /usr/local/vcl
    
  3. Run install_perl_libs.pl to add any new perl library requirements:
    /usr/local/vcl/bin/install_perl_libs.pl
    

Restart vcld service

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