Apache, Nginx veya başka bir web sunucusunda çalışıyorsa PHP'de nasıl tespit edilir? [kapalı]


12

İlk önce bu değişkeni biliyorum: _SERVER["SERVER_SOFTWARE"]

Uygulamamdan birinde, hangi web sunucusunda çalıştığını PHP betiğinden kontrol etmek istiyorum. Temel olarak, Blogger'ların bazı yapılandırmaları düzenlemesine yardımcı olacak bir wordpress eklentisi olacak.

Apache & Nginx için ayrı bir süreç oluşturdum ve ayrıca 2 farklı wordpress eklentisi olarak kod bırakmayı düşünüyordum.

Sonra sadece PHP web sunucuları kusursuz bir şekilde tespit etmek için bir FULLPROOF yolu olup olmadığını bilmek merak ettim.

Lütfen tüm durumları göz önünde bulundurun :: Apache, Nginx, Apache + Nginx, Apache modülü olarak PHP, fastcgi, php-fpm, php-fpm, lighttpd, IIS vb.

Ayrıca tarak ve vekil varlığı tespit benim uygulama için kritik.

Teşekkürler,

-Rahul

Yanıtlar:


10

Kısa cevap, web sunucusunun kullanımda olduğunu belirleyici olarak tanımlamanın imkansız olmasıdır. En yakın alacağınız $ _SERVER ["SERVER_SOFTWARE"] değeridir.

Hangi yazılımın (uygulama parmak izi ile belirli bir URL'de çalıştığını) oldukça iyi bir fikir edinmek mümkündür, ancak bu çok karmaşıktır - ve sadece HTTP bağlantısını neyin sonlandırdığını söyleyecektir - bu bir proxy olabilir.

Phpinfo () içinde gördükleriniz web sunucusunu [fast] cgi için göstermez ve yalnızca yöneticinin diğer sistemlerde kullanılabilir yapmayı seçtiğini gösterir.

Ayrıca tarak ve vekil varlığı tespit benim uygulama için kritik.

'Kombolar' ile ne demek istediğini bilmiyorum. Proxy'lere gelince .... Bunu da söylemenin bir yolu yok.

Belki de bu bilgilere neden ihtiyaç duyduğunuzu ve sizin için ne kadar değerli olduğunu açıkladıysanız , ihtiyaçlarınıza cevap verebilecek bir cevap konusunda daha bilinçli bir tahmin yapabiliriz.

C.


Cambo ile kastediyorum - bazı kullanıcılar ön uç web sunucusu olarak Nginx'i seçiyor ve daha sonra PHP'yi çalıştırmak için Apache kullanıyor. Bir örnek, cpanel ve nginx'i birlikte çalıştırmak istedikleri. Şimdi uygulamamda, bir bölümde, web sunucusuna dayalı bazı karmaşık yeniden yazma kuralları için kullanıcılara rehberlik etmek istiyorum. Yukarıdaki apache + nginx durumunda, PHP betiğim hangi web sunucusunu tespit edecek? I
rahul286

0

PHP Manual sitesinde birisi bir diziye değişkenleri almak için bir yol gönderdi phpinfo(), orada çok fazla bilgi var ama aynı zamanda Systemnerede php çalışıyor, belki bunu kullanabilirsiniz. Yorumlara bakın.

Ayrıca, proxy'leri tespit etmek o kadar kolay değildir, http üstbilgilerini (gibi Via) kullanabilirsiniz, ancak yanlış gitmenin birçok yolu vardır.


Cevabınız ve yardımınız için teşekkürler. Üstbilgiler yoluyla güvenilemez olduğunu biliyorum ve bu yüzden yardım aramamın nedeni bu.
rahul286
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.