Mana cara paling elegan untuk memeriksa modul apache mana yang diaktifkan?
380
Mana cara paling elegan untuk memeriksa modul apache mana yang diaktifkan?
Anda berada di Ubuntu jadi cobalah:
apache2ctl -M
apache2: bad user name ${APACHE_RUN_USER}
sudo apache2ctl -M | sort
apache2ctl
tetapi mereka tidak terdaftar di halaman manual atau diapache2ctl --help
. Itu karena mereka diserahkan kepadahttpd
. Mereka terdaftar dalam dokumentasi httpd saja.httpd -M
akan memberi tahu Anda modul mana yang built-in atau dibagikan.sumber
httpd
executable.apache2
dan tidakhttpd
, itulah sebabnya mengapa tidak ditemukan.Tidak ada jawaban di atas yang berfungsi jika Anda tidak dapat menjalankan perintah di server jauh. Jika Anda hanya memiliki hak "pengguna" atau tidak sama sekali mencoba membuat
test.php
skrip:Meskipun itu hanya akan berfungsi jika PHP diinstal sebagai
mod_php
.sumber
Mungkin ini akan membantu sebagian orang di host bersama tanpa akses ke
httpd
,apachectl
atau proses:Modul yang diaktifkan:
ls /etc/apache2/mods-enabled/
Modul yang tersedia:
ls /etc/apache2/mods-available/
sumber
Anda juga dapat menggunakan apachectl
sumber
Saya pikir sebenarnya ada tiga pertanyaan di sini. Saya tidak yakin yang Anda tanyakan.
Ini akan (biasanya) di direktori modules dari distribusi apache Anda, biasanya / etc / httpd / modules /
Ini dapat diperiksa dengan / usr / sbin / httpd -M, setidaknya untuk apache sistem dasar. Jika Anda ingin memeriksa file konfigurasi tertentu / usr / sbin / httpd -M -f / path / ke / config / file
Untuk mendapatkan banyak info, Anda dapat melihatnya dengan http: // machinename / server-info / Ini tidak dikonfigurasi secara default, Anda harus mengonfigurasinya . Ini sedikit info yang bocor, jadi konfigurasikan jadi hanya orang lokal yang bisa melihatnya.
Jika Anda berada di mesin dan Anda memiliki akses untuk menjadi pengguna yang berjalan, Anda juga dapat melihat apa yang dimuat dengan memeriksa prosesnya. Anda dapat menemukan proses induk dengan:
Lalu, periksa
sumber
Jika Anda menggunakan Redhat / CentOS,
httpd
digunakan sebagai penggantiapache2ctl
.Ini berarti Anda harus menggunakan
Namun,
httpd
hampir tidak pernah di jalur yang Anda harapkan.Saya dapat mengkonfirmasi pada CentOS 5.8 jalur sebenarnya
/usr/sbin/httpd
.Tetapi jika itu bukan jalan, Anda dapat menemukannya. Inilah cara saya bisa melakukannya.
Pertama, saya memeriksa daemon yang digunakan untuk mengendalikannya.
Sekitar garis 40ish
Yang memberitahuku di mana tepatnya menemukannya. Semoga ini membantu.
sumber
Daftar semua modul yang diaktifkan
sumber
Di gentoo saya, saya bisa menjalankan
apache2ctl modules
dan melihat modul yang tercantum.sumber
Memeriksa dari dalam skrip php (untuk mod_xsendfile):
Pemeriksaan untuk PHP_SAPI adalah untuk mengecualikan ketika php dijalankan sebagai CGI, karena apache_get_modules () tidak berfungsi dalam konteks itu. Selain itu, jika ini dijalankan pada php <5.0.0, hanya
apache2handler
konteksnya yang akan menghasilkan hasil yang diharapkan.sumber
Saya membuat skrip python kecil untuk membantu Anda. Silakan lihat di https://github.com/zioalex/unused_apache_modules
Inilah yang dapat Anda harapkan darinya:
sumber