Frage Was ist der einfachste Weg, PHP auf nginx zu aktivieren?


Was ist der einfachste Weg, um PHP auf nginx auf Ubuntu 12.04 zu aktivieren?

Die beste Lösung ist diejenige, die minimale Arbeit verlangt, im Idealfall nur eine Paketinstallation :)


126
2018-05-09 22:39


Ursprung




Antworten:


Mit der folgenden Methode kannst du schnell mit Ubuntu 12.04 beginnen:

Installieren Sie die Abhängigkeiten:

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

Installieren Sie nginx:

sudo apt-get install nginx

Start nginx:

sudo service nginx start

Testen Sie, dass es funktioniert (siehe "Willkommen bei nginx!")

sudo service nginx stop

Ändern Sie in Ihrer nginx-Site-Konfiguration (/ etc / nginx / sites-available / default) die Zeile im Abschnitt server {}

index index.html index.htm zu index index.php index.html index.htm.

Entfernen Sie die Kommentarzeichen für die Zeilen im Abschnitt Server {}, die mit beginnen

listen für ipv4 / ipv6 beides.

Scrolle nach unten zu "location ~ .php {" und markiere die Zeilen so, dass sie so aussehen:

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

Ihr Standard-Webstamm befindet sich unter / usr / share / nginx / www (gemäß der Konfigurationsdatei). (Sehen root /usr/share/nginx/www;

(Hinweis: Für Ubuntu 12.10 oder neuer, müssen Sie die ersetzen fastcgi_pass 127.0.0.1:9000; Linie damit, damit es funktioniert: fastcgi_pass unix:/var/run/php5-fpm.sock;)


135
2018-05-09 23:07



Als späte Randnotiz können Sie 12.04 einen UNIX-Socket wie 12.10+ verwenden, indem Sie ihn bearbeiten /etc/php5/fpm/pool.d/www.conf und Ändern der Abhörleitung zu listen = /var/run/php5-fpm.sock, dann mit der Zeile @ThomasW. erwähnt. - Powerlord
@Powerlord das NGINX-Standard-Setup hat beide Zeilen und erklärt den Unterschied zwischen den beiden, anstatt zu ändern, wie PHP läuft, können Sie nur die Konfigurationszeile in NGINX schneller ändern, und alles funktioniert. - Thomas Ward♦
@ThomasW. Die Beschreibung der beiden Zeilen des NGINX-Standard-Setups ist in 12.04 ebenfalls falsch. php5-fpm benötigt die erste Methode aufgrund der Konfiguration von php5-fpm in 12.04. Es änderte sich erst am 12.10 zur zweiten Methode. Um php5-fpm wie beschrieben mit nginx arbeiten zu können, müssen Sie fpm's www.conf wie in meiner vorherigen Nachricht beschrieben modifizieren. - Powerlord
@Powerlord Sie haben recht, es ist ein Problem, das behoben werden kann, indem Sie die Dokumentation in der Standardkonfigurationsdatei ändern. Sehen Dieser Fehler, den ich zu diesem Thema erstellt habe. Ich hatte noch keine Chance, einen Bugfix vorzuschlagen. - Thomas Ward♦
Dies funktioniert nicht auf Ubuntu 14.04. nginx sagt "Es ist ein Fehler aufgetreten, die von Ihnen gesuchte Seite wurde nicht gefunden", was ist zu tun? - Awal Garg


BEARBEITEN: Wie von Matt Browne Sie könnten sich für diesen Beitrag interessieren:
Wie man Linux, Nginx, MySQL, PHP (LEMP-Stapel) in Ubuntu 16.04 installiert


Das papashous Antwort ist richtig auf altem Ubuntu 12.04. Seit Ubuntu 12.10 ist die Konfiguration ein bisschen anders. Hier ist, was ich getan habe:

Installieren

sudo apt-get install nginx php5-fpm

Aktivieren Sie PHP

Entfernen Sie die Kommentarzeichen für die folgenden Zeilen in der Konfigurationsdatei /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;
}

Anfang (oder neustarten)

sudo service php5-fpm restart
sudo service nginx restart

Prüfung nginx

Diesen Link öffnen http://localhost sollte angezeigt werden "Willkommen bei nginx!"

Prüfung php

Erstellen Sie eine PHP-Datei:

  • Der Zielpfad ist die Ausgabe von

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

    z.B. /usr/share/nginx/www

  • Schreib ein info.php Datei mit:

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

    oder als Einzeiler

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

Öffnung http://localhost/info.php sollte die PHP Informationsseite anzeigen.


46
2018-03-07 04:39



Danke dafür. Hier ist ein weiterer hilfreicher Link: digitalocean.com/community/tutorials/.... Wenn Sie MySQL installieren möchten, müssen Sie es ebenfalls ausführen apt-get install php5-mysql (Zusätzlich zur Installation von MySQL selbst). - Matt Browne
Es gibt eine neue Version des obigen Artikels für Ubuntu 16: digitalocean.com/community/tutorials/... - Matt Browne