Me he enfrentado a este problema al utilizar PHPUnit. Así es como me trato:
$_SERVER["REMOTE_ADDR"] = array_key_exists('REMOTE_ADDR', $_SERVER) ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1';
$_SERVER["REMOTE_HOST"] = array_key_exists('REMOTE_HOST', $_SERVER) ? $_SERVER['REMOTE_HOST'] : gethostbyaddr($_SERVER["REMOTE_ADDR"]);
$_SERVER["SERVER_PROTOCOL"] = array_key_exists('SERVER_PROTOCOL', $_SERVER) ? $_SERVER['SERVER_PROTOCOL'] : "HTTP/1.1";
$_SERVER["REQUEST_METHOD"] = array_key_exists('REQUEST_METHOD', $_SERVER) ? $_SERVER['REQUEST_METHOD'] : "GET";
$_SERVER["SERVER_PORT"] = array_key_exists('SERVER_PORT', $_SERVER) ? $_SERVER['SERVER_PORT'] : "80";
$_SERVER["SERVER_SOFTWARE"] = array_key_exists('SERVER_SOFTWARE', $_SERVER) ? $_SERVER['SERVER_SOFTWARE'] : "Apache";
$_SERVER["HTTP_ACCEPT"] = array_key_exists('HTTP_ACCEPT', $_SERVER) ? $_SERVER['HTTP_ACCEPT'] : "text/html,application/xhtml+xml,application/xml,application/json";
$_SERVER["HTTP_HOST"] = array_key_exists('HTTP_HOST', $_SERVER) ? $_SERVER['HTTP_HOST'] : "www.site.com";
$_SERVER["HTTP_USER_AGENT"] = array_key_exists('HTTP_USER_AGENT', $_SERVER) ? $_SERVER['HTTP_USER_AGENT'] : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36';
¿Pegar el código? – cdhowie
pregunta pertenece a serverfault? (aunque hay soluciones de php-side) – mario
¿Está invocando PHP en la línea de comandos? 'REMOTE_HOST' no se establecerá. – meagar