This page describes how to install and configure the frontend VCL web code components including the web server prerequisites and frontend VCL web code. It also describes how to add local web accounts, configure LDAP authentication, and set the timezone correctly.


Your web server should meet the following criteria before installing the frontend VCL code:

  • Apache HTTP Server v1.3 or v2.x with SSL enabled - while VCL may run under another webserver capable of running PHP code, it has only been tested to work with Apache HTTP Server
  • PHP 5
  • php modules that should be installed (depending on your Linux distro, some of these may be compiled in to php instead of being a separate module):
    • php-gd
    • php-json (if your PHP version is < 5.2, this is not required)
    • php-mcrypt
    • php-mysql
    • php-openssl
    • php-sysvsem
    • php-xml
    • php-xmlrpc
  • useful to have the server set up to be able to send debugging emails
  • php-mcrypt requires libmcrypt and mcrypt libraries as dependencies. These may need to be installed first.

Installing VCL Frontend Web Code

  1. If you haven't already done so, download and extract a copy of the latest release. There is a link to it under the Project Resources section on our wiki home page. Look for "Current version".
  2. copy the "web" directory to a location somewhere under the web root of your web server:
    cp -r web/ /var/www/html/vcl
  3. modify vcl/.ht-inc/secrets.php
    • set $vclhost, $vcldb, $vclusername, and $vclpassword to match your database setup
    • create random passwords for $mcryptkey, $mcryptiv, and $pemkey - $mcryptiv must be 8 hex characters
  4. run the script from within vcl/.ht-inc and give it $pemkey from secrets.php as the passphrase (3 times, copy/paste is a good idea here)
  5. modify vcl/.ht-inc/conf.php to match your site - COOKIEDOMAIN needs to be the domain name your web server is using, or left blank if you are accessing it by IP only.
    NOTE: There is a misconfiguration in conf.php in VCL 2.1. To correct it, change affiliationid for "Local Account" in the $authMechs array from 4 to 1.
  6. *NOTICE* JpGraph 2.x is no longer available. JpGraph 3.x is released under a dual license. QPL 1.0 (Qt Free Licensee). Free for non-commercial, open-source or educational use (JpGraph Professional License for commercial use). If you are planning to use this for commercial use and don't want to pay for JpGraph, you can safely skip this step with the only side effect of not being able to display a few graphs on the statistics page.
    Download JpGraph from
    • For PHP5, download the 3.x series, extract it, and copy the src directory from it to vcl/.ht-inc/jpgraph
  7. download version 0.4.0 of Dojo Toolkit:
    • extract it under the vcl directory and rename "dojo-0.4.0-ajax" to "dojoAjax"
  8. download version 1.1.0 of Dojo Toolkit:
    • extract it under the vcl directory and rename "dojo-release-1.1.0" to "dojo"
  9. go into the themes directory (vcl/themes) and run "./ default" to copy parts of dojo's css into the "default" theme
  10. if you want to be able to edit any of the documentation that comes bundled with the vcl web code, download fckeditor from (most people can skip this step)
    • extract it under the vcl directory
  11. open a browser and open the testsetup.php page
  12. debug any issues reported by testsetup.php
  13. now, open the index.php page in your browser
  14. select Local Account and use 'admin' as the user and 'adminVc1passw0rd' as the password
  15. click the "Management Nodes" link
  16. enter the hostname and IP of your management node
  17. click Add
  18. fill in "Install Path" - this is parent directory under which image files will be stored
  19. enter "/etc/vcl/vcl.key" for "End Node SSH Identity Key Files"
  20. click "Confirm Management Node"
  21. click Submit
  22. click the "Management Nodes" link
  23. select "Edit Management Node Grouping"
  24. click Submit
  25. select the checkbox for your management node
  26. click Submit
  27. click "Manage Computers"
  28. select the "Add Single Computer" radio button
  29. click the Submit
  30. fill in Hostname, IP Address, owner (admin@Local), RAM, Proc Speed, Network Speed, select "blade" for Type, select "xCAT 1.x Provisioning" for "Provisioning Engine", and click the checkbox under "allcomputers", and "newimages"
        Note: if using using vmware, select "virtualmachine" for Type and "VMWare Server Provisioning" for "Provisioning Engine"
  31. click Confirm Computer
  32. click Submit (don't worry about the fact that the computer you just added isn't listed after clicking Submit)
  33. after you've configured your image library and your management node has started checking in, you should be able to make a reservation

Adding extra local accounts

There's not currently a tool for this. You will need to add entries directly to the database.

  1. add entry to user table
    INSERT INTO user (unityid, firstname, lastname, email, lastupdated) VALUES ('myusername', 'myfirstname', 'mylastname', 'myemailaddr', NOW());
  2. find out the id generated for that user
    SELECT id, unityid FROM user WHERE unityid = 'myusername';
  3. add entry to the localauth table
    INSERT INTO localauth (userid, salt, passhash, lastupdated) VALUES ('place1', 'place2', 'place3', NOW())
    with place1 = id from step 2
    place2 = an 8 char random string
    place3 = sha1sum( desired password with place2 stuck on the end )
    this can be generated under linux like this (using 'thedog' as the password and 11111111 as place2):
    echo -n 'thedog11111111' | sha1sum
    Once a user has been added, the user can go to User Preferences to change his/her password

Adding LDAP authentication

  1. fill in the necessary information in vcl/.ht-inc/conf.php
  2. add an entry to the affiliation table and use the id for that entry as 'affiliationid' for your new entry in vcl/.ht-inc/conf.php
  3. uncomment the 'require_once(".ht-inc/authmethods/ldapauth.php");' line in in vcl/.ht-inc/conf.php

Setting Time Zone

  1. Edit /var/www/html/vcl/.ht-inc/php5extras.php to indicate the correct time zone:
  2. Edit /var/www/html/vcl/.ht-inc/requests.php (line 3301 currently) to indicate the correct time zone (purely cosmetic):
    print "<small>(Pacific Time Zone)</small>";
  • No labels

1 Comment

  1. As I am not a PHP developer, I am having great difficulty getting all of the php modules installed on Red Hat Enterprise 5, which is the standard for my school. What OS and installation methods (packages vs/ source) have been used in successfully building the web server for VCL?