2

I've been running most of my PHP apps on my website on a fastcgi backend, served by NGINX. I have a new application which seems pretty well integrated with Apache; it's heavily dependent on dynamically written .htaccess files, for example. I'm working on modifying it to work natively with NGINX, but that's not yet ready. In the meantime, I was going to have NGINX proxy all connections to that path straight to Apache, and let Apache handle it.

However, I'm on a memory limited VPS, and I'd rather not run one set of PHP-CGI processes for NGINX (with their own APC cache) and another for Apache (using more memory for their APC cache). Has anyone had any luck sharing PHP between the two?

mod_ fcgid doesn't appear to support using already running servers, so I tried mod_ fastcgi. This seemed to work at first, but was sucking up quite a lot of memory (committed -- it was growing, not just static). Worse, I couldn't get the DirectoryIndex line in my apache configs to work with mod_fastcgi!

I added

    AddHandler php5-fastcgi .php
    FastCgiExternalServer /var/www -host 127.0.0.1:9000

to my Apache config, and all .php pages are processed, but a path like http://example.com/foo/ doesn't server /foo/index.php! If I remove FastCgiExternalServer, then it does find the index.php, but of course just shows it as text.

I'm assuming it's because DirectoryIndex is processed after FastCgiExternalServer, but I have no idea how this can be changed.

1
  • You can post the solution as an answer and accept it. Commented Feb 22, 2009 at 13:13

1 Answer 1

9

Problem solved. The trick was to use the following lines

FastCGIExternalServer /var/www/fast-cgi-fake-handler -host 127.0.0.1:9000
AddType application/x-httpd-fastphp5 .php
Action application/x-httpd-fastphp5 /fast-cgi-fake-handler

The relative path in Action + the full path in FastCGIExternalServer did it!

Sign up to request clarification or add additional context in comments.

2 Comments

What does the rest of your config look like? Inserting the above lines in my Apache config doesn't work.
can you please explain more? I'm trying to get apache22+mod_fastcgi to work as well without any luck... I got it to work w/ default virtualhost but since FastCGIExternalServer is shared between multiple hosts how would you share it?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.