General installation instructions

QLR Manager is a Query, Layout and Report (QLR) Manager that allows you to write SQL queries, run them, save them, and share them with other users. Once a SELECT query has been run, the resulting report can be formatted by creating a layout and applying the Layout to the Report data. Output from non-SELECT queries can also be viewed, but a layout cannot be applied to this type of output.

QLR Manager also provides the ability to Define Macros and Create User Menus. Through the use of User Profiles defined with User ID Administration, the Administrator is provided extensive control over the capabilities of a User ID. These capabilities range from a Restricted User that can only connect and run queries and macros from a menu, through an Advanced User that can create and save queries, wizard, layouts, macros and menus.

QLR Manager uses a series of database tables to manage this information. These tables must be created and populated with control data in your database. It is suggested that you create a separate database space (schema) within your overall database to manage these tables.

Establishing the QLR Manager operating environment:

The basic requirements are:

PHP 4.1 or greater.
A database engine supported by QLR Manager.
Installing the QLR Manager application:

The Install & Migration Manager is intended to guide you through the installation process. There are only a few steps in the process, each requiring minimal information. Once the necessary information is gathered, the actual execution time of the installer only takes a few seconds, depending on your server. These are the steps:

1. Download the desired archive type of the Full Version package from our Downloads page.
2. Create a directory, e.g. /qlr, /qlrmgr, etc. in your server's execution path for QLR Manager.
3. Unzip or untar the contents of the full install package into the new directory and be careful to preserve the original directories/folders as they exist in the install package. If you download and extract the contents on a client, you can FTP the files to your new server directory.
4. Obtain a FREE 30 day trial license for the Enterprise Edition from our Purchase page. Place the file into the new server directory. If you first request a trial license and later wish to buy QLR Manager, you simply upgrade the trial license.
5. It is optional to temporarily grant Read, Write and Execute (Unix 777) permissions to the main directory you created in step #2. This will allow the install program to write the qlr.ini file into this directory. If you don't grant this authority, the install program displays its output to the browser, which allows you to copy and paste the contents necessary to manually create the qlr.ini file. The qlr.ini file must be present in the new server directory to run QLR Manager. If write authority is granted, don't forget to remove it after the installation is completed.
6. From your browser, start the install program by referencing install.html in the newly created directory, e.g. Select the New Installation option and click the Begin button.
7. Carefully follow the instructions on the install panels, paying attention to any messages generated during the install. The bold labels are linked to help in the Installation topic of the QLR User's Guide. Use the buttons on the bottom of the panel to proceed through the upgrade process.
8. After completing all the install panels, the qlr.ini file will be created with all the configuration parameters for your QLR Manager installation. If you granted the authority suggested in step #5, the qlr.ini file will be written into the new server directory.
9. Grant Read, Write and Execute (Unix 777) permissions to the following directories in the QLR Manager directory structure:
/reports to allow for temporary output file storage and support the creation of PDFs.
/graphs in the Enterprise Edition to support the creation of charts and graphs.
10. From your browser, start QLR Manager by referencing qlrmanager.html in the newly created directory, e.g.

The Install & Migration Manager is not only intended to initially install QLR Manager, it can also be used to update the QLR Manager parameters. On installation step Step 2 of 3, there is a button at the bottom of the page to Update Settings Only. This will bypass dropping and re-creating of the tables used by QLR Manager, and only update the parameters in the qlr.ini file.

The install process can be started by entering install.html, with the proper path information, into your browser. Install.html resides in the top level directory you created to store the QLR Manager files on your server.

Items to consider before installing

Before running the install program, there are several items that should be considered:

On what server will the QLR Manager application be located?
How will I be storing the temporary HTML content that is produced by QLR Manager? In files on my server, or in a database?
What Database ID will be used to perform the install?
What database/schema (new or existing) will the QLR Manager tables be installed in?
On what server is this database located?
What Database ID (new or existing) will run QLR Manager?
Do I want to use or change any of the Advanced Settings?

Prior to running the install program, you should browse through this documentation to answer the preceding questions.

Where to store your report pages

When QLR Manager runs, it produces HTML output to be displayed by the client's browser. Some of this HTML, particularly report output, must be stored somewhere in order for the application to provide some of its functions such as downloads of various formats and emailing output. It can be stored in either your server's file structure or inside the database you will be working with.

The default install setting for pageSource is to store the pages as files in the /reports directory. There may be times when you are not able to choose the file option for storing pages. An example would be when you are using a UNIX based hosting service that runs its web server ID as "nobody". In this situation, you would have to grant read, write and execute permissions to all users (UNIX permissions of 777) in order for the web server ID "nobody" to write the pages to the /reports directory. The 777 setting leaves you wide open for other persons on your server to access your /reports directory, and from there, the rest of your server directories. In these instances, you may choose to use the database storage option, as opposed to a 777 directory setting.

As with all the settings in the qlr.ini file, you can experiment with both options by updating the settings only.

If you do choose the file option, you can password protect (.htaccess) the /reports directory. This will force the User to enter a User ID and password prior to being able to use the application.

Granting access to the /reports directory:


The CHMOD command can be used to grant read/write access to a file or directory. A setting of 755 can be used. See above for when it might not be possible to establish 755 permissions.

Windows 2000

IIS runs with an anonymous user called IUSR_ followed by your computer name (i.e. IUSR_MYCOMPUTER).
You will need to go to the folder or file you are trying to write to, right-click and choose Properties.
Click the Security Tab, then click the Add button.
In the drop-down list, select your computer if it isn't already selected, and look for the IUSR_ account. Click on this item and click the Add button. It may take a few seconds to process.
You will then return to the panel with file permissions. Check the read and write permissions, then click OK.

Windows XP

Go to the /reports folder, right-click it and choose Sharing and Security.
Note: This only works for the /reports folder and not the qlr.ini file. You will need to update the qlr.ini file manually at the end of the install process.
Click the Sharing Tab.
Under Network sharing and security, check both the "Share this folder on the network" and the "Allow network users to change my files". Keep the Share name as "reports".
Recommended php.ini settings

The PHP Core configuration settings can be changed by editing the servers php.ini file. Adjusting the following 3 settings will help ensure QLR Manager functions properly on your server. If you're running on a shared hosting environment, check with your Hosting Service (ISP) about modifying these settings. Some ISPs provide solutions where the php.ini file can be read from the hosted domain to override the server's default php.ini settings.

max_execution_time Should be set from a minimum of 60 seconds to as long as 90 seconds to support large, sophisticated queries. Beyond 90 seconds, the browser may timeout waiting for a response from the server.
memory_limit The Enterprise Edition with chart support enabled should be set to a minimum 32M.
The Enterprise Edition without chart support, or other editions, should be set to a minimum 16M.
safe_mode With this mode set to OFF, QLR Manager will adjust memory allocation and execution time as needed to execute large queries or longer running macros.
PHP GD support If you intend to create charts and download PDFs, GD support must be enabled in PHP. More information is provide below about Chart support and Graphics manipulation with PHP.
QLR License file:

In order to run QLR Manager, you must have a product license file. Prior to buying QLR Manager, we urge everyone to take advantage of our free 30 day trial of the Enterprise Edition. This will ensure it runs correctly in your environment and the product meets your expectations. If you first request a trial license, and then wish to buy QLR Manager, you will simply upgrade the trial license. To receive a license, you must first create a user account so we can e-mail your license file. A trial or purchased license can be obtained from the Purchase page of our web site.

To install the license file, simply copy the file into the same directory where QLR Manager is installed, which is the same directory where the file qlrmanager.html is located.

A license will entitle you to free upgrades and fixes within the same version. We don't release a new version until we incorporate significant new function and features. Upgrades to new versions are steeply discounted for existing license holders.

The qlr.ini file

In order for QLR Manager to run, it must create a file called qlr.ini in which it stores the parameters that were provided during the install process.

When the install program completes, it attempts to write the contents of this file into the main QLR Manager directory (where qlrmanager.html resides) by either creating or replacing the qlr.ini file. If the application has authority to write this file, it will do so. If not, it sends the content to your browser window. You can simply create a file called qlr.ini (all lower case) in the main QLR Manager file directory and copy and paste this information into the file.

If you wish to have this file automatically created, see the section on Where to store your report pages for information on how to set up proper read/write authority to the main directory.

The qlr.ini content will look as follows. As you can see from the amount of content created below, copying and pasting the information may be easier than setting up the necessary read/write access.

// *********************************************************************
// Created by QLR Install Manager on 06-12-2006 19:16:47
// Contains QLR Manager configuration variables for product version 5.0
// This file can be manually edited, except for the userid and password.
// You must use the install program to update these two values.
// *********************************************************************
db            = baitshop
host          = localhost
useSchema     = Yes
userid        = VmxaV05GVXhaM2hWVkDFOStY
password      = Z28yFmKtMCtN
dbType        = mysql
appServer     = localhost
adminEmail    =
sysEmail      =
cacheMB       = 10
reportRows    = 500
maxLife       = 30
maxTime       = 300
imageCache    = 20
DBfilter      =
startFile     = qlrmanager.html
logoffFile    =
maxSizeMB     = 3
pageSource    = database
isGraphing    = Yes
archiveDays   = 60
charset       = iso-8859-1
DBcharset     = default
ldap          = Yes
DBlogin       = No
primerDB      =
security      = Yes
showErrors    = No
General install options

The following selections and values can be entered during installation to customize many features of QLR Manager. The values will be populated in the qlr.ini file.


The Database specifies the type of database engine with which QLR Manager will interact. This selection is stored in the qlr.ini file as the dbType.

Login ID and Password:

Once you have run the install process and created a qlr.ini file, the master userid and password that were created in the qlr.ini must be entered to update the file when running the install program for a second time. You will be given 4 attempts to enter the correct ID and Password. After that, it is necessary to close your browser session and try again.

Click on these links for install information specific to MySQL or Oracle configurations.

QLR Manager ID:

An ID must exist or be established that will have the ability to update the QLR Manager tables. Its purpose is to be able to save, update and delete the queries, wizards, layouts and other data that will be created by QLR Manager. It is best to create a separate ID to run QLR Manager, as the installer will grant SELECT, UPDATE, INSERT and DELETE privileges to this ID for each of the tables created to support QLR Manager.

MS SQL Server requires that the QLR Manager master ID is an existing SQL Server ID and password that has been set up in SQL Server to use "SQL Authentication".

Password for the QLR Manager ID:

In order to connect to the database where the QLR tables reside, the QLR Manager ID requires a password. It is suggested that a password be 6 to 16 characters in length, and contain both alpha and numeric characters.

When the ID and password are saved in the qlr.ini file, they are encrypted by the install program. All values, except for the QLR ID and password can be edited with a text editor in the qlr.ini file.

Note: Do not attempt to manually edit the QLR userid or password values in the qlr.ini file. Use the install program to update the userid or password by launching your web browser and accessing the file install.html. Select the Upgrade existing installation option and proceed through the panels to Step 2 of 3 and click Update Settings Only.This will update the userid and password in your qlr.ini file. Close your browser and open a new browser session to test the change.

Create a schema:

When using PostgreSQL, you have the option of creating a separate schema for the QLR Manager tables. If you do choose to create a schema, it will be given the same name as the QLR Manager ID you create. If you do not choose this option, the QLR Manager tables will be created in the "public" schema. This option will only appear for a PosgreSQL install.

The file path where the MS SQL Server database will be located:

If you are creating a new Microsoft SQL Server database for storing your QLR Manager tables, you must reference the absolute path where SQL Server should store the database on your file system. Do not include the database file name in this reference. QLR Manager will default this value to where the SQL Server master.mdf file is stored on your system.

An example of a path name is C:\Program Files\Microsoft SQL Server\MSSQL$LOCALHOST\data\

User ID and Password request:

The email address for User ID and Password request is used on the QLR Manager Connect panel. It is presented as an expandable/collapsible section entitled Request ID and Password. It contains fields for the User to enter their email address, subject, and description. This option is not available with the Basic edition of QLR Manager and will only be visible if a value is provided for this field. The value is recorded in the qlr.ini file as sysEmail.

Report database problem:

The email address for reporting database problems is used on the QLR Manager Connect panel. It is presented as an expandable/collapsible section entitled Report Database Problem. It contains fields for the User to enter their email address, subject, and description. This option is not available with the Basic edition of QLR Manager and will only be visible if a value is provided for this field. The value is recorded in the qlr.ini file as adminEmail.

Advanced settings

There are several advanced settings that control how QLR Manager behaves.

HTML character set for generated output:

QLR Manager allows you to specify the character set that is used in the HTML page encoding. This allows your browser to interpret various character sets. QLR Manager provides a drop down list of the most common character sets, but this entry in the qlr.ini file can be specifically edited if necessary.

The MySQL version of QLR Manager, when using MySQL version 4.1 or later, allows for you to install the product as UTF-8 database tables. This option is found in the Advanced Settings section of Step #2 of the installation process. The selection is stored in the qlr.ini file as the charset value.

DB character set for QLR Manager Tables:

For MySQL installations you can specify to create the Tables which will stored QLR Manager data to either use the database default character setting, or specifically reference the Tables to store data in UTF-8 format. The choice is stored as the DBcharset option.

Archive days for charts:

The sending of e-mails that contain charts can be done in one of two ways. The first is that the charts are sent as attached files. The second is to reference the charts as an in-line image, using an HTML <img> tag. When sent as an in-line image reference, QLR Manager has to maintain a copy of the chart on the server. This setting specifies the number of days for the files to be retained before being erased. The value is recorder in the qlr.ini file as archiveDays.

Server modSecurity:

Many hosting environments have installed PHP hardening packages to prevent SQL injection attacks and other malicious activities. QLR Manager employs an internal scheme to permit the submission of words in form elements that would otherwise be rejected by modSecurity rules and result in a 403 Forbidden error. The default install will result in:

security = Yes

If running inside a firewall or on a server without any modSecurity protection, this value can be set to No which will moderately speed up page submissions and server response.

Limiting the User's idle time in their session:

It is possible to limit the amount of time that a user's session will stay alive with the server. This is accomplished by adding the maxLife parameter, with a value of minutes, to the qlr.ini file. This will prevent an idle session from lasting longer than the specified number of minutes. Please note that depending on the server environment, the server itself may end the session sooner than the time specified. The following setting would ensure that a user could not set idle more than 30 minutes:

maxLife = 30
Report array cache size:

The cacheMB value controls the maximum number of megabtyes of data stored in memory after a SELECT query has run. The larger this number, the quicker the response will be when formatting your data with Layout information. The drawback is the amount of server memory that will be used, which if too much, will actually slow performance. This setting can range from 1 to 200 MB. This can also be controlled at the query level by adding the comment -- set_cache xx to the start of the query. -- set_cache 20 would allow 20MB of data to be stored when a query is executed. When -- set_cache xx is used, QLR Manager will not exceed the qlr.ini cacheMB maximum setting. The initial value found in this field is determined by the installer checking the PHP memory_limit setting and executing a small "speed test". Based on the results, a value ranging from 1 to 50 will be assigned.

cacheMB = 10
Report rows:

The reportRows value sets a default which controls the total number of rows of data that are displayed when a query result is shown. A larger number will show more data, but it may take longer to display results. This value can be overridden with the Max displayed rows control in the Report Body section of the Layout panel for specific reports. If the Layout is saved as the same name as the query or wizard producing the report, it will become the default layout applied when the query, wizard or menu item is executed. When the number of rows produced by the query exceeds this reportRows value, navigation links (First, Back, More, Last) are presented above the report to move between page sets.

The number of rows displayed will not always be exactly equal to this setting, as subtotaling data will add additional rows to reports. QLR Manager will always complete the current page with data. If you have a reportRows setting of 500 and the 500th row appears in the middle of the page, QLR Manager will fill up the final page with rows of data, if there is more data available.

Maximum execution time:

This maxTime setting determines the maximum amount of time that is allowed for an action to complete, such as running a query. A typical setting is 300 seconds.

Image cache size:

QLR Manager is able to display binary data (BLOB fields) as images. In order to do this, it must temporarily store the images outside of the database on the server. The imageCache setting determines the amount of memory in megabytes to allocate for image management. A typical setting is 30. Once this limit is exceeded, no more images of this type will be displayed in the report.

QLR Manager startup file:

This option allows you to change the name of the start up file for QLR Manager. The default value is qlrmanager.html. If you wish, you can rename qlrmanager.html so that the Users can start QLR Manager by referencing a different file name. If the file is renamed, the name of the new file should be entered and will be recorded in the qlr.ini file as startFile.

Note: A file named js_bver.html located in the /qlr_manager directory contains a line of Javascript near the top of the file:

if (self == top) location.replace("../qlrmanager.html")

The reference to qlrmanager.html should be replaced with the new start file name.

QLR Manager logoff file:

This option allows you to specify a URL that the User will be directed to when clicking the Log off button in the header. The default behavior is to direct the User to the Connect panel when logging off QLR Manager.

Maximum output file size:

This maxSizeMB value allows you to specify the maximum size of files to be created to send to the User's browser session. This value is entered as a number between .5 and 20, representing page sizes from .5 to 20 megabytes. The default value is 20 megabytes.

If a query produces a report with numerous columns of data, then the number of rows returned will be limited to stay under the size limit. Where this setting is most relevant, is in the production of reports in Macros. As there is no row limitation to the number of rows of data the will be returned in a SELECT query when used in a Macro, the output will be restricted to fall under the set limit.

Note: For MySQL users, the mysql database engine has a parameter called max_allowed_packet, which determines the amount of data that can be sent to the server in the form of a query. More information on this can be found here. When using MySQL and choosing to store your report pages in the database, make sure to adjust your mysql.ini file max_allowed_packet setting to accommodate the size of your "Maximum output file size" setting. For example, if you what to allow for content of up to 10 megabytes to be displayed, you should set both the "Maximum output file size" setting in QLR Manager to 10 megabytes and also set the mysql.ini setting of max_allowed_packet to 10 MB as well.

Database selection filter:

The DBfilter value allows QLR Manager to filter out the database selection list that is presented to the User. If you're accessing a database with hundreds of schemas, it allows you to narrow down the display list. This may very well be the case if you are on a hosting service that shares a database engine. It uses the SQL LIKE command format and is case sensitive. A setting of fin% would select all databases beginning with "fin". You do not need to enclose this filter text in quotes.

If a DBfilter of **omit** is specified, then the database/schema selection control will be suppressed from appearing altogether. This may be helpful in large Oracle installations with thousands of schemas.

LDAP interface support:

LDAP (Lightweight Directory Access Protocol) support allows for the interfacing with an external directory to authenticate a user when they attempt to connect to QLR Manager. The qlr.ini keyword is ldap. If enabled, when the Connect button is clicked at logon time, QLR Manager looks for a file called ldap.php and executes it. It is up to the installer of QLR Manager to place the php code they wish to execute into the ldap.php file. The php code can be designed to execute LDAP functions, or any other functions that are desired.

At the bottom of the file, there are several variables that are passed back to the login process. These are:

$ldap_authentic This is set to either TRUE or FALSE, and tells QLR Manager whether the login ID has been authenticated by the external process
$ldap_message This is an optional message that can be displayed when $ldap_authentic = FALSE
$ldap_user Is an optional value that can be set to replace the login ID that the users provided. This value might be part of a user's directory data.
$ldap_password Is an optional value that can be set to replace the login password that the users provided. This value might be part of a user's directory data.
Simple Mail Transfer Protocol (SMTP) support:

QLR Manager's default behavior examines your system's php.ini file to determine the SMTP server (php.ini setting for "smtp") and port (php.ini value of "smtp_port"). It is possible to override these values, as well as providing a User ID and Password, by adding entries to the data table called qlr_info (notice this is not the qlr.ini file, but a database table).

This is accomplished by connecting to your master QLR Manager database/schema and issuing the following SQL commands in the Query panel:

insert into qlr_info values ('smtp_server','');
-- optional port, default value is 25 if not specified
insert into qlr_info values ('smtp_port',  '22');
-- optional userid, provide if necessary
insert into qlr_info values ('smtp_userid','fred');
-- optional password, but must be used if userid is provided
insert into qlr_info values ('smtp_password','mydog8it');
Creating pseudo log on IDs and passwords:

The base function of QLR Manager is to validate the User IDs and passwords that have been established in the database engine. It is also possible to create "pseudo" QLR Manager IDs and passwords that will allow persons to connect to the database. The actual ID and password that these pseudo IDs will connect through is the QLR master ID and password.

Pseudo IDs may be useful in instances such as establishing IDs for a set of customers, a class of students or other groups of users. Each ID can manage its own set of Queries, Layouts, etc. and authority levels can be controlled using QLR Manager's User ID Admin and Tools function accessed from the Connect panel.

In order to utilize this function, the qlr.ini file must be edited to set ldap = qlrid. The second step is to edit a php file (found in the main QLR directory) called qlrid.php. This file will contain the pseudo IDs and their passwords, so take care to limit access to this file. The content of the editable portion of qlrid.php is included below. The two user IDs that are present in the file are for example purposes only. You should edit this file to add your desired IDs and their passwords.

// don't edit above this line

// **********************************************************************
// This file is designed to allow you to create 'pseudo' users
// that will connect to QLR Manager using the QLR master ID and password
// but will appear as individual users with their own queries, layouts, etc.
// NOTE: the qlr.ini file must be updated so that the ldap entry is
//       ldap = qlrid
// **********************************************************************

// initial state of authentication
$qlrid_authentic = FALSE;

// build up an array of all the pseudo users you want to manage.
// the format is an associative array where
// the $user[userid] is assigned it's password

$user = array();
// userid          password
$user['tom']     = 'misty';
$user['charlie'] = 'i82much';

// validate that the password is correct for
if (isset($user[$_POST['userid']])) {

    // good password for the userid.
    if ($user[$_POST['userid']] == $_POST['password']) {
        $qlrid_authentic = TRUE;
    // password did not match. This is the failure message
    else {
        $qlrid_message  = 'Could not authenticate login ID '.$_POST['userid'];
// this allows all existing other normal database id's to be used
// remove the following line if you want to block their access
else $qlrid_authentic = 'bypass';

// don't edit below this line
Bypassing direct socket e-mail distribution (optional):

When distribution e-mails are sent, QLR Manager attempts to connect directly to the SMTP mail server's socket. However, in some environments, QLR returns a false positive that the socket connection method is working properly. If this is the case in your situation, an optional entry of useSocket = No can be added to your qlr.ini file. This will instruct QLR Manager to not directly use the SMTP socket. The drawback of employing this setting is that distribution e-mails will be sent at a slower rate.

Presetting the connection server:

In a single database server environment, it may be desirable to preset the server value so that the DB server input field on the Connect panel is not displayed to the User and the server value is automatically assigned. This is accomplished by manually adding a line item to the qlr.ini file to set the "presetServer" value. An example of such an entry is:

presetServer = localhost
Chart support

The Enterprise Edition of QLR Manager supports chart creation. Two different methods for creating charts are supported.

The first method uses Fusion Charts. An evaluation copy of this product is packaged with QLR Manager. Charts will be produced with text at the bottom of the chart indicating that it is a trial version of Fusion Charts. This can be eliminated by buying a licensed copy of the product from Fusion Charts.

The second method of creating charts is by using a product called JPgraph. A fully licensed version is packaged with QLR Manager. In order to produce JPgraph charts, PHP must be running with GD support, either basic GD or GD2. GD support is enabled by uncommenting the proper PHP extension in your php.ini file, which is either extension=php_gd.dll or extension=php_gd2.dll. The install program will automatically check to determine if GD support is installed.

From an article located at, below is a brief explanation on how to install GD support:

Graphics manipulation with PHP

GD is an ANSI C library for the dynamic creation of images. Much like PHP, GD is an open source library that is maintained by; the official home page of GD is As of this writing the current version of GD is 2.0.3 for the stable version. GD was once able to output both the GIF format and the JPG formats, however because of the Unisys patent, version 1.6 was the last with GIF support. The GD developers moved in favor of PNG, which we'll be using here.

Installing GD from Source:

Installing GD is pretty straightforward on both Windows and Linux. On the Macintosh I'd recommend a precompiled binary. An excellent source for Mac users is from Marc Liyanage at GD is going to be standard in the next upcoming release of PHP 4.3. Once this version becomes available, GD will be there by default. Many precompiled versions of PHP come with GD support.


Getting GD enabled on the Windows platform is very easy. The GD module is included in the PHP distribution, but is not enabled by default. You will need to modify your php.ini file and uncomment the line:


Then make sure the php_gd2.dll library is in the correct directory. You will have to restart your web server if PHP is running as a module. No restart is needed if PHP is running as a CGI.

If your ISP does not have the GD library compiled in to PHP, you can use the dl() function. Although it's slower, you can also choose to load the GD module on demand.


Binding GD to PHP under Linux is more challenging, but only required if running a PHP version earlier than 4.3. You'll need to download GD as well as FreeType if you plan to do TrueType font manipulation You can get GD from the Boutell homepage at You can get FreeType at

Unpack the GD and FreeType distributions, and run the following commands in each.

make install

Once GD is built you need to bind it to PHP. In the directory that contains the PHP source, type:

./configure --with-gd --with-freetype-dir
make install

If you have any additional parameters to configure PHP, you'll need to add them to the configure statement.

For RedHat and other RPM users, binary installs for the i386 platform are available at:

A simple call to phpinfo() reports whether the GD library is bound to your install of PHP.

E-mail or download FusionCharts

If you wish to embed FusionCharts into the various download formats or email options available in Report Tools or send them using Macros, the FusionChart must be converted to an image on the server. To accomplish this, a free third party tool is available from Although PhantomJS is free to distribute, it is not included with the QLR Manager install package because there are three different versions depending on the server OS - Windows, Linux 32-bit and Linux 64-bit.

There is a PHP script in the main QLR Manager directory called phantomjs_check.php that can be executed to determine the proper phantomjs package to obtain for your environment. This script can be executed from your browser's address area by substituting your domain and path with something like: As a convenience, we host the Linux and Windows versions of PhantomJS at We have discovered in some instances that the Linux 64-bit version of PhantomJS will not run on a 64-bit server and in most of these cases the 32-bit version will often run successfully.

The PhantomJS directory structure is included within the QLR install directory. After obtaining the correct version of the phantomjs binary, it must be installed in the QLR install directory > phantomjs > bin folder. With the PhantomJS binary present, FusionCharts and FusionWidgets can be E-mailed, and the various download formats can be created. If you are planning to use FusionCharts in the manner described, you are encouraged to purchase a licensed version from FusionCharts which will remove the FusionCharts XT Trial watermark from the PNG images.

More information about using PhantomJS can be found at: A few things to note when installing the appropriate phantomjs package for your server environment:

The appropriate binary must be installed in the correct folder: QLR install directory > phantomjs > bin.
The phantomjs binary must be named phantomjs in Linux environments and phantomjs.exe in Windows.
When using FTP to transfer the phantomjs binaries, they must be transferred using a Binary transfer.
The /phantomjs folder, along with all the nested folders and files should have 755 permissions.
Sometimes the linux-X86-64 (64-bit) version of phantomjs will not run on a 64-bit server and in most of these cases the linux-i686 (32-bit) version will often run successfully.

An easy way to determine if PhantomJS is working properly is to generate a report with a FusionChart, then use Report Tools to create a PDF.

Version migration

A migration is necessary when the underlying QLR Manager database tables, or data in those tables, must be updated. A migration is always necessary when upgrading from one major version to another, e.g. version 4.1.5 to version 5.0. In addition to updating the QLR database tables, the migration will copy your existing queries, layouts, etc. to the new version.

The same file will work with all levels of the same major version number. In other words, a version 4 license will work with versions 4.0, 4.1.5, etc. but not version 5.0. Existing customers upgrading to the latest version will receive a 60% discount for a one version upgrade and a 20% discount for a two version upgrade. Before purchasing an upgrade license, we urge you to take advantage of a FREE 30 day trial license for the Enterprise Edition of the new version. Trial licenses can be obtained from our Purchase page. If you first request a trial license and later wish to buy QLR Manager, you simply upgrade the trial license.

1. Download the desired archive type of the Full Version package from our Downloads page.
2. Create a new directory, e.g. /qlr_v53, for the new version of QLR Manager.
3. Unzip or untar the contents of the full install package into the new directory and be careful to preserve the original directories/folders as they exist in the install package. If you download and extract the contents on a client, you can FTP the files to your new server directory.
4. Copy the qlr.ini file from your existing QLR directory into the new directory.
5. If you are utilizing the conmsg_xxx.html file (Connect panel message where xxx represents the language code), copy your existing conmsg_xxx.html file into the new directory.
6. Place the trial or purchased license file ( for the new version into your new directory.
7. Below are the steps to follow depending on your currently installed version. The version appears in the header of the Connect panel when first accessing QLR Manager.
Version 5.0 or newer:
Launch your web browser and access the file qlrmanager.html in the newly created directory, e.g. /qlr_v53. QLR Manager will automatically detect that it needs to update its data tables. An Update button will be presented. Click this button to update your version of QLR Manager.
Versions prior to 5.0:
Launch your web browser and access the file install.html in the newly created directory, e.g. /qlr_v53. Select the Upgrade existing installation radio button near the top of the panel and click the Begin button.
You will be prompted to enter the master QLR Manager User ID and Password that you created and stored in your qlr.ini file with the initial installation of the earlier version. Click Continue
Verify the license information on the next panel and review any other notes and messages. Click Proceed to Step 1 
The next few panels will collect all the information necessary to perform the migration. Complete all the applicable fields and selections, while paying attention to any messages. The bold labels are linked to help in the Installation topic of the QLR User's Guide. Use the buttons on the bottom of the panel to proceed through the upgrade process.
The install program will display the results of the upgrade activity as it migrates your QLR data (queries, layouts, etc.) from the prior version to the new level of QLR Manager tables. Please check the results for any errors that may have been encountered.
Test your new version of QLR Manager. Once you are satisfied that it is working correctly, you can rename or delete the old version directory and rename the new directory to the old directory name.

If you wish to erase your existing queries and layouts, or this is a new installation, simply access install.html with your browser and choose the New Installation option to install the product.