Thank you for selecting RackTables as your datacenter management solution!
If you are looking for documentation or wish to send feedback, please
look for the respective links at project's web-site (racktables.org).

*******************************************************
*                                                     *
*             INSTALLING RACKTABLES                   *
*                                                     *
*******************************************************

*** I. SERVER ***

RackTables requires a MySQL server version 5.x built with InnoDB and
Unicode support and configured appropriately. It also requires an Apache
httpd with PHP 5 module and several PHP extensions. Below is a list of
know-good distributions with respective setup notes.

*** Fedora 8-16
* MySQL: yum install mysql-server mysql
* Apache/PHP: yum install httpd php php-mysql php-pdo php-gd php-snmp php-mbstring
* To enable Unicode, add "character-set-server=utf8" line to "[mysqld]"
section of "/etc/my.cnf" file and restart mysqld.

*** ALTLinux 4.0
* MySQL: apt-get install MySQL-server
* Apache/PHP: apt-get install apache2-httpd-prefork php5-gd2 \
php5-pdo_mysql php5-pdo apache2-mod_php5 php5-mbstring
* To enable Unicode, add "CHSET=utf8" line to "/etc/sysconfig/mysqld" file
and restart mysqld.

*** openSUSE 11.0
* MySQL: YaST -> Software -> software management -> Web and LAMP server -> mysql
* Apache/PHP: use YaST to install apache2-mod_php5, php5-gd, php5-mbstring,
php5-mysql, php5-snmp and php5-ldap
* To enable Unicode, add "default-character-set=utf8" line to "[mysql]"
section of "/etc/my.cnf" file and restart mysqld.

*** Scientific Linux 6
* MySQL: yum install mysql-server mysql
* Apache/PHP: httpd php php-mysql php-pdo php-gd php-mbstring
* To enable Unicode, add "character-set-server=utf8" line to "[mysqld]"
section of "/etc/my.cnf" file and restart mysqld.

*** FreeBSD 8
* Apache/PHP:
# make -C /usr/ports/www/apache13-modssl install
# make -C /usr/ports/www/php5-session install
[X] CLI        Build CLI version
[X] APACHE     Build Apache module
[X] MULTIBYTE  Enable zend multibyte support
# make -C /usr/ports/graphics/php5-gd install
# make -C /usr/ports/databases/php5-pdo_mysql install
# make -C /usr/ports/devel/pcre install
!!! Enable UTF-8 support ............ : yes
!!! Unicode properties .............. : yes
# make -C /usr/ports/devel/php5-pcre install
# make -C /usr/ports/converters/php5-mbstring install
[X] REGEX  Enable multibyte regex support

# make -C /usr/ports/net-mgmt/php5-snmp install
# make -C /usr/ports/net/php5-ldap install

*** II. FILES ***
Place the contents of "wwwroot" directory into desired directory on the
web-server. Update Apache httpd configuration as necessary.

*** III. INSTALLER ***
Open your configured RackTables URL and you will be prompted to configure
and initialize the application.

*******************************************************
*                                                     *
*              UPGRADING RACKTABLES                   *
*                                                     *
*******************************************************
RackTables (since 0.14.6) provides an automatic database upgrade feature.
If you already have a working installation, the following procedure
should be sufficient:

0. BACKUP YOUR DATABASE and check the release notes (below) before actually
   starting the upgrade,.
1. Remove all existing files except inc/secret.php, gateways'
   configuration (in the gateways directory) and local mod (inc/local.php).
2. Unpack the new tarball into the place.
3. Open your RackTables page in a browser. The software detects version
   mismatch and displays a message telling to log in as admin to finish
   the upgrade.
4. Do that. Normally, everything should be Ok. If there are
   errors displayed, send these in a bug report.

*******************************************************
*                                                     *
*                   RELEASE NOTES                     *
*                                                     *
*******************************************************

*** Upgrading to 0.19.2 ***

This release is different in filesystem layout. The "gateways" directory
has been moved from "wwwroot" directory. This improves security a bit.
You can also separate your local settings and add-ons from the core RackTables code.
To do that, put a single index.php file into the DocumentRoot of your http server:

<?php
$racktables_confdir='/directory/where/your/secret.php/and/local.php/files/are/stored';
require '/directory_where_you_extracted_racktables_distro/wwwroot/index.php';
?>

No more files are needed to be available directly over the HTTP.
Full list of filesystem paths which could be specified in custom index.php or secret.php:
 $racktables_gwdir:      path to the gateways directory;
 $racktables_staticdir:  path to the directory containing 'pix', 'js', 'css' dirs;
 $racktables_confdir:    path where secret.php and local.php are located. It is not
                         recommended to define it in secret.php, cause only the path to
					     local.php will be affected;
 $path_to_secret_php:    Ignore $racktables_confdir when locating secret.php and use 
                         the specified path;
 $path_to_local_php:     idem for local.php.

*** Upgrading to 0.19.0 ***

The files, which are intended for the httpd (web-server) directory, are
now in the "wwwroot" directory of the tar.gz archive. Files outside of
that directory are not directly intended for httpd environment and should
not be copied to the server.

This release incorporates ObjectLog functionality, which used to be
available as a separate plugin. For the best results it is advised to
disable (through local.php) external ObjectLog plugin permanently before
the new version is installed. All previously accumulated ObjectLog records
will be available through the updated standard interface.

RackTables is now using PHP JSON extension which is included in the PHP
core since 5.2.0.

The barcode attribute was removed. The upgrade script attempts to
preserve the data by moving it to either the 'OEM S/N 1' attribute or to
a Log entry. You should backup your database beforehand anyway.

*** Upgrading to 0.18.x ***

RackTables from its version 0.18.0 and later is not compatible with
RHEL/CentOS (at least with versions up to 5.5) Linux distributions
in their default installation. There are yet options to work around that:
1. Install RackTables on a server with a different distribution/OS.
2. Request Linux distribution vendor to fix the bug with PCRE.
3. Repair your RHEL/CentOS installation yourself by fixing its PCRE
RPM as explained here: http://bugs.centos.org/view.php?id=3252

*** Upgrading to 0.17.0 ***

One can always install RackTables 0.17.0 from scratch. However, upgrading
an existing installation to 0.17.0 implies a certain upgrade path. If the
existing database version is less, than 0.16.4, it must first be upgraded
to version 0.16.4, 0.16.5 or 0.16.6 (at one's choice) using appropriate
tar.gz distribution. The resulting 0.16.4+ database can be upgraded to
0.17.0 (or later version) in a normal way (with tar.gz of the desired 0.17.x
release).

LDAP options have been moved to LDAP_options array. This means, that if you were
using LDAP authentication for users in version 0.16.x, it will break right after
upgrade to 0.17.0. To get things working again, adjust existing secret.php file
according to secret-sample.php file provided with 0.17.0 release.

This release is the first to take advantage of the foreign key support
provided by the InnoDB storage engine in MySQL.  The installer and
upgrader scripts check for InnoDB support and cannot complete without it.
If you have trouble, the first step is to make sure the 'skip-innodb'
option in my.cnf is commented out.

Another change is the addition of support for file uploads.  Files are stored
in the database.  There are several settings in php.ini which you may need to modify:
    file_uploads        - needs to be On
    upload_max_filesize - max size for uploaded files
    post_max_size       - max size of all form data submitted via POST (including files)

User accounts used to have 'enabled' flag, which allowed individual blocking and
unblocking of each. This flag was dropped in favor of existing mean of access
setup (RackCode). An unconditional denying rule is automatically added into RackCode
for such blocked account, so the effective security policy remains the same.
