Pas d'interprétation des fichiers PHP

Bonjour,
N’arrivant pas à résoudre mon problème, je viens demander de l’aide à la communauté. J’installe un serveur LEMP sous Debian 10. J’ai donc installé Nginx via nginx.org , puis MariaDB et php-fpm.
A la racine de mon site, j’ai istallé WordPress et également créé un fichier phpinfo.php pour tester la connexion de Nginx avec PHP. Lorsque je saisis mondomaine/phpinfo.php , Firefox affiche bien la page PHP. Par contre, si je saisis http://adresse-site, Firefox ne m’affiche pas index.php mais me propose de l’enregistrer.
Le fichier conf de mon blog

## Serveur HTTP sur port 80 ##
server {
  listen 80; 
  listen [::]:80;
  server_name monblog.jc1007.fr;

  # Redirection HTTP vers HTTPS
  return 301 https://$server_name$request_uri;
}

## Serveur HTTPS sur port 443 ##
server {
  listen 443 ssl;
  server_name monblog.jc1007.fr;
  root /var/www/monblog;
  index info.php index.html index.htm;

  access_log /var/log/nginx/monblog_access.log;
  error_log /var/log/nginx/monblog_error.log;

  client_max_body_size 64M;
  
  location / {
#	try_files $uri $uri/ /index.php?$args;
	try_files $uri /index.php index.html;
  }

  location ~ \.php$ {
	try_files $uri =404;
	include /etc/nginx/fastcgi_params;
	fastcgi_read_timeout 3600s;
	fastcgi_buffer_size 128k;
	fastcgi_buffers 4 128k;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
	fastcgi_index index.php;
  }

  ##  Config SSL  ##

  ssl_certificate /etc/ssl/certs/ssl-bundle.crt;
  ssl_certificate_key /etc/ssl/private/new_server.key;
}

Mon fichier nginx.con (j’ai un processor à 4 coeurs)

user  www-data;
worker_processes  4;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

J’ai essayé de rajouter la directive text/php dans /etc/nginx/mime.types suivant un post trouvé sur le net, mais ça n’a rien changé.
Merci par avance pour votre aide

Bonjour,

Peux-tu nous expliquer cette ligne ?

Il vaudrait mieux la commenter ou y ajouter index.php

Exact. J’avais fait des tests et j’ai oublié de modifier la ligne. Je fais la modif de retour à la maison et je reteste.

Je viens de faire la correction. J’ai relancé nginx et fais le test. Toujours pareil.
J’ai lu sur le net que le fait d’avoir installé en premier apache pouvait provoquer ce genre d’anomalie. J’avais effectivement par le passé installé apache, mais je l’ai désinstallé par sudo apt --purge remove. Par acquis de conscience, j’ai consulté les répertoires et j’ai trouvé un /etc/apache2. Je l’ai supprimé, puis fais une recherche sur apache2 dans toute mon arborescence. Je n’ai plus rien trouvé. Par contre, le problème persiste.
Voici la copie d’écran
24-02-2021

Essaie d’abord avec cette configuration basique :

## Serveur HTTP sur port 80 ##
server {
  listen 80; 
  listen [::]:80;
  server_name monblog.jc1007.fr;

  # Redirection HTTP vers HTTPS
  return 301 https://$server_name$request_uri;
}

## Serveur HTTPS sur port 443 ##
server {
  listen 443 ssl;
  listen [::]:443 ssl;
  server_name monblog.jc1007.fr;
  root /var/www/monblog;

  access_log /var/log/nginx/monblog_access.log;
  error_log /var/log/nginx/monblog_error.log;
  
  location / {
        try_files $uri $uri/ /index.php?$args;
  }

  location ~ \.php$ {
	try_files $uri =404;
    include snippets/fastcgi-php.conf;
	fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

  ##  Config SSL  ##

  ssl_certificate /etc/ssl/certs/ssl-bundle.crt;
  ssl_certificate_key /etc/ssl/private/new_server.key;
}

Si tu arrives à voir ton phpinfo() c’est que nginx et PHP-FPM fonctionnent. Le problème vient donc d’ailleurs. Probablement de Wordpress, dont tu n’expliques pas la méthode d’installation.

D’abord merci pour tes réponses. Voici comment j’ai installé Wordpress.
Tout d’abord, j’ai installé de nombreuses extensions PHP: zip, xml, xmlrpc, gd, curl, intl, mbstring et soap. (conseil trouvé sur le net).
Puis dans le répertoire de mon site, j’ai fait:
curl -LO https://fr.wordpress.org/latest-fr_FR.tar.gz, puis
tar -xzvf latest-fr_FR.tar.gz
J’ai ensuite copié le fichier wp-config-sample.php en wp-config.php
Puis j’ai changé le propriétaire par chown -R www-data:www-data /var/www/monblog
J’ai ensuite modifié wp-config.php pour renseigner les paramètres nom de la base de donnée, utilisateur et mot de passe. Et c’est tout.
Et lorsque je tente de me connecter, j’obtiens la copie d’écran publiée dans un post précédent.

Si je suis bien tes commandes d’installation ton site n’est donc pas dans :
/var/www/monblog
mais dans :
/var/www/monblog/wordpress
Il faut donc adapter la directive root de nginx ou déplacer tes fichiers vars le niveau supérieur.

2 J'aime

Bonjour,
Non, en fait je me suis mal exprimé. Je viens de vérifier, j’ai bien tous les fichiers Wordpress dans /var/www/monblog. En fait j’avais sauté une étape, j’ai téléchargé et décompressé l’archive dans /var/www, puis renommé wordpress en monblog. Donc de ce côté, tout est correct.
Je vais tester la modif que tu m’as indiquée pour voir.
A +

La config que tu m’as donnée ne fonctionne pas. Je n’ai pas e fichier fasctcgi-php.conf dans toute mon arborescence.

Alors il y a un problème sur ton installation. Ce fichier est fourni par le paquet nginx-common :


Ou alors, tu n’utilises pas les paquets officiels Debian…

Exact; J’ai procédé à l’installation de nginx à partir du site nginx.org, information trouvée sur une vidéo de grafikart. Du coup, je n’ai pas de répertoires sites-available ni sites-enabled, mais un répertoire conf.d dans lequel on crée les fichiers conf des différents sites que l’on souhaite installer.
De plus, avec cette install, plus besoin de faire un lien symbolique dans sites-enabled.
Mais je ne pense pas que le problème vienne de là. Je pense plutôt chercher du côté de wordpress.
Ceci étant, je veux bien désinstaller nginx et le réinstaller via les paquets debian pour voir si ça règle mon problème.

Oui, encore une fois si le phpinfo() fonctionne, le problème se situe au niveau de WordPress.

Par contre tu as tout intérêt à utiliser les paquets Debian. Cela simplifie grandement l’administration et la maintenance du système, ne serait-ce que pour bénéficier des mises à jour de sécurité.

Je viens de supprimer nginx par apt --purge remove et de réinstaller via les paquets debian.
J’ai du recréer mon fichier monblog.conf dans sites-available et créer le lien symbolique dans sites-enabled.
Je vais analyser tous mes fichiers car quand on fait des modifs à chaud, on a quelquefois des surprises.
Je te tiens au courant

Bon, je mets le sujet résolu. En définitive, j’ai désinstallé Nginx et php.J’ai réinstallé Nginx en suivant la procédure décrite dans nginx.org.J’ai ensuite installé Php-fpm et tout fonctionne. Je n’ai plus mon problème d’interprétation des fichiers php de Wordpress.