Apache a volte può sembrare sfuggente nelle sue configuazioni. Esistono però tutta una serie di tool per la sua gestione, tra cui uno piuttosto interessante che risponde al nome di [textmarker color=”000000″]apachectl[/textmarker] o [textmarker color=”000000″]apache2ctl[/textmarker] a seconda della distribuzione Linux.
Questo comando permette di fare molte cose, ad esempio avviare, fermare o riavviare il webserver al posto del classico “service apache2 start/stop/restart”. Ha anche delle funzioni un po’ più evolute come ad esempio “graceful” e “graceful stop”, la prima è assimilabile ad un restart, la seconda ad uno stop, ma con una gestione delle connessioni attive che non vengono brutalmente chiuse.
Interessanti anche le funzioni di fullstatus e status. La prima mostra non solo le connessioni attive, ma anche sulle pagine ed eventuali script che sono in quel momento utilizzati. Oltre a questo un utile sommario del webserver, quali utilizzo di memoria e cpu, capienza massima utilizzata ed altre cose.
Quello che stranamente non è evidenziato nella man page, è che attraverso apachectl possiamo prendere visione dei moduli che sono stati caricati all’avvio. Può essere infatti necessario capire quali moduli il webserver ha in pancia e vedere se quello che ci interessa è tra questi. Il comando è piuttosto semplice.
apachectl -t -D DUMP_MODULES
Ci verrà ritornata la lista tipo questa:
Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
alias_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
expires_module (shared)
filter_module (shared)
mime_module (shared)
php7_module (shared)
rewrite_module (shared)
setenvif_module (shared)
ssl_module (shared)
Se desideriamo circoscrivere la ricerca, possiamo semplicemente appendere al comando di cui sopra la funzione [textmarker color=”000000″]| grep moduloDaCercare[/textmarker].
Come vedete è piuttosto semplice ottenere tali informazioni, e persino far evolvere la richiesta ad esempio passandole ad uno specifico script di shell.