Scoprire cosa fa Apache in questo momento: Server-Status

Apache logo

Molto spesso sentiamo dire che quell'Apache non è configurato bene, altre volte ci sentiamo giustificare che qeull'Apache è carico e non potra reggere altro lavoro, altre volte ci viene detto che quel povero Apache si schianta per colpa di una nostra applicazione, ma non ci viene detto ne dove ne un errore preciso.
Per provare a rispondere alle domande sopra servono dei dati oggettivi che aiutino chi configura il server e chi ci mette codice sopra, di soluzioni sicuramente ve ne sono molte ma un modulo interno di Apache ci viene in soccorso con semplici informazioni di grande aiuto: Server Status.
Server-Status è un modulo standard fornito con Apache che fornisce alcune informazioni molto utili che potete vedere qui:

Come potete vedere il modulo ci fornisce un'idea di come stanno procedendo gli accessi al nostro web server e di quali pagine sono in esecuzione ora.
Il modulo è sicuramente la base per capire come configurare Apache (che è un mondo intero da scoprire) e su come scovare il codice rognoso.
L'installazione del modulo essendo parte di Apache è molto semplice, per consentire a tutti di provare lo strumento vediamo come configurarlo su alcune piattaforme:

Ubuntu e derivate(Kubuntu, mint)

Abilitiamo il modulo:

a2enmod status

Configuriamo il modulo per darci informazioni dettagliate:

echo ExtendedStatus On > /etc/apache2/conf.d/server-status.conf

Il modulo per default è abilitato per essere accessibile solo da localhost quindi è necessario modificare il file di configurazione:
/etc/apache2/mods-enabled/status.conf
Nella seguente maniera:

<IfModule mod_status.c>
<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Allow from all
</Location>
</IfModule>

Il file potrebbe

XAMPP Windows

Sotto xampp per linux il modulo è già abilitato ma non utilizza la configurazione estesa quindi va abilitata.

Per abilitare la configurazione estesa aggiungere la riga:

ExtendedStatus On

al file "%XAMP_LOCATION%\apache\conf\http.conf"

Come per l'installazione su linux le informazioni per default sono disponibili solo su localhost quindi per mostrarle all'esterno vanno aggiunte le seguenti righe al file "%XAMP_LOCATION%\apache\conf\http.conf"

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Allow from all
</Location>

Gentoo Linux

Su gentoo la configurazione del modulo è piuttosto semplice ma profondamente diversa dai surrogati di Debian.
Per abilitare il modulo: modificare il file : /etc/conf.d/apache2
con qualcosa di simile a questo:

APACHE2_OPTS="-D DEFAULT_VHOST -D PHP5 -D STATUS"

in pratica va aggiunta l'opzione "-D PHP5" ai parametri.

Per consetire l'accesso da remoto dobbiamo poi editare il file: /etc/apache2/modules.d/00_mod_status.conf

<Location /server-status>
        SetHandler server-status
        Order deny,allow
        Allow from all
</Location>

Enzo (non verificato) Lun, 07/05/2010 - 09:43

Ciao Uccio,
Scusa ma il paragrafo XAMPP per Windows non è che per caso si riferisce a Linux?
Comunque in httpd.conf ho inserito

ExtendedStatus On

SetHandler server-status
Order deny,allow
Allow from all

Si ma adesso come vedo lo stato?
Grazie ciao

Uccio (non verificato) Lun, 07/05/2010 - 11:54

In risposta a di Enzo (non verificato)

Il paragrafo si riferisce a windows ma di fatto apache lo si configura nella stessa maniera sulle due piattaforme!!
Hai trovato degli errori? Lo screenshoot è linux pero!

Per vedere lo status: http://127.0.0.1/server-status