Nginx kann PHP nicht auf dem Ubuntu 16.04-Server ausführen

8

Bearbeiten.
Die Frage wurde hier bereits beantwortet: /server/889334/cant-get-nginx-to-run-php-on-ubuntu-16-04-server

Ich richte einen Server ein, auf dem Nginx ausgeführt wird, und ich versuche, ihn dazu zu bringen, PHP-Skripte auszuführen.

Anscheinend ist der beste Artikel darüber, wie man Nginx dazu bringt, PHP auszuführen, dieser: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in- Ubuntu-16-04

Die folgende Diskussion endet damit, wenn die anderen Richtungen älter werden.
Was ist der einfachste Weg, um PHP auf Nginx zu aktivieren?

Ich gehe die Anweisungen auf der Digital Ocean Website durch, aber nichts ändert sich, ich kann immer noch kein PHP ausführen.

Ich bin ziemlich verloren darin und jede Hilfe wäre dankbar.

Hier ist die Ausgabe von sudo service nginx status:

nginx.service - A high performance web server and a reverse proxy server     
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2017-12-17 13:46:33 GMT; 55min ago
Process: 19056 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 19091 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=0/SUCCESS)    
Process: 19064 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 19059 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 19066 (nginx)
Tasks: 2
Memory: 4.6M

CPU: 406ms
CGroup: /system.slice/nginx.service
       ├─19066 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
       └─19094 nginx: worker process                           

Dec 17 13:46:33 websites systemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 17 13:46:33 websites systemd[1]: Started A high performance web server and a reverse proxy server.
Dec 17 13:48:53 websites systemd[1]: Reloading A high performance web server and a reverse proxy server.
Dec 17 13:48:53 websites systemd[1]: Reloaded A high performance web server and a reverse proxy server.

Hier ist die Ausgabe von php -v:

PHP 7.0.22-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.22-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by      Zend Technologies

Und hier ist die Konfigurationsdatei, die ich verwende.

Es ist bei /etc/nginx/conf.d/virtual_servers.conf.

server {
    listen 80; 
    server_name openage.org www.openage.org;
    #listen [::]:80 default_server ipv6only=on;

    #root /usr/share/nginx/html;
    root /etc/nginx/html/openage;
    index index.php index.html index.htm;

    #server_name localhost;

    location / { 
        try_files $uri $uri/ =404;
    }   

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }   

    location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php/php7-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }   

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/openage.org/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/openage.org/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

Ich habe schon:

  • php-fpm neu gestartet.
  • Nginx neu gestartet.
  • Erzwinge das erneute Laden des Browser-Cache mit Strg-F5.
  • überprüfte / var / log / error auf Fehler, aber es gibt anscheinend keine Fehler, wenn ich die PHP-Datei ausführe. Es ist, als würde nginx einfach nicht erkennen, dass es das PHP ausführen soll, anstatt es nur wie eine normale Datei zu behandeln.

Ich versuche, ein Skript auszuführen, das nur die Funktion enthält phpinfo(). Aber anstatt mir die PHP-Informationen zu geben, bietet mir der Browser nur an, die Datei herunterzuladen. /::

Hermann Ingjaldsson
quelle
Zeigen Sie uns das Ergebnis von: sudo service nginx statusundphp -v
MehrdadEP
Ich habe es der Frage hinzugefügt.
Hermann Ingjaldsson
1
Wie haben Sie PHP konfiguriert? Veröffentlichen Sie Ihre Konfigurationsänderungen in PHP und Nginx. Starten Sie PHP-Fpm und Nginx neu, leeren Sie Ihren Browser-Cache, suchen Sie in Ihren Nginx-Protokollen nach Fehlern, welches PHP-Skript ????? Wir brauchen mehr Informationen.
Panther
Was ist die Fehlermeldung, die Sie erhalten?
George Udosen
@HermannIngjaldsson Ihr Nginx-Status sieht gut aus, was ist der Fehler genau?
MehrdadEP

Antworten:

2

Öffnen Sie terminalden folgenden Befehl und führen Sie ihn aus:

gksu gedit /etc/nginx/sites-available/default

nginxDadurch wird Ihre Konfigurationsdatei geöffnet . Bearbeiten Sie es mit folgendem Text:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    server_name localhost;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php7-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Führen Sie nach dem Speichern der Datei den folgenden Befehl aus, um nginx neu zu starten:

sudo service nginx restart
MehrdadEP
quelle
Ich habe diesen Text in die Konfigurationsdatei eingefügt, nginx neu gestartet und das Problem besteht weiterhin. /:
Hermann Ingjaldsson
Überprüfen Sie diesen Speicherort, um Ihre Version der Datei zu sehen und bearbeiten Sie sie in nginx conf:/var/run/php7-fpm.sock
MehrdadEP
Hast du deine PHP-Testdatei in diesen Ordner gelegt? /usr/share/nginx/html
MehrdadEP
Es gibt keine /var/run/php7-fpm.sock, aber es gibt eine /var/run/php/php7.0-fpm.sock. Es ist eine Steckdose und ich bin nicht sicher, wie ich den Inhalt sehen soll. Ich verstehe nicht ganz, wonach du eigentlich fragst.
Hermann Ingjaldsson
Es gibt ein Nginx-Willkommens-HTML in / usr / share / nginx / html yes.
Hermann Ingjaldsson