Inconsistencia en $_SERVER PHP

He estado programando un plugin para wordpress con un servidor apache 2.2 ejecutandose en el puerto 8080 y php5.2.1. Pero esta mañana se me presentó un problema con un código que aparentemente no tiene nada de malo.

El código es el siguiente.

var GB_ROOT_DIR = “<?php echo ‘http://’.$_SERVER[‘SERVER_NAME’].’:’.$_SERVER[‘SERVER_PORT’].$this->gbPath?>”;

El Problema

Bajo ciertas condiciones en WordPress al cargar una entrada específica (usando single.php), la variable $_SERVER[‘SERVER_PORT’] me da el valor de 80, en lugar de 8080 que es donde escucha el servidor web.

La Solución

Luego voltear un rato, encontré lo siguiente:

Aunque mi servidor está en el puerto 8080 (La directiva Apache tiene este valor -Listen 8080-), la variable ServerName está en el puerto 80. (ServerName server.server.com:80).

Cambiando el valor de server.server.com a 8080 se solucionó el problema

El lio es que esto solo se presentó al mostrar las entradas del blog individuales, las entradas de categorías y el index no presentaron ningún problema.

El contenido de la variabel $_SERVER es el siguiente.

Array ( [REDIRECT_STATUS] => 200
[HTTP_ACCEPT] => image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
[HTTP_REFERER] => http://localhost:8080/blogs/ws/2007/05/25/pepito-perez-2/59
[HTTP_ACCEPT_LANGUAGE] => es
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)
[HTTP_HOST] => localhost:8080
[HTTP_CONNECTION] => Keep-Alive
[HTTP_COOKIE] => rated_23=1; dbx-postmeta=grabit:0+|1+|2+|3+|4+|5+|6+&advancedstuff:0-|1-|2-; dbx-pagemeta=grabit:0-|1-|2-|3-|4-|5-|6-|7-&advancedstuff:0- [PATH] => C:\\WINDOWS\\SYSTEM32;C:\\WINDOWS;C:\\WINDOWS\\SYSTEM32\\WBEM;C:\\Archivos de programa\\Microsoft SQL Server\\80\\Tools\\BINN;C:\\Archivos de programa\\Panda Software\\Panda Antivirus Platinum\\;c:\\Archivos de programa\\Microsoft SQL Server\\90\\Tools\\binn\\;C:\\Archivos de programa\\MySQL\\MySQL Server 5.0\\bin
[SystemRoot] => C:\\WINDOWS
[COMSPEC] => C:\\WINDOWS\\system32\\cmd.exe
[PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH [WINDIR] => C:\\WINDOWS
[SERVER_SIGNATURE] =>
[SERVER_SOFTWARE] => Apache/2.2.4 (Win32) PHP/5.2.1
[SERVER_NAME] => localhost [SERVER_ADDR] => 127.0.0.1
[SERVER_PORT] => 80
[REMOTE_ADDR] => 127.0.0.1
[DOCUMENT_ROOT] => D:/apacheweb/htdocs
[SERVER_ADMIN] => diego.acosta@xxxxxx.org
[SCRIPT_FILENAME] => D:/apacheweb/htdocs/blogs/ws/index.php [REMOTE_PORT] => 2809
[REDIRECT_URL] => /blogs/ws/2007/05/25/pepito-perez-2/59 [GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /blogs/ws/2007/05/25/pepito-perez-2/59
[SCRIPT_NAME] => /blogs/ws/index.php
[PHP_SELF] => /blogs/ws/index.php
[REQUEST_TIME] => 1180439795 )

Puede observase que [HTTP_HOST] => localhost:8080 y [SERVER_PORT] => 80 tienen valores diferentes.

Marcar el Enlace permanente.

Deja un comentario