Bug #62172 [Com]: FPM not working with Apache httpd 2.4 balancer/fcgi setup

From: Date: Tue, 28 Apr 2015 15:28:50 +0000
Subject: Bug #62172 [Com]: FPM not working with Apache httpd 2.4 balancer/fcgi setup
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-192381@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=62172&edit=1

 ID:                 62172
 Comment by:         matt at haught dot org
 Reported by:        jdr at alexanderinteractive dot com
 Summary:            FPM not working with Apache httpd 2.4 balancer/fcgi
                     setup
 Status:             Assigned
 Type:               Bug
 Package:            FPM related
 Operating System:   CentOs 6
 PHP Version:        5.4.3
 Assigned To:        tony2001
 Block user comment: N
 Private report:     N

 New Comment:

I added patch fpm-balancer-v3. The most recent version of apache24 appear to now remove the prefix.
So the the removal of the query string needs to be moved out of the code that catches the prefixes
otherwise it will not be applied. Older apache24 will work the same and the newer version will just
have the query string cut off.

I put in a pull request that I will continue to keep up-to-date.
https://github.com/php/php-src/pull/1197


Previous Comments:
------------------------------------------------------------------------
[2015-04-28 05:22:24] quan at quanphuong dot com

Just a note: fpm-balancer-v2 patchs worked well.

------------------------------------------------------------------------
[2014-10-03 22:13:11] stefan at eriksson dot cn

Any news on this? Debian with Jessie coming out is depending on this to get load balancing of
multiple php-fpm backends over tcp from one single apache instance.

------------------------------------------------------------------------
[2014-02-01 19:50:47] matt at haught dot org

Adding copied "ignore query string if sent by Apache (RewriteRule)" bit of code in
fpm-balancer-v2 patch fixes the query problems with apache-2.4.6 proxy balancer when using
ProxyPassMatch. Without it a request for test.php works but test.php?q=1 fails with file not found.

------------------------------------------------------------------------
[2012-05-28 01:09:30] jdr at alexanderinteractive dot com

I added a quick patch that just duplicates some of the committed proxy:fcgi code. It seemed to work
for me.

Unfortunately there still seems to be at least 1 issue on the apache side.
When adding query strings to a php page, I get 404s. This works fine without the balancer set up.

It could be related to this bug https://issues.apache.org/bugzilla/show_bug.cgi?id=51077

------------------------------------------------------------------------
[2012-05-27 22:27:00] jdr at alexanderinteractive dot com

Description:
------------
See bug https://bugs.php.net/bug.php?id=54152
for a description of almost the exact same problem.
PHP now does recognize the proxy:fcgi Apache httpd 2.4 adds to the SCRIPT_FILENAME but it does not
recognize proxy:balancer


Test script:
---------------
Example of working apache 2.4 config

RewriteRule ^/?(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/usr/local/home/magento/app/current/$1 [P,L]

Example of non-working apache 2.4 config

<Proxy balancer://magento/>
    BalancerMember fcgi://localhost:9000/
</Proxy>

# Serve PHP through php-fpm: 
RewriteRule ^/?(.*\.php(/.*)?)$ balancer://magento/usr/local/home/magento/app/current/$1 [P,L]

Expected result:
----------------
I expect the same results from both apache configurations

Actual result:
--------------
I get a 404 on all php pages when using balancer


------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=62172&edit=1


Thread (9 messages)

« previous php.bugs (#192381) next »