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:

  1. a2enmod status

Configuriamo il modulo per darci informazioni dettagliate:

  1. 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:

  1. <IfModule mod_status.c>
  2. <Location /server-status>
  3.     SetHandler server-status
  4.     Order deny,allow
  5.     Allow from all
  6. </Location>
  7. </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:

  1. 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"

  1. <Location /server-status>
  2.     SetHandler server-status
  3.     Order deny,allow
  4.     Allow from all
  5. </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:

  1. 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

  1. <Location /server-status>
  2.         SetHandler server-status
  3.         Order deny,allow
  4.         Allow from all
  5. </Location>

Share this post

Comments (4)

  • anon
    Lorenzo (not verified)

    Come si fà a "visionare.. per benino" come funziona l'apasch di chi ci fornisce "un host linux". Là si che m'interessa sapere cosa ci fanno dentro (sono io che pago in fin dei conti).
    Augh.

    Jul 02, 2010
  • anon

    sulle macchine di qualcun'altro puoi reperire le informazioni che ti lasciano. Le info disponibili con una monitoria di questo tipo sono veramente molte e non credo che in ambienti condivisi sia una buona idea mostrarle.

    Jul 02, 2010
  • anon
    Enzo (not verified)

    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

    Jul 05, 2010
  • anon

    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

    Jul 05, 2010