protected function prepareEnvironment(\React\Http\Request $request)
{
$_SERVER = $this->baseServer;
$_SERVER['REQUEST_METHOD'] = $request->getMethod();
$_SERVER['REQUEST_TIME'] = (int) microtime(true);
$_SERVER['REQUEST_TIME_FLOAT'] = microtime(true);
$_SERVER['QUERY_STRING'] = http_build_query($request->getQuery());
foreach ($request->getHeaders() as $name => $value) {
$_SERVER['HTTP_' . strtoupper(str_replace('-', '_', $name))] = $value;
}
//We receive X-PHP-PM-Remote-IP from ProcessManager.
//This header is only used to proxy the remoteAddress from master -> slave.
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_PHP_PM_REMOTE_IP'];
unset($_SERVER['HTTP_X_PHP_PM_REMOTE_IP']);
$_SERVER['SERVER_NAME'] = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '';
$_SERVER['REQUEST_URI'] = $request->getPath();
$_SERVER['DOCUMENT_ROOT'] = isset($_ENV['DOCUMENT_ROOT']) ? $_ENV['DOCUMENT_ROOT'] : getcwd();
$_SERVER['SCRIPT_NAME'] = isset($_ENV['SCRIPT_NAME']) ? $_ENV['SCRIPT_NAME'] : 'index.php';
$_SERVER['SCRIPT_FILENAME'] = rtrim($_SERVER['DOCUMENT_ROOT'], '/') . '/' . $_SERVER['SCRIPT_NAME'];
}