Información del entorno del servidor y de ejecución

El lenguaje de programación PHP dispone de una variable global que contiene información relacionada con el servidor donde se esté corriendo la aplicación o página Web.

Esta variable se denomina $_SERVER y se trata de un array que contiene información, tales como cabeceras, rutas y localizaciones del código. Las entradas en este array son creadas por el servidor web. No existe garantía que cada servidor web proporcione todas estas entradas, ya que existen servidores que pueden omitir algunas o proporcionar otras.

La variable $_SERVER puede contener los siguientes índices:

PHP_SELF»

El nombre del archivo de script ejecutándose actualmente, relativa al directorio raíz de documentos del servidor. Por ejemplo, el valor de $_PHP_SERVER[‘PHP_SELF’] en un script ejecutado en la dirección http://www.jose-aguilar.com/test.php será test.php.

SERVER_ADDR

La dirección IP del servidor donde se está ejecutando actualmente el script.

SERVER_NAME

El nombre del host del servidor donde se está ejecutando actualmente el script. Si el script se ejecuta en un host virtual se obtendrá el valor del nombre definido para dicho host virtual.

SERVER_PROTOCOL

Nombre y número de revisión del protocolo de información a través del cual la página es solicitada, por ejemplo ‘HTTP/1.0‘.

REQUEST_METHOD

Método de petición empleado para acceder a la página, es decir ‘GET‘, ‘HEAD‘, ‘POST‘, ‘PUT‘.

REQUEST_TIME

Fecha Unix de inicio de la petición. Disponible desde PHP 5.1.0. Desde PHP 5.4.0 es un float con microsegundos.

QUERY_STRING

Si existe, la cadena de la consulta de la petición de la página.

DOCUMENT_ROOT

El directorio raíz de documentos del servidor en el cual se está ejecutando el script actual, según está definida en el archivo de configuración del servidor.

HTTP_ACCEPT

Contenido de la cabecera Accept: de la petición actual, si existe.

HTTP_USER_AGENT

Contenido de la cabecera User-Agent: de la petición actual, si existe. Consiste en una cadena que indica el agente de usuario empleado para acceder a la pagina. Un ejemplo típico es: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Entre otras opciones, puede emplear dicho valor con get_browser() para personalizar el resultado de la salida de la página en función de las capacidades del agente de usuario empleado.

REMOTE_ADDR

La dirección IP desde la cual está viendo la página actual el usuario.

REMOTE_HOST

El nombre del host desde el cual está viendo la página actual el usuario. La obtención inversa del dns está basada en la REMOTE_ADDR del usuario.

Su servidor web debe estar configurado para crear esta variable. Por ejemplo en Apache necesita que exista HostnameLookups On dentro de httpd.conf.

REMOTE_PORT

El puerto empleado por la máquina del usuario para comunicarse con el servidor web.

REMOTE_USER

El usuario autenticado.

SCRIPT_FILENAME

La ruta del script ejecutándose actualmente en forma absoluta.

Si un script se ejecuta mediante CLI como ruta relativa, como por ejemplo file.php o ../file.php, entonces $_SERVER[‘SCRIPT_FILENAME’] contendrá la ruta relativa especificada por el usuario.

SCRIPT_NAME

Contiene la ruta del script actual. Esto es de utilidad para las páginas que necesiten apuntarse a si mismas.

REQUEST_URI

La URI que se empleó para acceder a la página. Por ejemplo: ‘/index.html‘.

Entre otras más…

Veamos un ejemplo:

<?php
echo $_SERVER['SERVER_NAME'];
?>

El resultado del ejemplo sería algo similar a:

www.jose-aguilar.com

También podemos imprimir el contenido del array global server de la siguiente forma:

<?php
echo '<pre>';
print_r($_SERVER);
echo '</pre>';
?>

Para ver de una pasada todos sus elementos:

Array
(
    [UNIQUE_ID] => UGFnFNQkTbAAACDKvfYAAAAH
    [SCRIPT_URL] => /server_info.php
    [SCRIPT_URI] => http://www.dominio.net/server_info.php
    [HTTP_HOST] => www.dominio.net
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0.1
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [HTTP_ACCEPT_LANGUAGE] => es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
    [HTTP_ACCEPT_ENCODING] => gzip, deflate
    [HTTP_CONNECTION] => keep-alive
    [HTTP_COOKIE] => 6ea9f7f60f422be10b91c9c3df02e816=f2b8c6f008e4fcb2a23757f18756c531
    [HTTP_CACHE_CONTROL] => max-age=0
    [PATH] => /usr/local/bin:/usr/bin:/bin
    [SERVER_SIGNATURE] => 
    [SERVER_SOFTWARE] => Apache
    [SERVER_NAME] => www.dominio.net
    [SERVER_ADDR] => 212.36.77.176
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => 80.26.178.222
    [DOCUMENT_ROOT] => /home/TtA1Y6A7rQNT/dominio.es/web
    [SERVER_ADMIN] => hostmaster@server.tld
    [SCRIPT_FILENAME] => /home/TtA1Y6A7rQNT/dominio.es/web/server_info.php
    [REMOTE_PORT] => 1615
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /server_info.php
    [SCRIPT_NAME] => /server_info.php
    [PHP_SELF] => /server_info.php
    [REQUEST_TIME] => 1348560660
    [argv] => Array
        (
        )

    [argc] => 0
)
Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(1 voto, promedio: 5 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

Una respuesta a “Información del entorno del servidor y de ejecución”

  1. Dallas Selking dice:

    That is very interesting, You are a very professional blogger. I’ve joined your rss feed and stay up for in the hunt for extra of your wonderful post. Additionally, I have shared your website in my social networks!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.