CentOS apache conf.d dark mystery: why some virtual hosts are more equal then others

I’ve got a complain the other day: for some reason some virtualhosts on dedicated server was not working properly with suExec PHP as configured.

I went to examine the configuration. There was about 17 virtual hosts, manually converted from mod_php configuration into FCGI/suExec. All configuration was absolutely identical. And yet some virtual hosts was falling back to default wrapper /var/www/cgi-bin/php-fcgi executed as apache user.
I couldn’t quite lay may hand on the reason why some virtual hosts was not taking suExec configuration – no trace in /var/log/suexec.log form this virtual hosts either.
Lets take a look at 2 virtual hosts apache configuration:

Not working abc.com.conf

And working xyz.com.conf

It took me some time to recall one very important but seldom noticed rule which caused this problem :

Config files in /etc/httpd/conf.d/ are loaded in ALPHABETICAL order.

So, at the time abc.conf is loaded and virtual host defined mod_fcgid is NOT YET loaded from fcgid.conf and all definitions from within

<IfModule mod_fcgid.c>
...
</IfModule>

are invalid and ignored. This is also true for all the rest of virtual hosts config files that are loaded before fcgid.conf by alphabetical order.
Let’s fix this problem.

# cd /etc/httpd/conf.d
# mv fcgid.conf 00-fcgid.conf
# service httpd restart

Problem solved.
This rule also useful if you want to control the precedence of virtual host and/or module definitions (e.g. you want some virtual host to be always configured first no matter what).

Share Button

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">