httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Julian Grunnell" <>
Subject [users@httpd] Apache 1.3.33 + suexec upgrade
Date Thu, 30 Oct 2008 14:04:53 GMT
Hi - I'm trying to upgrade a 1.3.33 Apache server to 1.3.41 with SuEXEC
and am struggling with SuEXEC, the server is several years old with no
documentation or any of the old software / config logs at all. I've got
Apache installing just fine with suexec but it's the "--suexec-docroot"
+ "--suexec-userdir" I'm struggling with.

The suexec docs & examples are very good but with this particular server
the websites are all under the following directory structure:

/home/[a-z]/[a-z]/username/public_html/ so the same as
/home/*/*/*/public_html/ I suppose.

The docs don't give an example for this kind of setup and I've been
unable to find an example, I thought this would be the correct configure
line for Apache:

./configure --prefix= --enable-module=vhost_alias --enable-module=ssl \
--enable-suexec --suexec-caller=nobody
--suexec-logfile=/var/log/suexec.log \
--suexec-safepath=/bin:/usr/bin --server-uid=nobody --server-gid=nobody
--suexec-docroot=home --suexec-userdir=public_html

Server version: Apache/1.3.41 (Unix)
Server built:   Oct 30 2008 13:10:03
Server's Module Magic Number: 19990320:18
Server compiled with....
 -D ACCEPT_FILTER_NAME="httpready"
 -D SUEXEC_BIN="/bin/suexec"
 -D DEFAULT_SCOREBOARD="logs/httpd.scoreboard"
 -D DEFAULT_LOCKFILE="logs/httpd.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"
 -D ACCESS_CONFIG_FILE="conf/access.conf"
 -D RESOURCE_CONFIG_FILE="conf/srm.conf"

./suexec -V
 -D DOC_ROOT="/home"
 -D GID_MIN=100
 -D HTTPD_USER="nobody"
 -D LOG_EXEC="/var/log/suexec.log"
 -D SAFE_PATH="/bin:/usr/bin"
 -D UID_MIN=100
 -D USERDIR_SUFFIX="public_html"

But when I try my php test script I get the following in the suexec

[2008-10-30 12:36:24]: info: (target/actual) uid: (nobody/nobody) gid:
(sites/sites) cmd: php.cgi
[2008-10-30 12:36:24]: emerg: cannot get docroot information (home)

But home is there ... I checked.

I thought this might be because I didn't put a "/" in front of home for
"--suexec-docroot=home", but when I did the error changed to:

[2008-10-30 13:11:07]: info: (target/actual) uid: (nobody/nobody) gid:
(sites/sites) cmd: php.cgi
[2008-10-30 13:11:07]: error: command not in docroot

Yes I suppose strictly speaking it is not "in" docroot but it is under

So in a last ditch effort I amended "--suexec-docroot=" to be
"--suexec-docroot=/home/*/*/*/" but this causes the "make" of Apache to
fail at this stage:

gcc -c  -I../os/unix -I../include   -funsigned-char -DMOD_SSL=208131
-DEAPI -DUSE_EXPAT -I../lib/expat-lite -DNO_DL_NEEDED
-DHTTPD_USER=\"nobody\"  -DUID_MIN=100  -DGID_MIN=100
-DUSERDIR_SUFFIX=\"public_html\"  -DLOG_EXEC=\"/var/log/suexec.log\"
-DDOC_ROOT=\"/home/a/a/aaabbb/ /home/f/i/fiftyfive/
/home/f/i/fiftytwotest/ /home/t/e/testdon/ /home/t/e/testtest\"
-DSAFE_PATH=\"/bin:/usr/bin\" suexec.c
gcc: /home/t/e/testtest": No such file or directory
suexec.c: In function `main':
suexec.c:277: error: missing terminating " character
suexec.c:277: error: syntax error before ')' token
suexec.c:487: error: missing terminating " character
suexec.c:487: error: too few arguments to function `chdir'
suexec.c:490: error: missing terminating " character
suexec.c:490: error: syntax error before ')' token
*** Error code 1

Stop in /usr/fs/src/apache_1.3.41/src/support.
*** Error code 1

Stop in /usr/fs/src/apache_1.3.41.
*** Error code 1

Stop in /usr/fs/src/apache_1.3.41.

It seems to be expanding out ALL the folders under /home for some
reason? The error about "No such file or directory" is also odd as this
and the ones mentioned before ALL exist.

Any help would be greatly appreciated - Julian.

Julian Grunnell
UNIX Systems Administrator (Leeds)

Tel: 0208 587 7212
Mob: 07803 649593

View raw message