Using Safari with Apache

Note: this is very preliminary. More to come

1.0 Introduction

Safari is a cgi-bin script and may be run under a wide variety of web servers. It is, however, being developed under Apache, mod_perl, and Linux 2.2.9. This all-too-scanty page describes the particulars of using it in that environment.

Apache Configuration

If your Apache is built with mod_perl and mod_rewrite (recommended), then the following entries in your httpd.conf (or equivalent) file might be close to what you need:

Alias /mod-perl/ "/your/httpd/dir/mod-perl/"

<Location /mod-perl>
    #AllowOverride None
    SetHandler perl-script
    PerlHandler Apache::Registry
    Options ExecCGI
    Order allow,deny
    allow from all
    PerlSendHeader On
</Location>

# Rewrite rules to call safari by adding the 'project name' to the
# query string. The need for this will be removed at some point
# by having cgimake figure out project name from PATH_INFO instead
# of the QUERY_STRING.

RewriteEngine on

# Take all URLs of the form /safari/project/... and rewrite them
# to call cgimake, putting the project name in to QUERY_STRING
RewriteRule ^/safari/([^/]*)/(.*) /mod-perl/cgimake/$2?project=$1 [PT,QSA]
#RewriteLog /home/barries/src/safari/test/httpd/logs/rewrite_log
#RewriteLogLevel 9

As the comment notes, we plan on removing the need for mod_rewrite for this to function. mod_rewrite's cool and all, but it shouldn't be required, since it's not available on a lot of servers, and isn't is powerful on any other web server I'm aware of.