Impossible d'obtenir nginx pour exécuter php sur le serveur Ubuntu 16.04


8

Éditer.
La question a déjà obtenu une réponse ici: /server/889334/cant-get-nginx-to-run-php-on-ubuntu-16-04-server

J'installe un serveur exécutant nginx et j'essaie de le faire exécuter des scripts php.

Apparemment, le plus grand article sur la façon d'obtenir nginx pour exécuter php est celui-ci: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in- ubuntu-16-04

La discussion suivante se termine là-dessus à mesure que les autres directions vieillissent.
Quelle est la façon la plus simple d'activer PHP sur nginx?

Je vais par les instructions sur le site Web de l'océan numérique, mais rien ne change, je ne peux toujours pas exécuter php.

Je suis assez perdu dans cela et toute aide serait appréciée.

Voici la sortie de 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.

Voici la sortie de 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

Et voici le fichier de configuration que j'utilise.

C'est à /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
}

J'ai déjà:

  • redémarré php-fpm.
  • redémarré nginx.
  • force rechargé le cache du navigateur avec ctrl-f5.
  • vérifié / var / log / error pour les erreurs mais il n'y a apparemment aucune erreur lorsque j'exécute le fichier php. C'est comme si nginx ne se rend pas compte qu'il est censé exécuter le php au lieu de simplement le traiter comme un fichier normal.

J'essaie d'exécuter un script contenant uniquement la fonction phpinfo(). Mais au lieu de me donner les informations php, le navigateur me propose simplement de télécharger le fichier. /:


montrez-nous le résultat de: sudo service nginx statusetphp -v
MehrdadEP

je l'ai ajouté à la question.
Hermann Ingjaldsson

1
Comment avez-vous configuré php? Publiez vos modifications de configuration sur php et nginx. redémarrez php-fpm et nginx, videz le cache de votre navigateur, regardez dans vos journaux nginx pour les erreurs, quel script php ????? Nous avons besoin de plus d'informations.
Panther

quel message d'erreur obtenez-vous?
George Udosen

@HermannIngjaldsson votre état nginx semble correct, quelle est l'erreur exactement?
MehrdadEP

Réponses:


2

Ouvrez terminalet exécutez la commande suivante:

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

cela ouvrira votre nginxfichier de configuration. éditez-le avec le texte suivant:

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

après avoir enregistré le fichier, exécutez la commande suivante pour redémarrer nginx:

sudo service nginx restart

J'ai placé ce texte dans le fichier de configuration, redémarré nginx et le problème persiste. /:
Hermann Ingjaldsson

vérifiez cet emplacement pour voir votre version du fichier et modifiez-la dans nginx conf:/var/run/php7-fpm.sock
MehrdadEP

avez-vous placé votre fichier de test php dans ce dossier? /usr/share/nginx/html
MehrdadEP

Il n'y a pas /var/run/php7-fpm.sock mais il y a /var/run/php/php7.0-fpm.sock. C'est une prise et je ne sais pas comment en voir le contenu. Je ne comprends pas vraiment ce que vous demandez réellement.
Hermann Ingjaldsson

Il y a un html de bienvenue nginx dans / usr / share / nginx / html oui.
Hermann Ingjaldsson
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.