Bug #75120 [Opn->Dup]: php fpm returns http status 200 Ok and blank page if script no exist

From: Date: Sat, 28 Nov 2020 21:40:55 +0000
Subject: Bug #75120 [Opn->Dup]: php fpm returns http status 200 Ok and blank page if script no exist
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-230696@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=75120&edit=1

 ID:                 75120
 Updated by:         bukka@php.net
 Reported by:        peter dot volkov at gmail dot com
 Summary:            php fpm returns http status 200 Ok and blank page if
                     script no exist
-Status:             Open
+Status:             Duplicate
 Type:               Bug
 Package:            FPM related
 Operating System:   Gentoo Linux
 PHP Version:        5.6.31
-Assigned To:        
+Assigned To:        bukka
 Block user comment: N
 Private report:     N

 New Comment:

This is duplicate of https://bugs.php.net/bug.php?id=69625 - the PR for
that is here: https://github.com/php/php-src/pull/6466


Previous Comments:
------------------------------------------------------------------------
[2018-04-30 07:52:37] mr dot felixoid at gmail dot com

Here is PR for this problem https://github.com/php/php-src/pull/3227

------------------------------------------------------------------------
[2017-08-25 14:41:32] peter dot volkov at gmail dot com

Description:
------------
If we call php-fpm with SCRIPT_FILENAME=/some.php it will return http status 200 and blank page. At
the same time php-fpm's access.log will contain:

24/Aug/2017:21:51:33 +0300 "- " 200 - 3.682 256 0.00% GET

I expect to receive some error message instead.

It looks like this is rather known problem and since error message is not very evident it may take
days to debug it! It's easy to step on this problem since default nginx configuration sometime
has:

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

instead of:

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

And now consider this two cases! In second case if I request notexisting script I'll receive
status 404 with "File not found." in the body. And in the first case:

< HTTP/1.1 200 OK
< Server: nginx
< Date: Thu, 24 Aug 2017 18:51:33 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Keep-Alive: timeout=20
< X-Powered-By: PHP/5.6.30-pl0-gentoo
< 
* Connection #0 to host rc.online.telekarta.tv left intact

Status 200 and no body. Why do we have this difference?

And I'm not alone with this problem: http://beutelevision.com/blog2/2013/08/26/nginx-with-php-fpm-generating-blank-page/
and in other places of the internet. 

What is the reason for this behaviour? Can we have this fixed?

Test script:
---------------
No script required.



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



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


Thread (3 messages)

« previous php.bugs (#230696) next »