Installazione Nginx · 3 min read · Dec 13, 2025
Installazione di Nginx con supporto PHP5 e MySQL su Fedora 13 - Pagina 2
4 Installazione di PHP5
Possiamo far funzionare PHP5 in nginx tramite FastCGI. Non esiste un pacchetto daemon FastCGI standalone per Fedora, quindi utilizziamo il pacchetto FastCGI di lighttpd (lighttpd-fastcgi) e lo installiamo insieme a php-cli e ad alcuni moduli PHP5 come php-mysql che sono necessari se si desidera utilizzare MySQL dai propri script PHP:
yum install lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidyPoi apri /etc/php.ini e aggiungi la riga cgi.fix_pathinfo = 1 proprio alla fine del file:
vi /etc/php.ini| [...] cgi.fix_pathinfo = 1 |
Il pacchetto lighttpd-fastcgi viene fornito con l’eseguibile /usr/bin/spawn-fcgi che possiamo utilizzare per avviare i processi FastCGI. Dai un’occhiata a
spawn-fcgi --helpper saperne di più.
Per avviare un daemon PHP FastCGI in ascolto sulla porta 9000 su localhost e in esecuzione come utente e gruppo nginx, eseguiamo il seguente comando:
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pidCerto, non vuoi digitare manualmente quel comando ogni volta che avvii il sistema, quindi per far eseguire automaticamente il comando all’avvio del sistema, apri /etc/rc.local…
vi /etc/rc.local… e aggiungi il comando alla fine del file:
| [...] /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid |
5 Configurazione di nginx
La configurazione di nginx si trova in /etc/nginx/nginx.conf che apriamo ora:
vi /etc/nginx/nginx.confLa configurazione è facile da capire (puoi saperne di più qui: http://wiki.codemongers.com/NginxFullExample e qui: http://wiki.codemongers.com/NginxFullExample2)
Per prima cosa (questo è facoltativo) puoi aumentare il numero di processi worker e impostare il keepalive_timeout a un valore ragionevole:
| [...] worker_processes 5; [...] keepalive_timeout 2; [...] |
Gli host virtuali sono definiti nei contenitori server {}. Modifichiamo il vhost predefinito come segue:
| [...] server { listen 80; server_name _; #charset koi8-r; #access_log logs/host.access.log main; location / { root /usr/share/nginx/html; index index.php index.html index.htm; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } # reindirizza le pagine di errore del server alla pagina statica /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy gli script PHP ad Apache in ascolto su 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # passa gli script PHP al server FastCGI in ascolto su 127.0.0.1:9000 # location ~ \.php$ { root /usr/share/nginx/html; try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; include fastcgi_params; } # nega l'accesso ai file .htaccess, se la root del documento di Apache # coincide con quella di nginx # location ~ /\.ht { deny all; } } [...] |
servername ; rende questo un vhost predefinito catchall (certo, puoi anche specificare un nome host qui come www.example.com).
Nella parte location / ho aggiunto index.php alla riga index. root /usr/share/nginx/html; significa che la root del documento è la directory /usr/share/nginx/html.
La parte importante per PHP è la stanza location ~ .php$ {}. Decommentala per abilitarla. Cambia la riga root nella root del documento del sito web (ad esempio root /usr/share/nginx/html;). Assicurati di cambiare la riga fastcgi_param in fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; perché altrimenti l’interprete PHP non troverà lo script PHP che chiami nel tuo browser.
Ora salva il file e riavvia nginx:
/etc/init.d/nginx restartOra crea il seguente file PHP nella root del documento /usr/share/nginx/html…
vi /usr/share/nginx/html/info.php| |
Ora chiamiamo quel file in un browser (ad esempio http://192.168.0.100/info.php):

Come puoi vedere, PHP5 sta funzionando, e sta funzionando tramite FastCGI, come mostrato nella riga Server API. Se scorri più in basso, vedrai tutti i moduli già abilitati in PHP5, incluso il modulo MySQL:

6 Link
- nginx: http://nginx.net/
- wiki di nginx: http://wiki.codemongers.com/Main
- PHP: http://www.php.net/
- MySQL: http://www.mysql.com/
- Fedora: http://fedoraproject.org/
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.