Qual è il modo più semplice per abilitare PHP su nginx?

130

Qual è il modo più semplice per abilitare PHP su nginx su Ubuntu 12.04?

La soluzione migliore è quella che richiede un lavoro minimo, idealmente solo l'installazione di un pacchetto:)

    
posta sorin 10.05.2012 - 00:39

2 risposte

138

Il seguente metodo ti farà iniziare velocemente su Ubuntu 12.04:

Installa le dipendenze:

sudo apt-get install php5-common php5-cli php5-fpm

Installa nginx:

sudo apt-get install nginx

Inizia nginx:

sudo service nginx start

Verifica che funzioni (dovresti vedere "Benvenuto in nginx!")

sudo service nginx stop

Nella configurazione del tuo sito nginx (/ etc / nginx / sites-available / default), modifica la riga nella sezione server {}

index index.html index.htm in index index.php index.html index.htm .

Decommenta le righe nella sezione server {} iniziando con

listen per ipv4 / ipv6 entrambi.

Scorri verso il basso fino a dove dice "location ~ .php {" e le righe del commento in modo che assomigli a questa:

location ~ \.php$ {
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  include fastcgi_params;
}

sudo service php5-fpm restart % Co_de%

La tua web root predefinita si trova in / usr / share / nginx / www (secondo il file di configurazione). (Vedi sudo service nginx restart

(Nota: per Ubuntu 12.10 o più recente, dovrai sostituire la riga root /usr/share/nginx/www; con questa operazione per farlo funzionare: fastcgi_pass 127.0.0.1:9000; )

    
risposta data papashou 10.05.2012 - 01:07
46

EDIT: come sottolineato da Matt Browne potresti essere interessato a questo post più recente:
Come installare Linux, Nginx, MySQL, PHP (stack LEMP) in Ubuntu 16.04

La risposta di papashou è corretta sulla vecchia Ubuntu 12.04. Da Ubuntu 12.10, la configurazione è leggermente diversa. Ecco cosa ho fatto:

Installa

sudo apt-get install nginx php5-fpm

Abilita PHP

Decommenta le seguenti righe nel file di configurazione /etc/nginx/sites-available/default

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

#   # With php5-cgi alone:
#   fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

Avvia (o riavvia)

sudo service php5-fpm restart
sudo service nginx restart

Test nginx

Aprendo questo link http://localhost dovrebbe mostrare "Benvenuto in nginx!"

Test php

Crea un file php:

  • Il percorso target è l'output di

    awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default
    

    es. % Co_de%

  • Scrivi un file /usr/share/nginx/www con:

    echo '<?php phpinfo(); ?>' | \
        sudo tee /usr/share/nginx/www/info.php
    

    o come one-liner

    echo '<?php phpinfo(); ?>' | \
        sudo tee "$(awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default)/info.php"
    

L'apertura di info.php dovrebbe visualizzare la pagina di informazioni PHP.

    
risposta data olibre 07.03.2013 - 05:39

Leggi altre domande sui tag