Jaký je nejjednodušší způsob, jak povolit PHP na nginx?

126

Jaký je nejjednodušší způsob, jak povolit PHP na nginx na Ubuntu 12.04?

Nejlepším řešením je ten, který požaduje minimální práci, ideálně jen instalace balíčku:)

    
dané sorin 10.05.2012 00:39

2 odpovědi

135

Následující metoda vám umožní rychle začít s Ubuntu 12.04:

Instalace závislostí:

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

Nainstalovat nginx:

sudo apt-get install nginx

Spusťte nginx:

sudo service nginx start

Otestujte, že funguje (měli byste vidět "Vítejte na webu nginx!")

sudo service nginx stop

V konfiguraci webu nginx (/ etc / nginx / sites-available / default) upravte řádek v sekci server {}

index index.html index.htmindex index.php index.html index.htm.

Oddělit řádky v sekci server {} začínající

listen pro ipv4 / ipv6 obě.

Přejděte dolů na místo, kde se nachází "location ~ .php {" a odkomentujte řádky tak, aby to vypadalo takto:

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 sudo service nginx restart

Výchozí kořen webu je umístěn na / usr / share / nginx / www (v konfiguračním souboru). (Vizroot /usr/share/nginx/www;

(Poznámka: Pro Ubuntu 12.10 nebo novější budete muset nahradit řádekfastcgi_pass 127.0.0.1:9000; takto:fastcgi_pass unix:/var/run/php5-fpm.sock;)

    
odpověděl papashou 10.05.2012 01:07
46

EDIT: Jak bylo uvedeno v Matt Browne , možná vás to zajímá novější příspěvek:
Jak nainstalovat Linux, Nginx, MySQL, PHP (LEMP stack) v Ubuntu 16.04

odpověď na papashou je správná na starém Ubuntu 12.04. Od Ubuntu 12.10 je konfigurace trochu odlišná. Zde je to, co jsem udělal:

Nainstalovat

sudo apt-get install nginx php5-fpm

Povolit PHP

Odstraňte následující řádek v konfiguračním souboru/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;
}

Spustit (nebo restartovat)

sudo service php5-fpm restart
sudo service nginx restart

Testnginx

Otevřením tohoto odkazuhttp://localhost by mělo zobrazovat "Vítejte na stránkách nginx!"

Testphp

Vytvořte soubor php:

  • Cílová cesta je výstup

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

    např. /usr/share/nginx/www

  • Napište souborinfo.php s:

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

    nebo jako jeden-liner

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

Otevřeníhttp://localhost/info.php by mělo zobrazovat informační stránku PHP.

    
odpověděl olibre 07.03.2013 05:39