Nie można zmusić nginx do uruchomienia php na serwerze Ubuntu 16.04

8

Edytować.
Pytanie już otrzymało odpowiedź tutaj: /server/889334/cant-get-nginx-to-run-php-on-ubuntu-16-04-server

Konfiguruję serwer z uruchomionym nginx i próbuję zmusić go do uruchamiania skryptów php.

Najwyraźniej największym artykułem na temat tego, jak zmusić nginx do uruchomienia php jest ten: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in- ubuntu-16-04

Poniższa dyskusja kończy się wraz z wiekiem pozostałych kierunków.
Jak najłatwiej włączyć PHP na nginx?

Kieruję się wskazówkami na stronie internetowej oceanu cyfrowego, ale nic się nie zmienia, wciąż nie mogę uruchomić php.

Jestem w tym zagubiony i każda pomoc byłaby mile widziana.

Oto wynik 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.

Oto wynik 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

A oto plik konfiguracyjny, którego używam.

Jest w /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
}

Mam już:

  • zrestartowałem php-fpm.
  • zrestartowałem nginx.
  • force ponownie załadował pamięć podręczną przeglądarki za pomocą klawiszy Ctrl-F5.
  • sprawdziłem / var / log / error pod kątem błędów, ale najwyraźniej nie ma błędów po uruchomieniu pliku php. To tak, jakby nginx po prostu nie zdawał sobie sprawy, że powinien uruchomić php zamiast traktować go jak zwykły plik.

Próbuję uruchomić skrypt zawierający tylko funkcję phpinfo(). Ale zamiast podawać mi informacje php, przeglądarka po prostu oferuje mi pobranie pliku. /:

Hermann Ingjaldsson
źródło
pokaż nam wynik: sudo service nginx statusiphp -v
MehrdadEP
dodałem to do pytania.
Hermann Ingjaldsson,
1
Jak skonfigurowałeś php? Opublikuj swoje zmiany konfiguracji w php i nginx. zrestartuj php-fpm i nginx, wyczyść pamięć podręczną przeglądarki, zajrzyj do dzienników nginx pod kątem błędów, jaki skrypt php ????? Potrzebujemy więcej informacji.
Panther
jaki otrzymujesz komunikat o błędzie?
George Udosen
@HermannIngjaldsson Twój status Nginx wygląda dobrze, jaki jest dokładnie błąd?
MehrdadEP,

Odpowiedzi:

2

Otwórz terminali uruchom następujące polecenie:

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

to otworzy twój nginxplik konfiguracyjny. edytuj go następującym tekstem:

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;
    }
}

po zapisaniu pliku uruchom następującą komendę, aby zrestartować nginx:

sudo service nginx restart
MehrdadEP
źródło
Umieściłem ten tekst w pliku konfiguracyjnym, zrestartowałem nginx i problem nadal występuje. /:
Hermann Ingjaldsson,
sprawdź tę lokalizację, aby zobaczyć swoją wersję pliku i edytuj ją w nginx conf:/var/run/php7-fpm.sock
MehrdadEP
czy umieściłeś plik testowy php w tym folderze? /usr/share/nginx/html
MehrdadEP,
Nie ma /var/run/php7-fpm.sock, ale istnieje /var/run/php/php7.0-fpm.sock. Jest to gniazdo i nie jestem pewien, jak zobaczyć jego zawartość. Nie do końca rozumiem, o co właściwie prosisz.
Hermann Ingjaldsson,
W / usr / share / nginx / html tak jest html powitalny nginx.
Hermann Ingjaldsson,