500 error and log entry: "Could not open config file /etc/apache2/suexec/www-data"

7 posts / 0 new
Last post
#1 Thu, 06/11/2015 - 10:00

500 error and log entry: "Could not open config file /etc/apache2/suexec/www-data"

I'm trying to setup my first wordpress site, but am just getting a 500 message in the browser.

I get this error in /var/log/apache2/suexec.log.

[2015-06-11 07:45:18]: User www-data not allowed: Could not open config file /etc/apache2/suexec/www-data

It is accurate that the file doesn't exist. If I create a blank file at that location, it reports the following.

[2015-06-11 07:48:43]: Could not read docroot from /etc/apache2/suexec/www-data

I'm a bit confused as I thought suexec should be executing the site as the user of the site, not the apache user.

Any idea what I have setup wrong?


Thu, 06/11/2015 - 11:00


What distro/version are you using?

And what's the output of this command:

dpkg -l 'apache2*'
Thu, 06/11/2015 - 11:11

Thank you

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.2 LTS
Release:        14.04
Codename:       trusty
$ dpkg -l 'apache2*'
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                              Version               Architecture          Description
ii  apache2                           2.4.7-1ubuntu4.4      amd64                 Apache HTTP Server
un  apache2-api-20120211              <none>                <none>                (no description available)
ii  apache2-bin                       2.4.7-1ubuntu4.4      amd64                 Apache HTTP Server (binary files and modules)
ii  apache2-data                      2.4.7-1ubuntu4.4      all                   Apache HTTP Server (common files)
ii  apache2-doc                       2.4.7-1ubuntu4.4      all                   Apache HTTP Server (on-site documentation)
un  apache2-mpm-event                 <none>                <none>                (no description available)
un  apache2-mpm-itk                   <none>                <none>                (no description available)
un  apache2-mpm-prefork               <none>                <none>                (no description available)
un  apache2-mpm-worker                <none>                <none>                (no description available)
un  apache2-suexec                    <none>                <none>                (no description available)
ii  apache2-suexec-custom             2.4.7-1ubuntu4.4      amd64                 Apache HTTP Server configurable suexec program for mod_suexec
un  apache2-suexec-pristine           <none>                <none>                (no description available)
un  apache2-utils                     <none>                <none>                (no description available)
un  apache2.2-bin                     <none>                <none>                (no description available)
un  apache2.2-common                  <none>                <none>                (no description available)
Thu, 06/11/2015 - 11:28

Just found this and thought I'd toss it in for good measure.

$ sudo /usr/lib/apache2/suexec -V
 -D SUEXEC_CONFIG_DIR=/etc/apache2/suexec/
 -D AP_GID_MIN=100
 -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100

I see some examples around the internet with -D AP_USERDIR_SUFFIX="public_html" so I'm looking into what that is about to see if it is related since I don't have it.

Thu, 06/11/2015 - 11:34

I had to create a file /etc/apache2/suexec/www-data with the following content. In the past this has been created for me. Curious...

# The first two lines contain the suexec document root and the suexec userdir
# suffix. If one of them is disabled by prepending a # character, suexec will
# refuse the corresponding type of request. 
# This config file is only used by the apache2-suexec-custom package. See the
# suexec man page included in the package for more details.
Thu, 06/11/2015 - 12:04


That file is created when installing the "apache2-suexec-custom" package (which your output above shows is installed).

After installation, Virtualmin then updates it to point to the proper location (/home, rather than /var/www).

That's very curious that it's missing! I'm not sure why that would occur.

After you created the file above, are things working properly for you now?


Thu, 06/11/2015 - 12:20

Yep, everything is working properly. It actually happened on two servers I was setting up at the same time. I'll review my procedure next time to see if I goofed and accidentally have something that includes that in a delete or something. In the end it gave me an excuse to understand suexec better.


Topic locked