Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Passing Additional Compiler Directives

16 views
Skip to first unread message

Walt Stoneburner

unread,
Jan 9, 2002, 9:07:38 PM1/9/02
to
Apache is issuing "(13)Permission denied: exec of" messages; my
Options line in httpd.conf has ExecCGI set and my file permissions
seem correct. [Note, this can also be caused by using suexec --
simply rename /usr/local/apache/bin/suexec to something else and
bounce the server.]

The Apache process runs as the user specified in httpd.conf; it also
runs with the group id specified there too. This poses an interesting
problem, when the web user appears in the /etc/group file. Should you
actually login as the web user (or use su), you get access to all
files to which the web user is a group member of. Should you access
the file from the Apache server daemon -- you don't. Surprise -
things look broken.

Apache needs to execute the initgroups() function, but this critical
function is wrapped in #ifdef MULTIPLE_GROUPS, which means before you
compile the software you need to somehow tell your environment you
want that compiler directive.

One hack is to edit your Makefile in apache_1.3.22/src/main. This
however is ultra ugly.

By tracing things back, I've found that I can edit
apache_1.3.22/src/apaci and append the following line before doing a
build:
echo '-DMULTIPLE_GROUPS'

This has the interesting effect of passing the directive as needed,
when needed.

I notice the other lines in this file tend to come from the
./configure script. Yet no where in any book, documentation, faq, or
web search have I found a clean way for a simple mortal to request
this very important option. (Part of the reason for documenting it
here and now -- to save others time.)

Does anyone know any special directive, command, or option that's
Apache blessed to get additional options and compiler directives
passed along?

-Walt Stoneburner,
<w...@wwco.com>

0 new messages