socket-uds-numeric-ugid.phpt 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. --TEST--
  2. FPM: UNIX socket owner and group settings can be numeric
  3. --SKIPIF--
  4. <?php
  5. include "skipif.inc";
  6. FPM\Tester::skipIfPosixNotLoaded();
  7. FPM\Tester::skipIfNotRoot();
  8. ?>
  9. --FILE--
  10. <?php
  11. require_once "tester.inc";
  12. $cfg = <<<EOT
  13. [global]
  14. error_log = {{FILE:LOG}}
  15. [unconfined]
  16. listen = {{ADDR:UDS}}
  17. listen.owner = 1234
  18. listen.group = 1234
  19. user = 1234
  20. ping.path = /ping
  21. ping.response = pong
  22. pm = dynamic
  23. pm.max_children = 5
  24. pm.start_servers = 2
  25. pm.min_spare_servers = 1
  26. pm.max_spare_servers = 3
  27. EOT;
  28. $tester = new FPM\Tester($cfg);
  29. $tester->start();
  30. $tester->expectLogStartNotices();
  31. $tester->ping('{{ADDR:UDS}}');
  32. $st = stat($tester->getListen('{{ADDR:UDS}}'));
  33. if ($st) {
  34. $pw = posix_getpwuid($st['uid']);
  35. $gr = posix_getgrgid($st['gid']);
  36. $user = $pw ? $pw['name'] : 'UNKNOWN';
  37. $group = $gr ? $gr['name'] : 'UNKNOWN';
  38. echo "{$st['uid']}/{$user},{$st['gid']}/{$group}\n";
  39. } else {
  40. echo "stat failed for " . $tester->getListen('{{ADDR:UDS}}');
  41. }
  42. $tester->terminate();
  43. $tester->expectLogTerminatingNotices();
  44. $tester->close();
  45. ?>
  46. Done
  47. --EXPECT--
  48. 1234/UNKNOWN,1234/UNKNOWN
  49. Done
  50. --CLEAN--
  51. <?php
  52. require_once "tester.inc";
  53. FPM\Tester::clean();
  54. ?>