Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 8cf621e

Browse files
committed
Test FPM FCGI envs with path info fix for Apache proxy handler
1 parent b53b0ac commit 8cf621e

File tree

3 files changed

+178
-0
lines changed

3 files changed

+178
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
--TEST--
2+
FPM: FastCGI env var path info fix for Apache handler basic
3+
--SKIPIF--
4+
<?php include "skipif.inc"; ?>
5+
--FILE--
6+
<?php
7+
8+
require_once "tester.inc";
9+
10+
$cfg = <<<EOT
11+
[global]
12+
error_log = {{FILE:LOG}}
13+
[unconfined]
14+
listen = {{ADDR}}
15+
pm = dynamic
16+
pm.max_children = 5
17+
pm.start_servers = 1
18+
pm.min_spare_servers = 1
19+
pm.max_spare_servers = 3
20+
php_admin_value[cgi.fix_pathinfo] = yes
21+
EOT;
22+
23+
$code = <<<EOT
24+
<?php
25+
echo \$_SERVER["SCRIPT_NAME"] . "\n";
26+
echo \$_SERVER["SCRIPT_FILENAME"] . "\n";
27+
echo \$_SERVER["PATH_INFO"] . "\n";
28+
echo \$_SERVER["PHP_SELF"];
29+
EOT;
30+
31+
$tester = new FPM\Tester($cfg, $code);
32+
[$sourceFilePath, $scriptName] = $tester->createSourceFileAndScriptName();
33+
$tester->start();
34+
$tester->expectLogStartNotices();
35+
$tester
36+
->request(
37+
headers: [
38+
'PATH_INFO' => '/pinfo',
39+
'PATH_TRANSLATED' => __DIR__ . '/pinfo',
40+
],
41+
uri: $scriptName . '/pinfo',
42+
scriptFilename: "proxy:fcgi://" . $tester->getAddr() . $sourceFilePath,
43+
scriptName: $scriptName,
44+
)
45+
->expectBody([$scriptName, $sourceFilePath, '/pinfo', $scriptName . '/pinfo']);
46+
$tester->terminate();
47+
$tester->close();
48+
49+
?>
50+
Done
51+
--EXPECT--
52+
Done
53+
--CLEAN--
54+
<?php
55+
require_once "tester.inc";
56+
FPM\Tester::clean();
57+
?>
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
--TEST--
2+
FPM: FastCGI env var path info fix for Apache handler basic
3+
--SKIPIF--
4+
<?php include "skipif.inc"; ?>
5+
--FILE--
6+
<?php
7+
8+
require_once "tester.inc";
9+
10+
$cfg = <<<EOT
11+
[global]
12+
error_log = {{FILE:LOG}}
13+
[unconfined]
14+
listen = {{ADDR}}
15+
pm = dynamic
16+
pm.max_children = 5
17+
pm.start_servers = 1
18+
pm.min_spare_servers = 1
19+
pm.max_spare_servers = 3
20+
php_admin_value[cgi.fix_pathinfo] = yes
21+
EOT;
22+
23+
$code = <<<EOT
24+
<?php
25+
echo \$_SERVER["SCRIPT_NAME"] . "\n";
26+
echo \$_SERVER["SCRIPT_FILENAME"] . "\n";
27+
echo \$_SERVER["PATH_INFO"] . "\n";
28+
echo \$_SERVER["PHP_SELF"];
29+
EOT;
30+
31+
$tester = new FPM\Tester($cfg, $code);
32+
[$sourceFilePath, $scriptName] = $tester->createSourceFileAndScriptName();
33+
$tester->start();
34+
$tester->expectLogStartNotices();
35+
$tester
36+
->request(
37+
query: 'q=1',
38+
headers: [
39+
'PATH_INFO' => '/pinfo',
40+
'PATH_TRANSLATED' => __DIR__ . '/pinfo',
41+
],
42+
uri: $scriptName . '/pinfo',
43+
scriptFilename: "proxy:fcgi://" . $tester->getAddr() . $sourceFilePath . '?q=1',
44+
scriptName: $scriptName,
45+
)
46+
->expectBody([$scriptName, $sourceFilePath, '/pinfo', $scriptName . '/pinfo']);
47+
$tester->terminate();
48+
$tester->close();
49+
50+
?>
51+
Done
52+
--EXPECT--
53+
Done
54+
--CLEAN--
55+
<?php
56+
require_once "tester.inc";
57+
FPM\Tester::clean();
58+
?>
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
--TEST--
2+
FPM: FastCGI env var path info fix for Apache handler basic
3+
--SKIPIF--
4+
<?php
5+
include "skipif.inc";
6+
if (ini_get('doc_root')) {
7+
die('skip: The doc_root ini has to be unset for this test to work');
8+
}
9+
?>
10+
--FILE--
11+
<?php
12+
13+
require_once "tester.inc";
14+
15+
$cfg = <<<EOT
16+
[global]
17+
error_log = {{FILE:LOG}}
18+
[unconfined]
19+
listen = {{ADDR}}
20+
pm = dynamic
21+
pm.max_children = 5
22+
pm.start_servers = 1
23+
pm.min_spare_servers = 1
24+
pm.max_spare_servers = 3
25+
php_admin_value[cgi.fix_pathinfo] = yes
26+
EOT;
27+
28+
$code = <<<EOT
29+
<?php
30+
echo \$_SERVER["SCRIPT_NAME"] . "\n";
31+
echo \$_SERVER["SCRIPT_FILENAME"] . "\n";
32+
echo \$_SERVER["PATH_INFO"] . "\n";
33+
echo \$_SERVER["PHP_SELF"];
34+
EOT;
35+
36+
$tester = new FPM\Tester($cfg, $code);
37+
[$sourceFilePath, $scriptName] = $tester->createSourceFileAndScriptName();
38+
$tester->start();
39+
$tester->expectLogStartNotices();
40+
$tester
41+
->request(
42+
headers: [
43+
'PATH_INFO' => '/pinfo',
44+
'PATH_TRANSLATED' => __DIR__ . '/pinfo',
45+
'DOCUMENT_ROOT' => null,
46+
],
47+
uri: $scriptName . '/pinfo',
48+
scriptFilename: "proxy:fcgi://" . $tester->getAddr() . $sourceFilePath,
49+
scriptName: $scriptName,
50+
)
51+
->expectBody([$scriptName, $sourceFilePath, '/pinfo', $scriptName . '/pinfo']);
52+
$tester->terminate();
53+
$tester->close();
54+
55+
?>
56+
Done
57+
--EXPECT--
58+
Done
59+
--CLEAN--
60+
<?php
61+
require_once "tester.inc";
62+
FPM\Tester::clean();
63+
?>

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /