it-swarm.dev

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

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

Nejlepší řešení je řešení, které vyžaduje minimální práci, ideálně pouze instalaci balíčku :)

135
sorin

Následující metoda vám pomůže začít rychle na Ubuntu 12.04:

Nainstalujte závislosti:

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

Nainstalovat nginx:

Sudo apt-get install nginx

Začít nginx:

Sudo service nginx start

Otestujte, zda to funguje (mělo by se zobrazit „Vítejte v nginx!“)

Sudo service nginx stop

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

index index.html index.htm to index index.php index.html index.htm.

Zrušte řádky v sekci server {} počínaje

listen pro ipv4/ipv6.

Přejděte dolů na místo, kde je uvedeno location ~ \.php { a řádky odkomentování, takže to vypadá 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 restartSudo service nginx restart

Váš výchozí webový kořenový adresář je umístěn na/usr/share/nginx/www (podle konfiguračního souboru). (Viz root /usr/share/nginx/www;

(Poznámka: U Ubuntu 12.10 nebo novějších bude nutné nahradit fastcgi_pass 127.0.0.1:9000; řádek s tím, aby to fungovalo: fastcgi_pass unix:/var/run/php5-fpm.sock;)

141
papashou

EDIT: Jak zdůraznil Matt Browne , možná vás bude zajímat tento novější příspěvek:
Jak nainstalovat Linux, Nginx, MySQL, PHP (zásobník LEMP) v Ubuntu 16.04


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

Instalace

Sudo apt-get install nginx php5-fpm

Povolit PHP

Zrušte následující řádky 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;
}

Start (nebo restart)

Sudo service php5-fpm restart
Sudo service nginx restart

Test nginx

Otevření tohoto odkazu http://localhost by mělo zobrazit "Vítejte v nginx!"

Test php

Vytvořte soubor php:

  • Cílová cesta je výstupem

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

    např. /usr/share/nginx/www

  • Napsat info.php soubor s:

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

    nebo jako obložení

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

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

47
olibre
Sudo apt install nginx php-fpm

Poznamenejte si verzi fpm nebo zaškrtněte php -v. 7.3.11-0ubuntu0.19.10.3 (cli) v mém případě.

Sudo nano /etc/nginx/sites-available/default
  1. Nastavte správnou složku root.

  2. Přidat index.php podle směrnice index.

  3. Zrušte popisovač umístění pro php, ale pokud používáte php-fpm, ponechte řádek „php-cgi“ komentářem. Zajistěte také správnou verzi fpm, abyste na localhost dostali „502 Bad Gateway“: fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;

Sudo service nginx restart

To funguje na:

$ nginx -v
nginx version: nginx/1.16.1 (Ubuntu)
$ uname -a
Linux cees-XPS-13-9380 4.15.0-1067-oem #77-Ubuntu SMP Mon Jan 20 09:23:07 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
0
Cees Timmerman