Bug #61286 [Com]: If the trailing path that follows a script contains a dot PATH_INFO is not set

From: Date: Wed, 11 Apr 2018 19:29:39 +0000
Subject: Bug #61286 [Com]: If the trailing path that follows a script contains a dot PATH_INFO is not set
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-214706@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=61286&edit=1

 ID:                 61286
 Comment by:         marco dot perrando at gmail dot com
 Reported by:        galacticvoid+php at gmail dot com
 Summary:            If the trailing path that follows a script contains
                     a dot PATH_INFO is not set
 Status:             Wont fix
 Type:               Bug
 Package:            Built-in web server
 Operating System:   OSX
 PHP Version:        5.4.0
 Assigned To:        laruence
 Block user comment: N
 Private report:     N

 New Comment:

Dear @laruence, you are explaining what the code is doing, and you are correct.

But it seems that users are expecting something different, particularly they want that the the built
in server behaves exactly as it is stated on the documentation page.

I have made a PR that should provide this expected behaviour.

Only if a path ends with .php the server responds with a 404 if the corresponding file is not
present, otherwise it behaves exactly as for any path which does not correspond to a file: it calls
the "index"es setting the PATH_INFO.

I've tried it serving a Drupal 8 local installation and it is working quite fine.

NOTE This is my first contribution to the project, so be patient if something is not as expected.

I invite anyone who need this to try to build from my github repo and give feedback.

https://github.com/php/php-src/pull/3215


Previous Comments:
------------------------------------------------------------------------
[2018-03-12 12:52:23] andrzej dot heczko at gmail dot com

I'm using builtin web server for local developing. Its usage is far more easier than managing
config files and hostnames for local web server.

Builtin web server should test, if file exists for any url, return it, otherwise pass to the script.
Files without extensions are still files.
Now builtin web server behaves strangely.

------------------------------------------------------------------------
[2017-12-13 03:57:07] lostcodder at gmail dot com

Sometimes i want to download some script and start to debug it fast on PHP built-in server. But if
url consists of ".html" postfix it doesnt work. Error 404. Please fix it. Fast deploing of
scripts on built-in server is very important part of debugging process!

------------------------------------------------------------------------
[2017-09-23 21:44:20] developer at maurice-meyer dot de

I fully understand the point of the built-in server to be for debugging and testing purposes only
and not for production, which makes bugs and issues lower priority than on production systems.

But it leads the purpose of its functionality for testing and debbuing ad absurdum if the behaviour
is totally different in the built-in, so I really do not see any reason why this is a wontfix.

@laruence: "Built-in server will consider it as a static file request if there is a dot in the 

SCRIPT_NAME."

Why is that? I guess this could be changed to reflect the functionality it has when its not running
as built-in server?

------------------------------------------------------------------------
[2016-05-25 19:40:57] lotyrin at gmail dot com

I don't intend for the PHP internal server to have any additional features, however I do expect
its existing features to function regardless of if my routes contain a dot.

I haven't made the mistake of placing the PHP internal server into production use, just perhaps
the mistake of placing it into use at all.

------------------------------------------------------------------------
[2016-03-30 20:22:33] krakjoe@php.net

The internals team have no interest in developing a fully featured, production ready web server.

The CLI web server is only a development server, it does what is necessary for us to run tests, and
you can use it for some testing.

Any product that decides to deploy the CLI server as if it were a production ready server is doing
so mistakenly.

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


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=61286


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


Thread (19 messages)

« previous php.bugs (#214706) next »