Setting up suEXEC

polar@codd ~ % sudo /usr/lib/apache2/suexec -V
 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www-data"
 -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="public_html"

If AP_DOC_ROOT does not correspond to the preferred docroot (/home in our case):

cd /root/apache
apt-get source apache2
tar zxfv apache2_2.2.3.orig.tar.gz
cd httpd-2.2.3
cd support

In suexec.h change

#define AP_HTTPD_USER "www"

to

#define AP_HTTPD_USER "www-data"

#define AP_LOG_EXEC DEFAULT_EXP_LOGFILEDIR "/suexec_log" /* Need me? */

to

#define AP_LOG_EXEC "/var/log/apache2/suexec.log" /* Need me? */

#define AP_DOC_ROOT DEFAULT_EXP_HTDOCSDIR

to

#define AP_DOC_ROOT "/home"

In ap_config_auto.h change

#define AP_DOC_ROOT "/var/www"

to

#define AP_DOC_ROOT "/home"

In suexec.c comment out

if ((uid != dir_info.st_uid) ||
    (gid != dir_info.st_gid) ||


    (uid != prg_info.st_uid) ||
    (gid != prg_info.st_gid)) {
    log_err("target uid/gid (%ld/%ld) mismatch "
            "with directory (%ld/%ld) or program (%ld/%ld)\n",
            uid, gid,
            dir_info.st_uid, dir_info.st_gid,
            prg_info.st_uid, prg_info.st_gid);
    exit(120);
}

aptitude install apache2-mpm-worker

cp -p /usr/include/apache2/* .
cp -p /usr/include/apr-0/* .

make suexec

mv /usr/lib/apache2/suexec{,.bak}
cp suexec /usr/lib/apache2/
chmod 4755 /usr/lib/apache2/suexec

Restart Apache.

Wuglug Wiki: Apache/suEXEC (last edited 2007-07-12 17:00:45 by customer13898)