¿Cómo detectar en PHP, si se ejecuta en Apache, Nginx o algún otro servidor web? [cerrado]

12

Primero sé esta variable: _SERVER["SERVER_SOFTWARE"]

En una de mis aplicaciones, quiero verificar desde el script PHP en qué servidor web se está ejecutando. Básicamente será un complemento de WordPress que ayudará a los Bloggers a modificar algunas configuraciones.

He creado un proceso separado para Apache & Nginx y también estaba pensando en lanzar código como 2 plugins de wordpress diferentes.

Luego me dio curiosidad saber si hay una manera FULLPROOF en PHP para detectar servidores web sin problemas.

Considere todos los casos :: Apache, Nginx, Apache + Nginx, PHP como módulo de Apache, PHP usando fastcgi, php-fpm, lighttpd, IIS, etc.

También es crítico para mi aplicación detectar la presencia de combos y proxies.

Gracias,

-Rahul

rahul286
fuente

Respuestas:

10

La respuesta corta es que es imposible identificar determinísticamente qué servidor web está en uso. Lo más cercano que obtendrá es el valor de $ _SERVER ["SERVER_SOFTWARE"].

Es posible tener una idea bastante buena de qué software se está ejecutando en una [URL particular por huella digital de la aplicación, pero eso es muy muy complicado, y solo le dirá qué está terminando la conexión HTTP, puede ser un proxy.

Lo que ve en phpinfo () no mostrará el servidor web para cgi [rápido] y solo mostrará lo que el administrador elige poner a disposición en otros sistemas.

También es crítico para mi aplicación detectar la presencia de combos y proxies.

No tengo idea de lo que quieres decir con 'combos'. En cuanto a los poderes ... tampoco hay forma de saberlo.

Quizás si usted explica por qué necesita esta información y qué valor tiene para usted, entonces podríamos hacer una suposición más informada sobre una respuesta que se adapte a sus necesidades.

C.

symcbean
fuente
Por cambo quiero decir simplemente: algunos usuarios eligen Nginx como servidor web front-end y luego usan Apache para ejecutar PHP. Un caso es que quieren ejecutar cpanel y nginx juntos. Ahora en mi aplicación, en una sección, quiero guiar a los usuarios para algunas reglas complejas de reescritura basadas en el servidor web. En el caso anterior de apache + nginx, ¿qué servidor web detectará mi script PHP? I
rahul286
0

Alguien en el sitio del Manual de PHP publicó una forma de obtener phpinfo() variables en una matriz, hay mucha información allí, pero también Systemdónde se ejecuta php, tal vez pueda usar eso. Mira los comentarios.

Además, detectar proxies no es tan fácil, puede usar encabezados http (como Via), pero hay muchas formas en que puede salir mal.

volcado de memoria
fuente
Gracias por su respuesta y ayuda. Sé que a través de los encabezados no se puede confiar y esa es la razón por la que estoy buscando ayuda.
rahul286