Jaki jest najbardziej elegancki sposób sprawdzenia, które moduły Apache są włączone?
380
Jaki jest najbardziej elegancki sposób sprawdzenia, które moduły Apache są włączone?
Jesteś na Ubuntu, więc spróbuj:
apache2ctl -M
apache2: bad user name ${APACHE_RUN_USER}
sudo apache2ctl -M | sort
apache2ctl
ale nie są one wymienione ani na stronie podręcznika, ani wapache2ctl --help
. To dlatego, że są przekazywane dohttpd
. Są one wymienione tylko w dokumentacji httpd .httpd -M
powie ci, które moduły są wbudowane lub współdzielone.źródło
httpd
pliku wykonywalnego.apache2
i niehttpd
, dlatego go nie znaleziono.Nic z powyższych odpowiedzi nie działa, jeśli nie można uruchamiać poleceń na zdalnym serwerze. Jeśli masz tylko uprawnienia „użytkownika” lub nie ma go wcale, spróbuj utworzyć
test.php
skrypt:Chociaż będzie działać tylko wtedy, gdy PHP jest zainstalowany jako
mod_php
.źródło
Może to pomoże dla niektórych ludzi na wspólnych gospodarzy bez dostępu do
httpd
,apachectl
lub procesów:Włączone moduły:
ls /etc/apache2/mods-enabled/
Dostępne moduły:
ls /etc/apache2/mods-available/
źródło
Możesz także użyć apachectl
źródło
Myślę, że są tutaj właściwie trzy pytania. Nie jestem pewien, o co pytasz.
Byłoby to (zwykle) w katalogu modułów twojej dystrybucji apache, zwykle / etc / httpd / modules /
Można to sprawdzić za pomocą / usr / sbin / httpd -M, przynajmniej dla podstawowego systemu apache. Jeśli chcesz sprawdzić konkretny plik konfiguracyjny / usr / sbin / httpd -M -f / path / to / config / file
Aby uzyskać dużo informacji, możesz je zobaczyć za pomocą http: // nazwa_mechanizmu / server-info / To nie jest domyślnie skonfigurowane, musisz go skonfigurować . To trochę wycieku informacji, więc skonfiguruj to więc tylko miejscowi mogą to zobaczyć.
Jeśli korzystasz z komputera i masz dostęp do działającego użytkownika, możesz także sprawdzić, co jest załadowane, sprawdzając proces. Możesz znaleźć proces nadrzędny za pomocą:
Następnie sprawdź
źródło
Jeśli korzystasz z Redhat / CentOS,
httpd
jest używany zamiastapache2ctl
.Oznacza to, że musisz użyć
Jednak
httpd
prawie nigdy nie znajduje się na oczekiwanej ścieżce.Mogę potwierdzić na CentOS 5.8 faktyczną ścieżkę
/usr/sbin/httpd
.Ale jeśli to nie jest ścieżka, możesz ją odkryć. Oto jak mogłem to zrobić.
Najpierw sprawdziłem demona używanego do sterowania nim.
Wokół linii 40ish
Który powiedział mi dokładnie, gdzie go znaleźć. Mam nadzieję że to pomoże.
źródło
Wyświetl wszystkie włączone moduły
źródło
Na moim Gentoo mogę wykonać
apache2ctl modules
i zobaczyć wymienione moduły.źródło
Sprawdzanie z poziomu skryptu php (dla pliku mod_xsendfile):
Sprawdzanie PHP_SAPI polega na wykluczeniu, gdy php działa jako CGI, ponieważ apache_get_modules () nie działa w tym kontekście. Dodatkowo, jeśli jest uruchamiany na php <5.0.0, tylko
apache2handler
kontekst da oczekiwany wynik.źródło
Stworzyłem mały skrypt Pythona, aby ci w tym pomóc. Proszę spojrzeć na https://github.com/zioalex/unused_apache_modules
Oto, czego możesz się po tym spodziewać:
źródło