Pertanyaan Bagaimana cara memeriksa modul apache mana yang diaktifkan / dipasang?


Manakah cara paling elegan untuk memeriksa modul apache mana yang diaktifkan?


337
2018-05-17 19:55


asal




Jawaban:


Anda berada di Ubuntu jadi cobalah:

apache2ctl -M

414
2018-05-17 20:01



apache2ctl -M bekerja dengan baik - udo
apache2 -M hasil dalam kesalahan ini apache2: bad user name ${APACHE_RUN_USER} - udo
Cukup adil - itu karena fakta bahwa Anda tidak menjalankan perintah sebagai pengguna waktu run apache (mungkin www-data) yang didefinisikan dalam konfigurasi apache. Ada cara untuk memperbaiki ini tetapi Anda mungkin juga menempel apache2ctl. - Linker3000
sudo apache2ctl -M | sort - mmdemirbas
Perhatikan ada banyak opsi berguna (tanda) ke apache2ctl tetapi mereka tidak terdaftar di manpage atau in apache2ctl --help. Itu karena mereka diserahkan kepada httpd. Mereka terdaftar di dokumentasi httpd hanya. - Lutz Prechelt


httpd -M akan memberi tahu Anda modul mana yang dibuat atau dibagikan.


105
2018-05-17 19:56



hmm ... Saya mendapatkan "bash: httpd: command not found" ketika meluncurkan httpd -M sebagai root - udo
Jadi, tentukan jalur lengkap ke httpd dapat dieksekusi. - Ignacio Vazquez-Abrams
@ IgnacioVazquez-Abrams: Pada Ubuntu (dan distribusi berbasis Debian lainnya), namanya adalah apache2dan tidak httpd, itulah mengapa tidak ditemukan. - Daniel Andersson
Apache adalah httpd di redhat. Cobalah salah satu jawaban lainnya jika ini tidak berhasil untuk Anda. - Jacks_Depression
CentOS juga menggunakan httpd bukan apache2 - pedromanoel


Tidak ada jawaban dari atas yang berfungsi jika Anda tidak dapat menjalankan perintah di server jauh. Jika Anda hanya memiliki hak istimewa "pengguna" atau tidak ada sama sekali coba buat test.php naskah:

<pre>
<?php
print_r(apache_get_modules());
?>
</pre>

Meskipun itu akan berfungsi hanya jika PHP diinstal sebagai mod_php.


35
2018-04-11 09:10



Juga, Anda tidak ingin hal ini dapat dilihat oleh publik. Mungkin ingin membatasi hasil itu ke klien dengan IP administrator. Dan Anda ingin menghapus skrip itu segera setelah selesai. Karena pertahanan secara mendalam; jangan membuatnya lebih mudah daripada yang seharusnya. - Parthian Shot


Mungkin ini akan membantu bagi beberapa 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/


19
2018-05-04 11:33



Berikut ini daftar lengkapnya, apache2ctl filter mereka - jgpATs2w


Anda juga bisa menggunakan apachectl

apachectl -t -D DUMP_MODULES

17
2018-02-06 07:04





Saya pikir sebenarnya ada tiga pertanyaan di sini. Saya tidak yakin yang Anda minta.

  • Modul apa yang Anda miliki di disk. Apa saja modul yang bisa Anda gunakan.

Ini akan menjadi (biasanya) di direktori modul distribusi apache Anda, biasanya / etc / httpd / modules /

  • Modul apa saja yang spesifik yang dikonfigurasi untuk dijalankan.

Ini dapat diperiksa dengan / usr / sbin / httpd -M, setidaknya untuk apache sistem basis. Jika Anda ingin memeriksa file konfigurasi spesifik / usr / sbin / httpd -M -f / path / ke / config / file

  • Apa yang ada di apache yang sedang berjalan

Untuk mendapatkan banyak info, Anda bisa melihatnya http: // machinename / server-info / Ini tidak dikonfigurasi secara default, Anda harus melakukannya konfigurasikan itu. Ini sedikit info kebocoran, jadi konfigurasikan sehingga hanya orang lokal yang bisa melihatnya.

Jika Anda menggunakan mesin dan Anda memiliki akses untuk menjadi pengguna yang sedang berjalan, Anda juga dapat melihat apa yang dimuat dengan memeriksa proses. Anda dapat menemukan proses induk dengan:

ps -ef | gawk '/httpd/ && $3 == 1{print $2}'

Lalu periksa

cat /proc/PID_FROM_ABOVE/maps

10
2018-05-17 20:57



Informasi yang berguna tetapi karena OP menggunakan Ubuntu, nama file dan lokasinya berbeda - misalnya: / usr / sbin / apache2, bukan httpd, dan ps-e | gawk '/ apache2 / && $ 3 == 1 {print $ 2}' Lokasi modul ditangani secara berbeda, dengan subfolder yang tersedia mods dan mods-enabled - Linker3000
Terima kasih @ Linker3000 ... Anda benar, ini untuk RedHat / Centos, saya akan membiarkan komentar Anda tentang cara mengonversi ke Ubuntu - Rich Homolka


Jika Anda menggunakan Redhat / CentOS, httpd digunakan sebagai pengganti apache2ctl.

Ini berarti Anda harus menggunakan

httpd -M

Namun, httpd hampir tidak pernah di jalan yang Anda harapkan.

Saya dapat mengkonfirmasi pada CentOS 5.8 jalur sebenarnya /usr/sbin/httpd.

/usr/sbin/httpd -M

Tetapi jika itu bukan jalan, Anda dapat menemukannya. Di sini adalah bagaimana saya bisa melakukannya.

Pertama, saya memeriksa daemon yang digunakan untuk mengendalikannya.

less /init.d/httpd

Sekitar garis 40ish

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
prog=httpd

Yang memberi tahu saya di mana menemukannya. Semoga ini membantu.


10
2018-03-11 18:41