Installing Groundwork

Downloading Groundwork:

You can download the most current source distribution of groundwork from http://groundwork.sourceforge.net.

Unpacking Groundwork:

To unpack the distribution, copy the file to a location on your machine that you have access to and execute the following commands:

This will create a groundwork-X.XX directory. Change directories into that directory.

Compiling Groundwork:

To comple groundwork, read the INSTALL file, then execute the following commands:

Groundwork should compile and function on any unix-based system using the GNU development system. Other compilers may work too but have not been tested on the current version.

The -pedantic flag must be used with newer GNU compilers. This flag is turned on by default, don't disable it.

Upon sucessful compilation, the lib directory should contain both libgroundwork.a and libgroundwork.so.

Installing Groundwork:

To install groundwork, become root and execute:

By default, everything is installed under /usr/local/firstworks.

To uninstall groundwork, become root and execute:

Web Server Configuration:

Web server configuration is an important step in using groundwork to develop or deliver an application. Groundwork uses files ending in .var and .ldb for configuration. The web server should be configured not to serve these files as they may contain sensitive information. You may want to block access to other files or directories too.

The following example illustrates how to configure the apache web server's access.conf file to restrict access to files ending in .var, .ldb, .C, .h and .sql and to directories named sql and src.

<FilesMatch *.var>
deny from all
</FilesMatch>

<FilesMatch *.ldb>
deny from all
</FilesMatch>

<FilesMatch *.C>
deny from all
</FilesMatch>

<FilesMatch *.h>
deny from all
</FilesMatch>

<FilesMatch *.sql>
deny from all
</FilesMatch>

<DirectoryMatch sql>
deny from all
</DirectoryMatch>

<DirectoryMatch src>
deny from all
</DirectoryMatch>

The "deny from all" configuration could, of course, be replaced with a less restrictive configuration such as:

order deny, allow
deny from all
allow from mysite.org

Which would deny everyone except someone with a domain name of mysite.org.