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

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).

  • If DirectoryIndex weren't configured correctly, it wouldn't serve his index.php as a plaintext file, it'd fall back to an index. – chaos Jun 8 '09 at 21:09
  • Amended.________________________ – Dana the Sane Jun 8 '09 at 21:22
  • Added some more details to the question. – Tobi Jun 8 '09 at 21:55
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.

1

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 :-)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.