What could cause apache2 to not run index.php files through PHP FastCGI handler?

5,686

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

Solution 2

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.

Solution 3

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

Share:
5,686

Related videos on Youtube

dmigous
Author by

dmigous

Updated on September 17, 2022

Comments

  • dmigous
    dmigous almost 2 years

    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

  • chaos
    chaos about 15 years
    If DirectoryIndex weren't configured correctly, it wouldn't serve his index.php as a plaintext file, it'd fall back to an index.
  • Dana the Sane
    Dana the Sane about 15 years
    Amended.________________________
  • dmigous
    dmigous about 15 years
    Added some more details to the question.