Sezioni: Recensioni di Libri - Recensioni di Film - Telefoni Cellulari
[Hint] Abilitare il mod_rewrite su Apache 2.2 (Compilato a Mano)
Potrei aprire una sezione intitolata "Forse non tutti sanno che..." o anche "Esperienze di SysAdmin vissuto..."...
O forse semplicemente taggare qualche post come "Hint", come questo.
Il problema nacque quando un cliente mi fece notare che il mod_rewrite su un server non era abilitato.
Quel server, causa vecchie abitudini mie, aveva un Apache (e mica solo quello) compilato a mano, invece che installato da pacchetto.
Perche' compilato a mano?
Perche' e' piu' aggiornato, e non ha tanta fuffa inutile.
Peccato che, come ho scoperto, non abbia nemmeno la fuffa utile, come, ad esempio, il mod_rewrite (di cui avevo anche scritto qui).
Diciamo che non lo uso cosi' spesso da accorgermi della sua assenza :P
Come infilarlo?
Girando per Internet e Google ho scoperto di tutto, tra cui come compilare il modulo su Apache 1.3 (e' una 2.2), come abilitarlo su Debian (installato da apt... sorry, non va bene), e come abilitarlo.
Ma cosa fare se lo stramaledetto mod_rewrite.so manca?
Semplice, si convince Apache a compilarlo.
Per farlo e' sufficiente inserire, sulla linea del ./configure, l'opzione --enable-rewrite=shared.
Dopodiche', teoria vorrebbe che sarebbe sufficiente il canonico make && make install...
Invece no.
Se prima di dare il make non avete l'accortezza di dare un make clean lui non aggiunge una mazza, anche se avete cambiato tutte le opzioni.
Quindi make clean && make && make install.
Ovviamente, in caso di compilazione manuale, vi tocca anche aggiungere la seguente riga all'httpd.conf:
LoadModule rewrite_module modules/mod_rewrite.so
A questo punto, se prima di compilare non avete dato il simpatico apachectl stop, sarete felici di sapere che non funziona piu' una mazza (pagine bianche a gogo', da queste parti).
Quindi, prima di farvi prendere dal panico, ricordatevi che avete ricompilato con il server avviato (oh, era in produzione...), rilassatevi e, con molta calma e seraficita', digitate, in sequenza:
apachectl stop
apachectl start
So benissimo che, a teoria, un piu' pratico (comando singolo) apachectl restart dovrebbe sortire gli stessi effetti, ma volendo essere scaramantici uno stop e uno start puliti sono sempre meglio.






Perche' compilato a mano?
Perche' e' piu' aggiornato, e non ha tanta fuffa inutile.
Questa è la via! :)
SEMPRE ricompilare a mano. Conosci i passaggi dove viene ficcato Apache e poi fa troppo geek far finta di sapere cosa sono i codici che scorrono dopo il make.
Peccato che quando va in errore la compilazione il kernel panic ti viene nel cervello.