Support → Documentation → Stunnix Perl Web Server

# Required: Create a project in CDBuilder

Start CDBuilder. Do Project, New to create a project. You should select project input directory (where various files used for your CD will reside, including database files and of course web content).

Put database files to one subdirectory of your input directory, put your web content to other subdirectory.

Select output directory (it's advicable to specify it relative to input directory, e.g. like "../out") - it's the directory where prototype (as a tree of folders and files) will be copied to.

Then go to "Project", "Site Settings", "General", "Main Properties" and specify platforms your product will support and paths to directory with database files and with web content RELATIVE to input directory (e.g. if "c:\mycd1\in" is project input directory and "c:\mycd1\in\webroot" is directory with web content, specify "webroot" as directory with web content, and so on for directories with database files.

WARNING! There is a detailed sample on directory layout available in a separate document.

# Required: Specify other site settings

On the "Project", "Site Settings", specify database access mode in "Databases","MySQL" and "Databases","SQLite" (or turn off support for sqlite and mysql there).

On the same page, in "Scripting Languages" specify desired support type for each scripting language, and select extensions you need, if any.

# Required: Update database connection strings in your scripts

## If your product uses MySQL

- If accessing MySQL database from Perl, update your DSN string to contain mysql port number (stored in $ENV{MYSQL_PORT}) as done in `/site/www/root/mysqldemo.pl` from full trial cd. PHP scripts will use correct port number automatically since it'll be set in dynamically-generated php.ini.
- Update PHP and Perl scripts to use host=127.0.0.1 in database connection string.

## If your product uses SQLite

- Convert SQLite database to proper format (understood by sqlite library shipped with web server demo).
- Update PHP and Perl scripts to use environment variable `SQLITE_TABLES` as a directory with SQLite database files in database connection string as done in `/site/www/root/sqlitedemo.php` and `/site/www/root/sqlitedemo.pl` .

# Optional: Make your product more user-friendly

It's greatly recommended to add some text to `/README.html`.

Specify path to splash screen and CDROM icon (not favicon!) relative to project's input directory in Project, "Site Settings", "General", "Paths and initial url".

# Optional: Consider protecting your code from theft and analysis

- To protect JavaScript from analysis and theft and for mangling html, you can use Stunnix JavaScript Obfuscator;
- To protect VBScript from analysis and theft and for mangling html, you can use Stunnix VBScript and ASP Obfuscator;
- To protect Perl scripts from analysis and theft, you can use Stunnix Perl-Obfus - an advanced obfuscator and encoder for Perl source code;
- To protect PHP scripts from analysis and theft, you can use IonCube PHP encoder - it's already integrated into SPWS and supported on all platforms.

# Optional: Request any help from us

Please contact us if you have any questions. If PHP available with our trial doesn't include extension you need, or if you wish to make SPWS to support other platforms, or need some apache module to become supported by SPWS - we also can help you.

# Required: Create CDROM tree

Click Build, "Rebuild changed" - you should get a prototype of your cdrom in project's output directory. Just burn it onto CD. The program that creates ISO images or that burns prototype to CDROM should preserve filename case in order your CD to work on platforms other than Windows. It may be wise to burn CDs in multisession mode and not to close last session, in order to be able to append or replace some data on CD.

If you need to create a desktop application out of CDROM, use the tree in project output directory as a prototype of your application.

# Required: Enjoy!

Enjoy our product and tell your partners and friends about how exciting it is :)