SMX adds %perl module support
SMX adds sqlite support.

SMX Installation

Installing the RPM:

Download rpms from Google Code.

Optional prerequisites are unixODBC-2.x, openssl-0.9, gd-2.x, sqlite-3.x, and httpd-2.x.

We highly recommend getting the source from CVS and building RPMs for your own platform and specs. SMX RPM building is easy. Just run "make dist" for the tarball, and "rpmbuild -ta" for the rpm!

Getting the source from SVN:

svn checkout smx-read-only
or for project members:
svn checkout smx --username [your username]

That should get all the code.  If you want to submit a patch, run svn diff, and 
send the output to

Prerequisites for Linux:

You can install all of these as RPM's from, or using apt-get, or yum:

Required for Crypto support:
openssl, openssl-devel
Required for ODBC support:
unixODBC, unixODBC-devel (fedora) OR unixodbc-dev (debian)
Required for IMAGE support:
gd, gd-devel (graphics library by Thomas Boutell)
Required for SQLITE support:
sqlite, sqlite-devel (sqlite)
Required for Apache 2.0 module support:
httpd-devel (fedora) OR apache2-dev (debian)

Future versions of smx will probably REQUIRE sqlite, since it works so much more reliably than berkely and tdb, and seems to compile easliy on most platforms.

If desired for backward compatibility, download TDB from Once all the prerequisites are installed, you should be able to run:

./make install

Go to the Configuring Apache section.

Prerequisites for Windows:

Download and compile the latest versions of apache and openssl from and

Windows compilation requires that you add all the .cpp and .h files for each directory to a separate project.

Make libsmx and modsmx DLL projects, and SMX an EXE project.

You will need to adjust paths, and manually create a config.h so that apache, apr, gd, sqlite, openssl and libsmx are all in your project's path.

Configuring Apache:

The httpd.conf should have lines like this in it:

 LoadModule smx_module /usr/lib/
 AddHandler smx-parsed .htm
 AddHandler smx-parsed .html
 AddHandler smx-parsed .hmx

and in the individual VirtualHost sections, you may want to have something like:

 SMXInit %module(/var/www/html/global.htx) 

That should do it -- please email with any steps that were different in your configuration, or if you find any steps that were left out.