mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
This changes default for fastcgi.script_path_encoded INI to have default behavior without a BC break. There has been already issue about this in RC so it is very likely that it could have much bigger impact so it's better to be safe.
56 lines
1.3 KiB
PHP
56 lines
1.3 KiB
PHP
--TEST--
|
|
FPM: FastCGI change for Apache ProxyPass SCRIPT_FILENAME decoding (GH-17645)
|
|
--SKIPIF--
|
|
<?php include "skipif.inc"; ?>
|
|
--FILE--
|
|
<?php
|
|
|
|
require_once "tester.inc";
|
|
|
|
$cfg = <<<EOT
|
|
[global]
|
|
error_log = {{FILE:LOG}}
|
|
[unconfined]
|
|
listen = {{ADDR}}
|
|
pm = dynamic
|
|
pm.max_children = 5
|
|
pm.start_servers = 1
|
|
pm.min_spare_servers = 1
|
|
pm.max_spare_servers = 3
|
|
php_admin_value[cgi.fix_pathinfo] = yes
|
|
php_admin_value[fastcgi.script_path_encoded] = no
|
|
EOT;
|
|
|
|
$code = <<<EOT
|
|
<?php
|
|
echo \$_SERVER["SCRIPT_NAME"] . "\n";
|
|
echo \$_SERVER["ORIG_SCRIPT_NAME"] . "\n";
|
|
echo \$_SERVER["SCRIPT_FILENAME"] . "\n";
|
|
echo \$_SERVER["PATH_INFO"] . "\n";
|
|
echo \$_SERVER["PHP_SELF"];
|
|
EOT;
|
|
|
|
$tester = new FPM\Tester($cfg, $code);
|
|
[$sourceFilePath, $scriptName] = $tester->createSourceFileAndScriptName('+');
|
|
$tester->start();
|
|
$tester->expectLogStartNotices();
|
|
$tester
|
|
->request(
|
|
uri: $scriptName . '/1%202',
|
|
scriptFilename: "proxy:fcgi://" . $tester->getAddr() . str_replace('+', '%2B', $sourceFilePath) . '/1%202',
|
|
scriptName: $scriptName . '/1 2'
|
|
)
|
|
->expectBody([$scriptName, $scriptName . '/1 2', $sourceFilePath, '/1 2', $scriptName . '/1 2']);
|
|
$tester->terminate();
|
|
$tester->close();
|
|
|
|
?>
|
|
Done
|
|
--EXPECT--
|
|
Done
|
|
--CLEAN--
|
|
<?php
|
|
require_once "tester.inc";
|
|
FPM\Tester::clean();
|
|
?>
|