1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
--TEST--
FPM: UNIX socket filename is too for start
--SKIPIF--
<?php
include "skipif.inc"; ?>
--FILE--
<?php
require_once "tester.inc";
$socketFilePrefix = __DIR__ . '/socket-file';
$socketFile = sprintf(
"%s-fpm-unix-socket-too-long-filename-but-starts-anyway%s.sock",
$socketFilePrefix,
str_repeat('-0000', 11)
);
$cfg = <<<EOT
[global]
error_log = {{FILE:LOG}}
[fpm_pool]
listen = $socketFile
pm = static
pm.max_children = 1
catch_workers_output = yes
EOT;
$tester = new FPM\Tester($cfg);
$tester->start();
$tester->expectLogStartNotices();
$tester->expectLogPattern(
sprintf(
'/\[pool fpm_pool\] cannot bind to UNIX socket \'%s\' as path is too long '
. '\(found length: %d, maximal length: \d+\), trying cut socket path instead \'.+\'/',
preg_quote($socketFile, '/'),
strlen($socketFile)
),
true
);
$files = glob($socketFilePrefix . '*');
if ($files === []) {
echo 'Socket files were not found.' . PHP_EOL;
}
if ($socketFile === $files[0]) {
// this means the socket file path length is not an issue (anymore). Might be not long enough
echo 'Socket file is the same as configured.' . PHP_EOL;
}
$tester->terminate();
$tester->expectLogTerminatingNotices();
$tester->close();
?>
Done
--EXPECT--
Done
--CLEAN--
<?php
require_once "tester.inc";
FPM\Tester::clean();
// cleanup socket file if php-fpm was not killed
$socketFile = sprintf(
"/socket-file-fpm-unix-socket-too-long-filename-but-starts-anyway%s.sock",
__DIR__,
str_repeat('-0000', 11)
);
if (is_file($socketFile)) {
unlink($socketFile);
}
?>
|