Installation

Requirements

OASIS is supported only under RedHat Linux 8.0. This means that if you want a support contract with OASIS Professional Services, you must be running RedHat Linux 8.0.

With that said, there are specific software requirements for OASIS. If you can meet these on another platform, you should be able to run OASIS. It is reported to work with RedHat Linux 6.2 through 8.0, as well as FreeBSD.

The specific requirements are these:

Enterprise Server Notes
Users of this version will need the Zend Optimizer 2.1.0 installed. Get it free from http://www.zend.com/


Setup

System Configuration
An ad server requires an accurate clock. It is recommended that for all versions of OASIS, you set up NTP on your system to ensure accuracy of the local clock. OASIS Enterprise requires that the clocks be synchronized between master and slave.

Make sure that the ntpd service is running and is properly configured on your server(s).

Apache Account Configuration
Your Apache account will not have privileges to run the cron jobs. You need to give it a real shell. Edit /etc/passwd to change the apache user's shell from /sbin/nologin to /bin/bash. Standard warnings about editing /etc/passwd apply.

PHP Configuration
If your command-line PHP interpreter is not at /usr/bin/php, make a symbolic link. All of the scripts assume that this is the location of the PHP interpreter.

Make sure that you have a php.ini file and that it contains the following directives:

register_globals = On
always_populate_raw_post_data = On
memory_limit = 64M
register_argc_argv = On
track_errors = On

Note that some of these configuration directives are already in your php.ini file. Don't just blindly add the above lines to your file; change the existing directives to match the ones above.

Special note about register_globals: some administrators are uncomfortable with having register_globals on. You can use register_globals and not compromise your entire site by just enabling it for your OASIS directory. The following lines of httpd.conf can serve as an example:

<Directory /path/to/oasis>
php_flag register_globals on
</Directory>

Zend Optimizer Installation
You will need the Zend Optimizer 2.1.0. Get it for free from http://www.zend.com/. Follow its install documentation.

Apache Configuration

  1. Make sure Apache is configured for PHP.
  2. Include the oasis_httpd.conf file that will be created during the installation process. To do so, add the following to /usr/local/apache/conf/httpd.conf:

    Include conf/oasis_httpd.conf
    

    Note that the path to oasis_httpd.conf is relative to the Apache ServerRoot. Even though this file doesn't exist yet, it's OK to change this; just don't try to restart Apache until you've run the OASIS installer.

  3. Make sure that LimitRequestBody is set to 0. Under RedHat Linux, this directive is set in /etc/httpd/conf.d/php.conf. Change the value and save the file.

OASIS Configuration/Installation

  1. Once you have PHP and all the other software above installed, untar the OASIS distribution in a temporary location.
  2. Edit the file oasis.cfg to set up some initial variables. This file is self-documenting, so you should be able to figure out from the comments how to configure it.
    Enterprise Server Notes
    Copy your license.txt file into the same directory as oasis.cfg


  3. Run install.php as root. When prompted for a MySQL username and password, give a name and password of a user privileged enough to add a new user to the MySQL privileges tables, create the OASIS database, and reload the MySQL server (probably root, which may have an empty password for MySQL).

    If you notice any errors in the last couple steps (where mysqladmin is called to reload, and hourly_maint.php is called), you'll have to manually run those commands. MySQL must be reloaded in order to allow the OASIS scripts to connect to the database. hourly_maint.php must be run to load up shared memory for OASIS.

    If you see warnings about shared memory or database connections, then you are going to have to run hourly_maint.php by hand. If you have to run hourly_maint.php by hand, run it like this:

    su - apache -c '/path/to/oasis/mgmt/hourly_maint.php start'
    

    be sure to replace "apache" with the web_user you defined in oasis.cfg!

  4. Now restart Apache, and you can log into the Web interface.
    Enterprise Server Notes
    Note that OASIS Enterprise Server does not use hourly_maint.php. Instead, it uses master_reload.php on the master server.

    Note that before you run master_reload.php on the master server, you must do two things:

    1. Install OASIS on the slave servers (follow the exact same procedure used to install the master; use the same oasis.cfg and license.txt files).
    2. Restart Apache.
    3. Go to the Web interface on the master server; click on "Admin", then "Preferences", and enter your SlaveServers (as a comma-separated list). Save your settings.

    Now you are ready to run master_reload.php:

    su - apache -c '/path/to/oasis/mgmt/enterprise/master_reload.php start'
    


OASIS Tests

  1. Open the OASIS interface, which is found at "http://[oasis_host][oasis_url]mgmt/" (for example, if oasis_host = oasis.yourdomain.com and oasis_url = /oasis/, you'll go to http://oasis.yourdomain.com/oasis/mgmt/ to open the management interface). Log in with the username and password you specified in oasis.cfg.
  2. Create a top-level section for your ad server (for example, just call it "Main").
  3. Create an advertiser and a campaign (probably easiest to use the Campaign Insertion interface under "New Campaign"). Go into the Campaign interface to make sure the campaign is set to "Active". Also, make sure that it is assigned to the top-level section you created, and make sure that its dates cover the current day.
    Enterprise Server Notes
    Make sure you have specified one or more slave servers on the Admin->Preferences page. This is a comma-separated list of hostnames or IP addresses. You may include the master server as one of the slaves.


  4. On the Admin page, reload the delivery engine.
  5. Now go to the Section interface, get the sample URL for your top-level section (just click on the section's name), and then open the URL for the IMG SRC. You should see your first banner served up.

    If you don't see a banner, make sure that you see something assigned to the section under Hourly Assignments (under Delivery Engine Internals on the Admin page). Also make sure that the width and height specified in the URL match those for the ad(s) you put into your first campaign. If you don't see any assignments for Section 1, then most likely your campaign is not Active, it wasn't assigned to Section 1, or its dates do not cover the current day.

System Configuration

  1. Once you're getting banners, you need to set up cron jobs (hourly_maint.php and minutely_maint.php) in the crontab belonging to the web_user you defined in oasis.cfg:

    0 * * * * /path/to/php /path/to/oasis/mgmt/hourly_maint.php > /dev/null
    5,10,15,20,25,30,35,40,45,50,55 * * * * /path/to/php /path/to/oasis/mgmt/minutely_maint.php > /dev/null
    

    Enterprise Server Notes
    OASIS Enterprise Server does not use hourly_maint.php. The crontab should look like this instead:

    0 * * * * /path/to/php /path/to/oasis/mgmt/enterprise/master_reload.php > /dev/null
    5,10,15,20,25,30,35,40,45,50,55 * * * * /path/to/php /path/to/oasis/mgmt/minutely_maint.php > /dev/null
    


  2. Set up OASIS to start upon a system boot. Add these lines to /etc/rc.d/rc.local:

    su - apache -c '/path/to/php /path/to/oasis/mgmt/hourly_maint.php start'
    

    Of course you need to substitute your own paths and username in these lines! Ideally, you will start OASIS before you start Apache (otherwise, some users may hit the server before you have loaded shared memory).

    Enterprise Server Notes
    OASIS Enterprise Server does not use hourly_maint.php. Put this in your rc.local instead:

    su - apache -c '/path/to/php /path/to/oasis/mgmt/enterprise/master_reload.php start'
    


  3. Finally, make sure that MySQL and Apache are starting at system boot. Under RedHat Linux, you can use chkconfig to control what starts up at the various runlevels.