Piero V.

Nginx e PHP portable su Windows

Ogni tanto ho bisogno di avere un web server con PHP sulla mia chiave USB, così ho deciso di provare con Nginx, dato che ne ho sentito parlare molto bene ed è molto, molto leggero.

La prima soluzione che ho trovato si chiamava WNMP, cioè Windows Nginx MySQL PHP, però non mi piaceva anche perché rimetteva il suo copyright su istruzioni praticamente scaricate dal wiki di Nginx, così ho deciso di fare a modo mio.

Scaricare i pacchetti

Le istruzioni che dava lui sono già praticamente le stesse del wiki e le do anch’io, perciò riconosco che sono prese dalle pagine Install e php-fcgi on Windows del wiki di nginx.org e pertanto gli autori di questi step sono gli autori delle pagine del wiki.

Create una cartella sulla vostra chiavetta: il nome non è importante, ma meglio che il percorso sia breve e non contenga spazi.

Dentro a questa cartella create la cartella www. Dopo scaricate Nginx per windows ed estrate la cartella nginx-v... qui, quindi rinominatela in nginx.

Pensate che in meno di 2MB avete un server web! Comunque procediamo con il tutorial: adesso scarichiamo lo Zip di PHP 5 Non Thread Safe per Windows e scompattiamo l’archivio sempre nella cartella su cui stavamo lavorando, quindi rinominiamo la cartella php-v... in php.

È arrivato il momento di configurare Nginx: apriamo nginx/conf/nginx.conf con un qualsiasi editor di testo.

Dove c’è scritto listen 80 cambiate 80 con 8008: in questo modo siete sicuri di non intralciare con altri web server presenti nel sistema (esempio IIS), tuttavia non è un passo obbligatorio. Ricordate però che se è una porta diversa dalla 80 dovrete inserirla nell’indirizzo: ad esempio, con la 8008, nel browser dovrete scrivere http://localhost:8008/.

Dalla sezione location /, rimuovete la direttiva root: la scriveremo fuori, precisamente nella linea sopra a location /.

Come root dobbiamo mettere un percorso assoluto (a me con uno relativo aveva dato problemi con FastCGI): per esempio il mio computer vedeva la cartella www creata precedentemente in E:PortableNginxwww: allora ho scritto

	root   /Portable/Nginx/www;

Torniamo quindi alla sezione location /: alla direttiva index aggiungiamo anche index.php.

Quindi spostiamoci sotto: decommentiamo la sezione location ~ .php$ (cioè togliamo gli #) e facciamola diventare così:

        location ~ .php$ {
			fastcgi_pass   127.0.0.1:9000;
			fastcgi_index  index.php;
			fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
			include        fastcgi_params;
	}

Bene, Nginx è pronto, ora tocca a PHP.

Spostiamoci nella cartella php: io vi consiglio di rinominare il file php.ini-development in php.ini, per altre configurazioni lascio decidere a voi. Per esempio io ho abilitato qualche estensione.

In questa guida ho deciso di non usare mysql perché attualmente non ho bisogno di averlo sempre con me.

Avviare il tutto

Non mi piaceva il sistema dei file BAT, così ho inventato un’altra soluzione che rilascio in pubblico dominio poiché fatta da me.

Per avviare il tutto ho creato uno script in AutoIt che avvia PHP in FastCGI e Nginx: basta posizionarlo nella cartella principale (quella con le sottocartelle nginx, php e www) e poi avviarlo con AutoIt.

Verrà creata un’icona nella barra di sistema: per fermare tutto basta che ci cliccate col tasto destro e cliccate Exit.

Se preferite (e penso proprio di sì), ho creato un exe dello script: wnp.exe.

Il tutto è un po’ spartano, però funziona bene.

2 commenti