Apache、Nginx、または他のWebサーバーで実行されている場合、PHPで検出する方法は?[閉まっている]


12

最初に私はこの変数を知っています: _SERVER["SERVER_SOFTWARE"]

私のアプリケーションの1つで、PHPスクリプトからそれが実行されているWebサーバーを確認したいです。基本的には、ブロガーがいくつかの設定を調整するのに役立つワードプレスプラグインになります。

ApacheとNginx用に別のプロセスを作成し、2つの異なるワードプレスプラグインとしてコードをリリースすることも考えていました。

それから、PHPにWebサーバーを完全に検出するための完全な方法があるかどうか知りたいと思いました。

すべての場合を考慮してください:: Apache、Nginx、Apache + Nginx、ApacheモジュールとしてのPHP、fastcgiを使用したPHP、php-fpm、lighttpd、IISなど

また、アプリケーションがコンボとプロキシの存在を検出することも重要です。

おかげで、

-ラーフル

回答:


10

簡単な答えは、使用中のWebサーバーを決定論的に識別することは不可能だということです。最も近い値は、$ _ SERVER ["SERVER_SOFTWARE"]の値です。

[アプリケーションのフィンガープリントによって特定のURLでどのソフトウェアが実行されているかをかなりよく知ることができますが、それは非常複雑です。

phpinfo()に表示されるものは[fast] cgiのWebサーバーを表示せず、管理者が他のシステムで利用可能にするために選択したもののみを表示します。

また、アプリケーションがコンボとプロキシの存在を検出することも重要です。

「コンボ」の意味がわかりません。プロキシについては......それを伝える方法はありません。

おそらく、この情報が必要な理由とその価値を説明していただければ、ニーズに合った回答について、より多くの情報に基づいた推測ができるかもしれません。

C.


camboとは、単に意味します。一部のユーザーは、フロントエンドWebサーバーとしてNginxを選択し、Apacheを使用してPHPを実行します。1つのケースは、cpanelとnginxを一緒に実行することです。ここで、アプリケーションの1つのセクションで、Webサーバーに基づいた複雑な書き換えルールについてユーザーをガイドします。上記のapache + nginxの場合、PHPスクリプトが検出するWebサーバーはどれですか?I
rahul286

0

PHP Manualサイトの誰か phpinfo()変数を配列に入れる方法を投稿しました。そこには多くの情報がありますがSystem、phpが実行されている場所もあります。コメントを見てください。

また、プロキシの検出はそれほど簡単ではありません。httpヘッダー(などVia)を使用できますが、間違った方向に進む方法はたくさんあります。


あなたの答えと助けてくれてありがとう。私はヘッダーを介して信頼できないことを知っており、それが私が助けを求めている理由です。
rahul286
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.