$ _SERVER está vacío

Traté de actualizar la versión php de mi VPS pero no funcionó y mi proveedor no me ayudó mucho, así que lo cambio a la versión anterior.

Ahora estoy trabajando con PHP 5.2.17 (cli). Todo estaba funcionando correctamente en esta versión.

Desde esta actualización y degradación, la variable $_SERVER['PHP_AUTH_USER'] está vacía. (En php.ini, register_globals está ‘on’ y $_SERVER['PHP_SELF'] está funcionando correctamente).

Me pregunta correctamente mi nombre de usuario y contraseña y me éxito para conectar pero necesito usar $_SERVER['PHP_AUTH_USER'] .

Intenté $_SERVER['PHP_AUTH_USER'] , $_SERVER['AUTH_USER'] , $_SERVER['REMOTE_USER'] tuerca, ninguno está funcionando. (pero nunca recibo ningún error, solo un valor en blanco …)

Finalmente encontré la respuesta gracias a ‘mbinette’.

En mi configuración de PHP, el controlador de PHP 5 era CGI, y este tipo de autenticación no funciona con PHP CGI. Así que lo cambié a suPHP (que se supone que es el predeterminado en APACHE).

Encuentra aquí una publicación explicando una forma de usar CGI y PHP_AUTH, pero lo intenté y no funcionaba.

Encuentre aquí algunas explicaciones sobre los manejadores de php

¿Está activado el modo seguro? Ese podría ser tu problema …

A partir de PHP 4.3.0, para evitar que alguien escriba un script que revele la contraseña de una página que fue autenticada a través de un mecanismo externo tradicional, las variables PHP_AUTH no se establecerán si la autenticación externa está habilitada para esa página en particular y es segura. modo está habilitado. Independientemente, REMOTE_USER se puede usar para identificar al usuario autenticado externamente. Entonces, puedes usar $ _SERVER [‘REMOTE_USER’].

Fuente: http://php.net/manual/en/features.http-auth.php