Como detectar em PHP, se está rodando em Apache, Nginx ou algum outro servidor web? [fechadas]

11

Primeiro, conheço esta variável: _SERVER["SERVER_SOFTWARE"]

Em um dos meus aplicativos, quero verificar no script PHP em que servidor da Web ele está sendo executado. Basicamente, será um plugin do wordpress que ajudará os Bloggers a ajustar algumas configurações.

Eu criei um processo separado para o Apache & Nginx e também estava pensando em lançar o código como 2 plugins wordpress diferentes.

Então, fiquei curioso em saber se existe uma maneira FULLPROOF no PHP para detectar servidores da Web perfeitamente.

Por favor, considere todos os casos :: Apache, Nginx, Apache + Nginx, PHP como módulo Apache, PHP usando fastcgi, php-fpm, lighttpd, IIS, etc.

Também é crítico para o meu aplicativo detectar a presença de combos e proxies.

Obrigado,

-Rahul

    
por rahul286 26.07.2010 / 16:11

2 respostas

8

Resposta curta é que é impossível identificar de forma determinante qual servidor está em uso. O mais próximo que você vai conseguir é o valor de $ _SERVER ["SERVER_SOFTWARE"].

É possível ter uma boa ideia de qual software está sendo executado em uma determinada URL pela impressão digital do aplicativo, mas isso é muito complicado - e ele apenas informará o que está encerrando a conexão HTTP. pode ser um proxy.

O que você vê em phpinfo () não mostrará o servidor web para [fast] cgi e ele mostrará apenas o que o administrador escolhe disponibilizar em outros sistemas.

Also its critical for my application to detect combos and proxies presence.

Eu não tenho ideia do que você quer dizer com 'combos'. Quanto aos proxies ... não há como dizer isso.

Talvez, se você explicou por que , precisar dessas informações e de que valor elas têm para você, então poderemos adivinhar melhor uma resposta que atenda às suas necessidades.

C.

    
por 26.07.2010 / 17:03
0

Alguém no site PHP Manual postou uma maneira de obter phpinfo() variáveis em uma matriz, Há muita informação lá, mas também o System onde o php está rodando, talvez você possa usar isso. Veja os comentários.

Além disso, detectar proxies não é tão fácil, você pode usar cabeçalhos http (como Via ), mas há muitas maneiras de dar errado.

    
por 26.07.2010 / 16:17