Particle Physics Group



GridSite: Building and Installation Guide

This Guide explains how to build GridSite from source, and how to install the server components alongside an Apache 2.0 webserver. There is a separate Config Guide which explains how to modify the httpd.conf file, and how to set up other files and directories used by the system. You should look through all of this Building and Installation Guide to decide which is the easiest route for your system.

Installing with RPM

If you are installing on Linux with the binary RPM release, you can skip most of this Guide, install the binary rpm(s) and go straight to the Config Guide.

We currently distribute GridSite RPMs for RedHat Linux versions 9 and 7.3 from our download area at

RedHat 9: This is the simpler case, since the standard release includes a suitable version of Apache 2.0: just install the gridsite-...-1.i386.rpm to get the various GridSite components. If you also want your server to accept GSI proxies or VOMS attribute certificates from clients, you should replace the standard mod_ssl RPM with mod_ssl-...gridsite...i386.rpm

RedHat 7.3: This is more complicated because you must also install a back-ported Apache 2.0 RPM. We distribute RPMs built on 7.3 aimed at EDG RedHat 7.3 machines. Although these install their files under /opt/edg, they will work perfectly well on non-EDG installations. For 7.3, you should install the gridsite-...-1.i386.rpm as above, and also httpd-...i386.rpm and mod_ssl-...gridsite...i386.rpm (we do not build a non-GridSite, non-GSI/VOMS aware mod_ssl for 7.3)

GridSite also depends on shared libraries from libcurl and libxml2, and the RPMs distributed as part of the standard RedHat 7.3 and 9 releases are sufficient.

With the RPMs installed, you can proceed to the Config Guide.

Requirements for building GridSite from source

GridSite is currently only supported on Linux, but should be straightforwardly portable to other Unix platforms where the GNU build tools are available.

GridSite consists of a core library (libgridsite[.so|.a]), an Apache module (, a CGI utility (gridsite-admin.cgi) and some command line tools (htcp, urlencode.)

All of the components use the GridSite library, and this in turn depends on libcurl and libxml2. You will need the development versions of these packages installed before you can proceed. (They are available as part of RedHat Linux releases 7.x onwards, for instance.)

Building GridSite with Make

Our download area at includes a tar-ball distribution of the sources, which can be unpacked and used to build GridSite from source. (Bleeding-edge developers can get the current snapshot of the same files from our CVS area.)

GridSite needs a copy of the Apache 2.0 include files to build, and the location of this is set by the MYCFLAGS variable in the top-level Makefile. By default, MYCFLAGS=-I../apache2/include is used, and this points to a copy of the Apache 2.0 includes distributed with GridSite. For security reasons, this is normally from the most recent stable release of Apache 2.0. If you wish to use the GridSite module with a different version of Apache 2.0, you should change the MYCFLAGS variable to point to the includes directory installed by the development part of that Apache 2.0 distribution (for example, /usr/include/httpd)

make install

will build all components and install them all under the default locations of /usr/local/[lib|bin|include|sbin] The default prefix /usr/local is set by the prefix variable in the top level Makefile

Building GridSite with RPM

For RedHat Linux and derivatives, building with RPM is recommended. One of the commands make rpm-usr or make rpm-edg in the top level of the source tree will build the GridSite binary RPM in the ./RPMS/i386 subdirectory of the working directory. An SRPM is put into ./SRPMS

The rpm-edg target uses the prefix /opt/edg. (This means the command line tools are in /opt/edg/bin, for instance.) By default, this uses the Apache 2.0 includes distributed with GridSite, as described above.

The target rpm-usr builds with prefix /usr. By default, this assumes the Apache 2.0 includes are in /usr/include/httpd.

If you make RPMs with make rpm-usr on a RedHat 9 system, you can install the resulting GridSite RPM alongside the standard RedHat Apache 2.0 RPM without having to modify shared library or Apache module paths.

If necessary, you can modify the assumed location of the Apache 2.0 includes by changing the MYCFLAGS variable in the rpm-usr or rpm-edg targets near the foot of the top level Makefile.

Building Apache 2.0 and mod_ssl-gridsite

If it is not possible to use binary RPMs of Apache 2.0 or mod_ssl-gridsite, then they can be built from source using the httpd-gridsite tar ball we distribute. This includes a recent Apache 2.0 source tar ball and a recent RedHat Linux Apache 2.0 source RPM. The rpm-edg and rpm-rh9 targets in the top-level Makefile of httpd-gridsite will build Apache 2.0 under /opt/edg/, or under /usr for RedHat 9 machines. The GridSite library and include file must be installed in /usr/[lib|include] or /opt/edg/[lib|include] for these targets to work.

If these targets do not work on your build platform, the Makefile and the scriptlets in the included SPEC files are a good starting point for building Apache by hand yourself. The complexities of this are outside of the scope of this Guide, but you are welcome to ask for assistance on the GridSite discussion list.

Last modified Fri 28 November 2003 . View page history
Switch to HTTPS . Website Help . Print View . Built with GridSite 2.2.6