Bagaimana cara mendeteksi di PHP, jika dijalankan di Apache, Nginx atau server web lainnya? [Tutup]

12

Pertama saya tahu variabel ini: _SERVER["SERVER_SOFTWARE"]

Di salah satu aplikasi saya, saya ingin memeriksa dari skrip PHP yang menjalankan server web. Pada dasarnya itu akan menjadi plugin wordpress yang akan membantu Blogger mengubah beberapa konfigurasi.

Saya telah membuat proses terpisah untuk Apache & Nginx dan juga berpikir tentang melepaskan kode sebagai 2 plugin wordpress yang berbeda.

Kemudian saya jadi penasaran untuk mengetahui apakah ada cara FULLPROOF di PHP untuk mendeteksi server web dengan sempurna.

Silakan pertimbangkan semua case :: Apache, Nginx, Apache + Nginx, PHP sebagai modul Apache, PHP menggunakan fastcgi, php-fpm, lighttpd, IIS, dll.

Juga penting untuk aplikasi saya untuk mendeteksi keberadaan kombo dan proksi.

Terima kasih,

-Rahul

rahul286
sumber

Jawaban:

10

Jawaban singkatnya adalah tidak mungkin mengidentifikasi server web apa yang sedang digunakan. Nilai terdekat yang Anda dapatkan adalah nilai $ _SERVER ["SERVER_SOFTWARE"].

Dimungkinkan untuk mendapatkan ide yang cukup bagus tentang perangkat lunak apa yang berjalan pada [URL tertentu dengan sidik jari aplikasi tetapi itu sangat sangat rumit - dan itu hanya akan memberi tahu Anda apa yang mengakhiri koneksi HTTP - itu mungkin sebuah proxy.

Apa yang Anda lihat di phpinfo () tidak akan menampilkan server web untuk [fast] cgi dan itu hanya akan menunjukkan apa yang adminstrator pilih agar tersedia di sistem lain.

Juga penting untuk aplikasi saya untuk mendeteksi keberadaan kombo dan proksi.

Saya tidak tahu apa yang Anda maksud dengan 'kombo'. Adapun proksi .... tidak ada cara untuk mengatakan itu juga.

Mungkin jika Anda menjelaskan mengapa Anda membutuhkan informasi ini dan apa nilainya bagi Anda, maka kami mungkin dapat membuat tebakan yang lebih terinformasi mengenai jawaban yang mungkin sesuai dengan kebutuhan Anda.

C.

symcbean
sumber
Maksud saya cambo - beberapa pengguna memilih Nginx sebagai server web front-end dan kemudian menggunakan Apache untuk menjalankan PHP. Satu kasus adalah mereka ingin menjalankan cpanel dan nginx bersama. Sekarang di aplikasi saya, di satu bagian, saya ingin memandu pengguna untuk beberapa aturan penulisan ulang yang kompleks berdasarkan server web. Dalam kasus apache + nginx di atas, server web mana yang akan dideteksi skrip PHP saya? I
rahul286
0

Seseorang di situs Manual PHP diposting cara untuk mendapatkan phpinfo() variabel ke dalam array, ada banyak informasi di sana tetapi juga di Systemmana php berjalan, mungkin Anda bisa menggunakannya. Lihatlah komentarnya.

Juga, mendeteksi proxy tidak semudah itu, Anda dapat menggunakan header http (seperti Via) tetapi ada banyak cara yang salah.

coredump
sumber
terima kasih atas jawaban dan bantuan Anda. Saya tahu melalui tajuk tidak dapat dipercaya dan itulah alasan saya mencari bantuan.
rahul286