Installing a new copy of Interact

  1. Create a databse in mysql and grant all to the username you are going to use to run interact, e.g.
    create database interact;
    grant all on interact.* to interactuser@localhost identified by 'topsecretpassword';

  2. Copy all the files and directories in the interact directory to your web server document root.

  3. By default, Interact stores data files in the 'local' folder. For maximum security, you may choose to make a new data folder outside of the webserver root. In either case, give your webserver user write access to the data folder.
    e.g. for linux if your webserver runs as nobody from the interact home directory type
    chown nobody local/
    For Windows, right click on the above folder and select Permissions - Security and add give your webserver user permissions to write to the above directories.

  4. Rename /local/config_default.inc.php to /local/config.inc.php

  5. Edit the new config.inc.php file, making sure to read the comments

  6. Set a cron job to run the admin/auto.php file every 5 minutes or so. This can be run with standalone version of PHP or invoked via the web server. Use a batch file and 'at' or schedule to do this if you are on a Windows platform.
    e.g. wget -q -O /dev/null 'http://interact.yourserver.com/admin/auto.php'
    or php /home/httpd/html/admin/auto.php

  7. In order for the 'unzip' option to work when uploading files you need to have an unzip utility (ftp://sunsite.unc.edu/pub/Linux/utils/compress/) or (http://www.info-zip.org/pub/infozip/UnZip.html for windows) installed and in your server path. You will also need to install imagemagik (http://freealter.org/doc_distrib/ImageMagick-5.1.1/) if you want uploaded photos to be automatically resized (once installed you need to make sure 'mogrify' is in your server path settings).

  8. 404 (not found) errors should redirect to the /direct.php file. On IIS, set this up with the administration tools. If using Apache and Interact is installed in a subfolder, you will need to change the 404 line in the root .htaccess file (see Security note below).

  9. Go to http://[your interact install]/admin/setup/index.php
    This page checks your setup for you.
    Check that everything is OK and then click 'Install Database Tables Now'.
    You will then be taken to the server admin page to complete a few remaining details.

  10. Return to the homepage and click on the green plus at the top of the navigation to start adding components.

  11. IMPORTANT SECURITY NOTE.
    Interact uses 3 .htaccess files to control security:
    /.htaccess
    (in Interact root)
    Sets php flags 'register_globals' off and 'magic_quotes_gpc' off.
    Also enables short urls ('direct' file) and switches off directory browsing/indexing
    /local/.htaccessDenies all direct http access to uploaded files - all files are accessed securely via PHP
    /local/skins/.htaccessAllows http access (except for php execution) to this folder -
    so that skins may include images

    These files require Apache, and htaccess AllowOverride enabled in your httpd.conf file.
    If you do not use an Apache server, you should set similar security settings on your system... and let the Interact developers know about it so we can improve these instructions!

    If you prefer to enter these security settings in your Apache httpd.conf file and not use .htaccess files, add this into your httpd.conf file (replacing '/home/httpd/interact/' with your installation path):
    <Directory "/home/httpd/interact">
    	AllowOverride None
    	Options -Indexes
    	<Files "direct">
        	ForceType application/x-httpd-php
    	</Files>
    </Directory>
    
    ErrorDocument 404 /home/httpd/interact/direct.php
    
    <Directory "/home/httpd/interact/local">
    	order allow,deny
    	deny from all
    </Directory>
    
    <Directory "/home/httpd/interact/local/skins">
    	order allow,deny
    	allow from all
    
    	AddType text/html .php .php3
    </Directory>
    
    And check these settings are in your php.ini file:
    register_globals = Off
    magic_quotes_gpc = Off