Як виявити в PHP, якщо він працює на Apache, Nginx або іншому веб-сервері? [зачинено]


12

Спочатку я знаю цю змінну: _SERVER["SERVER_SOFTWARE"]

В одному зі своїх додатків я хочу перевірити з PHP-скрипту, на якому веб-сервері він працює. В основному це буде плагін WordPress, який допоможе Blogger налаштувати деяку настройку.

Я створив окремий процес для Apache & Nginx і також думав про випуск коду у вигляді двох різних плагінів wordpress.

Тоді мені просто цікаво дізнатись, чи існує ПОВНИЙ спосіб у PHP виявити веб-сервери бездоганно.

Будь ласка, розгляньте всі випадки :: Apache, Nginx, Apache + Nginx, PHP як модуль Apache, PHP за допомогою fastcgi, php-fpm, lighttpd, IIS тощо.

Також важливим для моєї програми є виявлення комбо та проксі-сервера.

Дякую,

-Рахул

Відповіді:


10

Коротка відповідь полягає в тому, що неможливо детерміновано визначити, який веб-сервер використовується. Найближчим ви отримаєте значення $ _SERVER ["SERVER_SOFTWARE"].

Можна отримати досить гарне уявлення про те, яке програмне забезпечення працює за [конкретною URL-адресою за допомогою відбитків пальців програми, але це дуже складно - і це лише скаже вам, що припиняє HTTP-з'єднання - це може бути проксі.

Те, що ви бачите в phpinfo (), не відображатиме веб-сервер для [fast] cgi, а покаже лише те, що адміністратор вирішить зробити доступним для інших систем.

Також важливим для моєї програми є виявлення комбо та проксі-сервера.

Я поняття не маю, що ви маєте на увазі під «комбо». Що стосується проксі-сервісів .... немає жодного способу сказати це.

Можливо, якщо ви пояснили, для чого вам потрібна ця інформація та яке значення вона має для вас, ми можемо зробити більш усвідомлену здогадку щодо відповіді, яка може відповідати вашим потребам.

C.


Під cambo я просто маю на увазі - деякі користувачі вибирають Nginx як зовнішній веб-сервер, а потім використовують Apache для запуску PHP. Один випадок - вони хочуть запустити cpanel і nginx разом. Тепер у своїй програмі, в одному розділі, я хочу направити користувачів на якесь складне правило перезапису, засноване на веб-сервері. Наведений вище апарат apache + nginx, який веб-сервер виявить мій скрипт PHP? Я
rahul286

0

Хтось на веб-сайті PHP Manual розмістив спосіб отримання phpinfo() змінних в масив, там є багато інформації, але і те, Systemде працює php, можливо, ви можете це використовувати. Подивіться на коментарі.

Крім того, виявити проксі, це не так просто, ви можете використовувати заголовки http (як Via), але існує маса способів, коли це може піти не так.


дякую за вашу відповідь та допомогу. Я знаю, що через заголовки не можна довіряти, і саме тому я шукаю допомоги.
rahul286
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.