web-dev-qa-db-ja.com

PHP、Apache、Nginx、またはその他のWebサーバーで実行されている場合、どのように検出するのですか?

まず、この変数を知っています:_SERVER["SERVER_SOFTWARE"]

私のアプリケーションの1つで、PHPスクリプトを実行しているスクリプトを確認します。基本的には、ブロガーの微調整に役立つwordpressプラグインです。一部は構成します。

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

次に、PHPにWebサーバーを完全に検出するための完全な方法があるかどうかを知りたくなりました。

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

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

おかげで、

-ラーフル

12
rahul286

簡単に言えば、どのWebサーバーが使用されているかを確定的に識別することは不可能です。最も近いのは$ _SERVER ["SERVER_SOFTWARE"]の値です。

[特定のURLでアプリケーションのフィンガープリントを実行することで、どのソフトウェアが実行されているかをかなりよく知ることは可能ですが、これは非常にvery複雑です-そして、 HTTP接続を終了しているものを教えてください-プロキシの可能性があります。

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

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

あなたが「コンボ」とはどういう意味か私にはわかりません。プロキシに関しては...それを伝える方法もありません。

おそらく、説明した場合なぜこの情報が必要であり、それがどのような価値を持っているかを知ることができれば、ニーズに合った回答についてより多くの情報に基づいた推測を行うことができます。

C.

10
symcbean

PHPマニュアルサイトの誰かが 取得方法phpinfo()変数を配列に投稿しました。そこにはたくさんの情報がありますが、System phpが実行されている場所で、おそらくそれを使用できます。コメントを見てください。

また、プロキシの検出はそれほど簡単ではありません。httpヘッダー(Viaなど)を使用できますが、問題が発生する可能性はたくさんあります。

0
coredump