1

I'm trying to run PHP using FastCGI (mod-fcgid) under apache 2 with the worker MPM. I've used this blog post as a reference.

It seems I've got everything working except one thing:

When apache serves index.php implicitly (using mod_dir, I think), it does not use the configured handler for .php files, and just serves the PHP file as if it's static content.

However, when I add the index.php part manually to the URL, it does use the handler correctly and everything seems to work. Other PHP files work fine too.

To clarify:

What could cause this? Any hints are appreciated!


Edit: Some more details: this is on an Ubuntu intrepid system.

I got .php working in FastCGI by adding the two PHP lines to mods-enabled/fcgid.conf, so it now looks like:

<IfModule mod_fcgid.c>
  AddHandler    fcgid-script .fcgi
  IPCConnectTimeout 20
  AddHandler fcgid-script .php
  FCGIWrapper /usr/lib/cgi-bin/php5 .php
</IfModule>

Directory indices are configured in mods-enabled/dir.conf:

<IfModule mod_dir.c>
  DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

I didn't need to put Options +ExecCGI anywhere. Actually, I just tried commenting out the block in sites-enabled/000-default, and FastCGI PHP still works fine, except for implicit index.php

Tobi
  • 163
  • 3
  • 8

3 Answers3

2

Oh man, I've been very stupid.

Apparently I just had it misconfigured at one point in time, and my browser had cached the incorrect response.

http://example.com/index.php then worked, probably because I only started trying that after I had gotten FastCGI PHP working, so no incorrect response was in cache.

In other words, the information in my original question is a working configuration for mpm-worker + PHP in mod-fcgid!

Thanks for the effort anyway :-)

Tobi
  • 163
  • 3
  • 8
1

I'm wondering whether your use of mod_index is by-passing the vhost for fastcgi (i.e. separate from the vhost that sets the use of the php handler).

Dana the Sane
  • 828
  • 9
  • 19
1

This is possibly silly, but try:

<IfModule mod_fcgid.c>
   AddHandler    fcgid-script .fcgi
   IPCConnectTimeout 20
   AddHandler fcgid-script .php
   FCGIWrapper /usr/lib/cgi-bin/php5 .php
   DirectoryIndex index.php
</IfModule>

I've discovered a number of weirdness when Apache modules interact in odd ways. Certainly at times order in the config file is very important.

David Pashley
  • 23,151
  • 2
  • 41
  • 71