|
In questi giorni ho sostituito, sul mia serverino casalingo, Apache 1 con Apache 2.
Prima avevo un paio di virtual-host, ora ho un reverse-proxy che indirizza i visitatori a uno dei due server "veri", uno per ciascuno di quelli che prima erano virtual-host.
Assieme a tutti questi cambiamenti, ho anche cestinato mod_perl. Perché mai, chiderete. Il fatto è che, principalmente, non mi serve: usando Catalyst, le mie applicazioni web-based girano tranquillamente sotto FastCGI, che volevo imparare ad usare. Inoltre, mod_perl porta ad avere le applicazioni troppo legate al server web, e genera qualche problema quando si comincia ad avere 3-4 applicazioni diverse, magari che usano versioni diverse degli stessi moduli...
FastCGI, invece, crea un ambiente persistente, come mod_perl, ma è molto più vicino al funzionamento stile CGI: ogni script è un processo a sé, viene lanciato quando c'è bisogno (e terminato quando non serve, se gli si chiede), e ogni script può vedere un ambiente diverso. È persino possibile lanciare le applicazioni come server FastCGI separati, e dire ad Apache di connettervisi: potrebbero persino stare su macchine diverse!
Nel caso normale, la URL usata per riferirsi a uno script FastCGI è simile a quella per i CGI normali, ovvero include il nome dello script. Questo è ben poco elegante, specie essendo io abituato a Catalyst sotto mod_perl, in cui potevo delegare un intero sotto-albero dello spazio URL all'applicazione, senza stare a fare capriole strane.
Per fortuna esiste un modo semplice per aggirare il problema: la direttiva Alias di Apache. Per cui, per agganciare il mio bookmark manager (che un giorno o l'altro pubblicherò) sotto /bookmarks, ho solo dovuto scrivere:
<Directory /usr/local/share/webapps/bookmarks/bin>
Order Allow,Deny
Allow from All
</Directory>
FastCgiServer /usr/local/share/webapps/bookmarks/bin/bookmarks_fastcgi.pl
Alias /bookmarks /usr/local/share/webapps/bookmarks/bin/bookmarks_fastcgi.pl
Ovvero: permetti al mondo di leggere la directory dove stanno gli script (che comunque non è mappata nello spazio URL); usa quel file come script server FastCGI; quando ti chiedono /bookmarks/qualcosa tu usa quel file. E tutto funziona.
Se avessi voluto far apparire l'applicazione subito sotto la radice, avrei dovuto scrivere:
Alias / /usr/local/share/webapps/bookmarks/bin/bookmarks_fastcgi.pl/
Notare la / alla fine: è necessaria, altrimenti Apache si confonde (se la parte sinistra di un Alias finisce per /, anche la parte destra deve finire per /, e viceversa).
Mi dicono che nella prossima release di Catalyst sarà inclusa una documentazione molto più precisa sull'uso di FastCGI di quella ora disponibile: intanto potete sfruttare la mezza giornata che è servita a me per ricavare queste istruzioni ;-)
Inviato da dakkar alle 23:54
| Commenti (1)
|