Installing in cgi-bin

Peter Pentchev roam at
Sun Mar 29 14:53:34 PDT 2009

On Sat, Mar 28, 2009 at 06:42:50PM -0500, Brooks Davis wrote:
> On Sat, Mar 28, 2009 at 04:07:30PM -0400, Jerry wrote:
> > On Sat, 28 Mar 2009 12:43:13 -0500
> > Brooks Davis <brooks at> wrote:
> > 
> > >On Sat, Mar 28, 2009 at 01:33:15PM -0400, Jerry wrote:
> > >> I have a Perl program that I am thinking of porting to FreeBSD. The
> > >> program has to be installed in the 'cgi-bin'. 
> > >> 
> > >> I was thinking something like:
> > >> "$(WWWDIR}/apache${APACHE_VERSION}/cgi-bin" might be the way to
> > >> direct the install to the correct directory. Is there a better way?
> > >> I cannot find a macro that directly references the cgi-bin.
> > >
> > >We have a policy against installations that would automaticlly be on
> > >the network.  You need to install it elsewhere (often a directory
> > >under WWWDIR) and tell people how to add the appropriate configuration
> > >directives to http.conf or to copy the file into cgi-bin in
> > >pkg-message.
> > 
> > 
> > The program is DADA Mail. It installs a 'mail.cgi' in the cgi-bin and
> > then installs the rest of its files, perl modules, etc. in a hierarchy
> > several layers deep in the cgi-bin directory. We are talking
> > about a lot of files here. Expecting the end user to properly move the
> > files from a temporary directory to the cgi-bin and then properly
> > changing the file(s) properties would seem a little extreme. However,
> > if that is the only way I can do it, I will investigate writing a
> > script that the end user could invoke to accomplish this feat. It does
> > seem a little over the top however. Due to the way DADA Mail is
> > written, the author does not believe it can be run from other than that
> > directory along with its associated files.
> Sounds seriously broken. :)  I might suggest installing in www/dada and
> providing a script to make appropriate symlinks along with an instruction
> to enable following symlinks in cgi-bin.  It seems like shockingly bad
> design to require that it live at http://.../cgi-bin/mail.cgi, but
> that's certainly not uncommon. :(

Jerry, take a look at how other ports do it - e.g. mail/qmailadmin
or devel/viewvc.  Both of those install files into separate directories
and then expect the user to symlink the CGI directory to something
within the user's "real" cgi-bin directory, and possibly symlink a data
directory into something within the user's "real" data directory.
Thus, the CGI script is at http://hostname/cgi-bin/qmailadmin/qmailadmin.cgi
with the option of someday adding e.g. cgi-bin/qmailadmin/somethingelse.cgi
by simply placing it within the symlinked directory.

Of course, the symlinks may also be avoided by using Apache's Alias and
ScriptAlias directives :)

Either way, the major point is that once you learn to live with all
files being in cgi-bin/progname/ instead of just cgi-bin/, it's just
a matter of symlinking (or aliasing) a single directory instead of
each and every file within it.


Peter Pentchev	roam at    roam at    roam at
PGP key:
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
.siht ekil ti gnidaer eb d'uoy ,werbeH ni erew ecnetnes siht fI
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url :

More information about the freebsd-ports mailing list