Impossibile ottenere nginx per eseguire php sul server Ubuntu 16.04


8

Modificare.
La domanda ha già una risposta qui: /server/889334/cant-get-nginx-to-run-php-on-ubuntu-16-04-server

Sto installando un server che esegue nginx e sto cercando di farlo eseguire script php.

Apparentemente il più grande articolo su come ottenere nginx per eseguire php è questo: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in- ubuntu-16-04

La discussione che segue finisce quando le altre direzioni sono invecchiate.
Qual è il modo più semplice per abilitare PHP su nginx?

Seguo le indicazioni sul sito web dell'oceano digitale ma non cambia nulla, non riesco ancora a eseguire php.

Sono abbastanza perso in questo e qualsiasi aiuto sarebbe apprezzato.

Ecco l'output di 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.

Ecco l'output di 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

Ed ecco il file di configurazione che sto usando.

È a /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
}

Ho già:

  • riavviato php-fpm.
  • riavviato nginx.
  • force ricaricato la cache del browser con ctrl-f5.
  • controllato / var / log / error per errori ma apparentemente non ci sono errori per quando eseguo il file php. È come se nginx non si rendesse conto che avrebbe dovuto eseguire il php invece di trattarlo come un normale file.

Sto cercando di eseguire uno script contenente solo la funzione phpinfo(). Ma invece di darmi le informazioni php il browser mi offre solo di scaricare il file. /:


mostraci il risultato di: sudo service nginx statusephp -v
MehrdadEP il

l'ho aggiunto alla domanda.
Hermann Ingjaldsson,

1
Come hai configurato php? Pubblica le tue modifiche di configurazione su php e nginx. riavvia php-fpm e nginx, svuota la cache del browser, cerca nei log nginx gli errori, quale script php ????? Abbiamo bisogno di maggiori informazioni.
Pantera,

qual è il messaggio di errore che ricevi?
George Udosen,

@HermannIngjaldsson il tuo stato nginx sembra a posto, qual è esattamente l'errore?
MehrdadEP

Risposte:


2

Apri terminaled esegui il seguente comando:

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

questo aprirà il tuo nginxfile di configurazione. modificalo con il seguente testo:

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

dopo aver salvato il file eseguire il comando seguente per riavviare nginx:

sudo service nginx restart

Ho inserito questo testo nel file di configurazione, riavviato nginx e il problema persiste. /:
Hermann Ingjaldsson il

controlla questa posizione per vedere la tua versione del file e modificalo in nginx conf:/var/run/php7-fpm.sock
MehrdadEP

hai inserito il tuo file di test php in questa cartella? /usr/share/nginx/html
MehrdadEP

Non esiste /var/run/php7-fpm.sock ma esiste un /var/run/php/php7.0-fpm.sock. È un socket e non sono sicuro di come vederne il contenuto. Non capisco bene cosa stai chiedendo davvero.
Hermann Ingjaldsson,

Esiste un html di benvenuto nginx in / usr / share / nginx / html sì.
Hermann Ingjaldsson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.