Apache, Nginx 또는 다른 웹 서버에서 실행중인 경우 PHP에서 감지하는 방법은 무엇입니까? [닫은]


12

먼저이 변수를 알고 있습니다. _SERVER["SERVER_SOFTWARE"]

내 응용 프로그램 중 하나에서 PHP 스크립트에서 실행중인 웹 서버를 확인하고 싶습니다. 기본적으로 Bloggers가 일부 구성을 조정하는 데 도움이되는 워드 프레스 플러그인입니다.

Apache & Nginx에 대해 별도의 프로세스를 만들었으며 코드를 2 개의 다른 워드 프레스 플러그인으로 출시하는 것을 생각하고있었습니다.

그런 다음 PHP에 웹 서버를 완벽하게 감지하는 FULLPROOF 방법이 있는지 궁금합니다.

모든 경우 :: Apache, Nginx, Apache + Nginx, Apache 모듈로 PHP, fastcgi를 사용하는 PHP, php-fpm, lighttpd, IIS 등을 고려하십시오.

또한 내 응용 프로그램이 콤보 및 프록시 존재를 감지하는 데 중요합니다.

감사,

라훌

답변:


10

짧은 대답은 사용중인 웹 서버를 결정적으로 식별하는 것이 불가능하다는 것입니다. 가장 가까운 값은 $ _SERVER [ "SERVER_SOFTWARE"]의 값입니다.

[응용 프로그램 핑거 프린팅을 통해 특정 URL에서 어떤 소프트웨어가 실행되고 있는지는 상당히 잘 알 수 있지만 매우 복잡합니다. HTTP 연결을 종료하는 내용 만 알려줍니다. 프록시 일 수 있습니다.

phpinfo ()에 표시되는 내용은 [fast] cgi에 대한 웹 서버를 표시하지 않으며 관리자가 다른 시스템에서 사용할 수 있도록 선택한 항목 만 표시합니다.

또한 내 응용 프로그램이 콤보 및 프록시 존재를 감지하는 데 중요합니다.

'콤보'가 무슨 뜻인지 모르겠습니다. 프록시에 관해서는 .... 그 말을 할 수있는 방법이 없습니다.

아마도이 정보가 필요한 이유 와 그 가치에 대해 설명했다면 귀하의 요구에 맞는 답변에 대해보다 정확한 추측을 할 수있을 것입니다.

씨.


Cambo는 간단히 말해서 일부 사용자는 Nginx를 프론트 엔드 웹 서버로 선택한 다음 Apache를 사용하여 PHP를 실행합니다. 한 가지 경우는 cpanel과 nginx를 함께 실행하려는 것입니다. 이제 내 응용 프로그램의 한 섹션에서 웹 서버를 기반으로 복잡한 다시 쓰기 규칙을 사용자에게 안내하고 싶습니다. 위의 apache + nginx 경우 PHP 스크립트가 감지하는 웹 서버는 무엇입니까? I
rahul286

0

PHP 매뉴얼 사이트의 누군가 phpinfo() 변수를 배열로 가져 오는 방법을 게시했습니다. 많은 정보가 있지만 SystemPHP가 실행 되는 위치 도 있습니다. 어쩌면 그것을 사용할 수 있습니다. 의견을보십시오.

또한 프록시를 감지하는 것은 쉬운 일이 아닙니다. http 헤더 (예 :)를 사용할 수 Via있지만 잘못 될 수있는 방법이 많이 있습니다.


답변과 도움을 주셔서 감사합니다. 헤더를 통해 신뢰할 수 없다는 것을 알고 있으며 이것이 내가 도움을 요청하는 이유입니다.
rahul286
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.