protected function request(Code $code) { $file = $this->createTemporaryFile(); $this->logger->info(sprintf('FastCGI: Dumped code to file: %s', $file)); try { $code->writeTo($file); $environment = array('REQUEST_METHOD' => 'POST', 'REQUEST_URI' => '/', 'SCRIPT_FILENAME' => $file); $response = $this->client->request($environment, ''); $this->logger->debug(sprintf('FastCGI: Response: %s', json_encode($response))); @unlink($file); return $response; } catch (\Exception $e) { @unlink($file); throw new \RuntimeException(sprintf('FastCGI error: %s', $e->getMessage()), $e->getCode()); } }
function fastcgi_get_contents($url) { $url = parse_url($url); if (!$url || !isset($url['path'])) { die("Malformed URI"); } $req = '/' . basename($url['path']); if (isset($url['query'])) { $uri = $req . '?' . $url['query']; } else { $url['query'] = ''; $uri = $req; } $client = new Client(isset($url['host']) ? $url['host'] : 'localhost', isset($url['port']) ? $url['port'] : 9000); $params = array('GATEWAY_INTERFACE' => 'FastCGI/1.0', 'REQUEST_METHOD' => 'GET', 'SCRIPT_FILENAME' => $url['path'], 'SCRIPT_NAME' => $req, 'QUERY_STRING' => $url['query'], 'REQUEST_URI' => $uri, 'DOCUMENT_URI' => $req, 'SERVER_SOFTWARE' => 'php/fcgiclient', 'REMOTE_ADDR' => '127.0.0.1', 'REMOTE_PORT' => '9985', 'SERVER_ADDR' => '127.0.0.1', 'SERVER_PORT' => '80', 'SERVER_NAME' => php_uname('n'), 'SERVER_PROTOCOL' => 'HTTP/1.1', 'CONTENT_TYPE' => '', 'CONTENT_LENGTH' => 0); return $client->request($params, false); }
} else { if (!is_writable($sock)) { die("UDS {$sock} is not writable\n"); } } } else { $url = parse_url($_SERVER['argv'][1]); $sock = false; } if (!$url || !isset($url['path'])) { die("Malformed URI"); } $req = '/' . basename($url['path']); if (isset($url['query'])) { $uri = $req . '?' . $url['query']; } else { $url['query'] = ''; $uri = $req; } if ($sock) { $client = new Client("unix://{$sock}", -1); echo "Call: {$uri} on UDS {$sock}\n\n"; } else { $host = isset($url['host']) ? $url['host'] : 'localhost'; $port = isset($url['port']) ? $url['port'] : 9000; $client = new Client($host, $port); echo "Call: {$uri} on {$host}:{$port}\n\n"; } $params = array('GATEWAY_INTERFACE' => 'FastCGI/1.0', 'REQUEST_METHOD' => 'GET', 'SCRIPT_FILENAME' => $url['path'], 'SCRIPT_NAME' => $req, 'QUERY_STRING' => $url['query'], 'REQUEST_URI' => $uri, 'DOCUMENT_URI' => $req, 'SERVER_SOFTWARE' => 'php/fcgiclient', 'REMOTE_ADDR' => '127.0.0.1', 'REMOTE_PORT' => '9985', 'SERVER_ADDR' => '127.0.0.1', 'SERVER_PORT' => '80', 'SERVER_NAME' => php_uname('n'), 'SERVER_PROTOCOL' => 'HTTP/1.1', 'CONTENT_TYPE' => '', 'CONTENT_LENGTH' => 0); //print_r($params); echo $client->request($params, false) . "\n";