Configurer nginx avec php

Tags: #<Tag:0x00007f50a2b20b48> #<Tag:0x00007f50a2b20a80>

Bonjour,
J’ai installé debian récemment.
J’ai installé nginx. Ça fonctionne, j’ai la page de bienvenue à http://127.0.0.1/ .
Mais je pense qu’il me manque php et le reste.
Je me suis aidé de ce site : installation-configuration-nginx-debian-ubuntu-raspberry/
Par contre, je n 'arrive pas à afficher en local mes pages.php .
(ça marche sous linux Mint nginx)
J’ai loupé une étape je pense, notamment concernant php, qui n’est pas installé je pense.
À ce stade, je voudrais éviter de faire n’importe quoi.

Pouvez-vous m’aider à savoir ce qui me manque svp ?

Merci d’avance. :slight_smile:

Bonjour,
le fait d’utiliser Sury, c’est lié au raspberry PI? car sinon c’est inutile, les packages PHP sont dans les repository.

Il faut en tout cas les installer si tu veux que ça marche

Bonjour,
merci pour ta réponse.
alors justement, je ne crois pas que php soit installé, et je veux bien de l’aide pour la commande, notamment à cause des différentes versions et laquelle je dois installer… ?

J’ai déjà eu un souci de par le passé avec Apache à ce propos, alors je ne veux pas faire n’importe quoi…

si ça peut aider:

Merci, mais j’ai laissé Apache au profit de Nginx.

tout à fait désolé
mais dans l’install tu as les paquets php que j’installe en même temps :
sudo apt-get install php-gmp php-imap php-intl php gnupg2 php php-bz2 php-curl php-cli php-common php-gd php-json php-mbstring php-mysql php-readline php-sqlite3 php-xml php-zip dh-php php-http php-memcache php-pear php-php-gettext php-phpseclib php-raphf php-text-wiki pkg-php-tools php-fpdf

j’ai essayé… et ça m’a installé des paquets Apache2 !!!

STP Peux-tu me donner la commande pour effacer du disk tout ce qui a pu être installé stp ?

Voici une copie (comment fait-on pour afficher du code au fait ?) :

sudo apt-get install php-gmp php-imap php-intl php gnupg2 php php-bz2 php-curl php-cli php-common php-gd php-json php-mbstring php-mysql php-readline php-sqlite3 php-xml php-zip dh-php php-http php-memcache php-pear php-php-gettext php-phpseclib php-raphf php-text-wiki pkg-php-tools php-fpdf
Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances… Fait
Lecture des informations d’état… Fait
php-common est déjà la version la plus récente (2:95+0~20240927.54+debian12~1.gbpe0084c).
php-common passé en « installé manuellement ».
Les paquets supplémentaires suivants seront installés :
apache2 apache2-data apache2-utils autoconf automake autopoint autotools-dev
debhelper dh-autoreconf dh-strip-nondeterminism dwz libapache2-mod-php8.3
libarchive-cpio-perl libdebhelper-perl libexporter-tiny-perl
libfile-stripnondeterminism-perl liblist-moreutils-perl
liblist-moreutils-xs-perl libltdl-dev libmail-sendmail-perl
libsub-override-perl libsys-hostname-long-perl libtool m4 php8.3 php8.3-bz2
php8.3-cli php8.3-common php8.3-curl php8.3-gd php8.3-gmp php8.3-http
php8.3-imap php8.3-intl php8.3-mbstring php8.3-memcache php8.3-mysql
php8.3-opcache php8.3-raphf php8.3-readline php8.3-sqlite3 php8.3-xml
php8.3-zip po-debconf xml2
Paquets suggérés :
apache2-doc apache2-suexec-pristine | apache2-suexec-custom autoconf-archive
gnu-standards autoconf-doc dh-make libtool-doc gfortran | fortran95-compiler
gcj-jdk m4-doc ttf2pt1 memcached php-libsodium php-mcrypt libmail-box-perl
Les NOUVEAUX paquets suivants seront installés :
apache2 apache2-data apache2-utils autoconf automake autopoint autotools-dev
debhelper dh-autoreconf dh-php dh-strip-nondeterminism dwz gnupg2
libapache2-mod-php8.3 libarchive-cpio-perl libdebhelper-perl
libexporter-tiny-perl libfile-stripnondeterminism-perl
liblist-moreutils-perl liblist-moreutils-xs-perl libltdl-dev
libmail-sendmail-perl libsub-override-perl libsys-hostname-long-perl libtool
m4 php php-bz2 php-cli php-curl php-fpdf php-gd php-gmp php-http php-imap
php-intl php-json php-mbstring php-memcache php-mysql php-pear
php-php-gettext php-phpseclib php-raphf php-readline php-sqlite3
php-text-wiki php-xml php-zip php8.3 php8.3-bz2 php8.3-cli php8.3-common
php8.3-curl php8.3-gd php8.3-gmp php8.3-http php8.3-imap php8.3-intl
php8.3-mbstring php8.3-memcache php8.3-mysql php8.3-opcache php8.3-raphf
php8.3-readline php8.3-sqlite3 php8.3-xml php8.3-zip pkg-php-tools
po-debconf xml2
0 mis à jour, 71 nouvellement installés, 0 à enlever et 3 non mis à jour.
Il est nécessaire de prendre 11,9 Mo dans les archives.
Après cette opération, 45,0 Mo d’espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] n
Annulation.

Je voudrais une installation avec Nginx…

c’est facile, tu prends la ligne avec apt install et tu remplace install avec purge et ça enlèvera ce que tu as installé.
ensuite pour enlever les dépendances qui vont avec tu fait un apt --purge autoremove.
Et après tu recommence mais en mode moins bourrin :slight_smile:
tu installes uniquement php-fpm.
Après tu n’installes que les modules dont tu as besoin.
C’est toi qui sait quels modules il faut installer en fonction de ce que tu vas utiliser car php est modulaire.
Si tu as un doute sur les paquets réellement installés, tu utilises apt -s install pour tester. Si ça te convient tu enlèves le -s ensuite.

Et par pitié utilisez des tuto qui correspondent au besoin réel.
Un tuto ubuntu apache ne sera pas adapté à un besoin Debian nginx php si vous ne comprenez pas la différence entre les deux.

Merci Zargos, je vais faire ça, … demain ! :slight_smile:
Mais justement, si tu as un tuto gninx / Debian adapté, je suis preneur. J’ai pas franchement trouvé, un truc qui me donne les étapes pour un débutant sur debian comme moi… (et je ne suis pas très fort au terminal toute façon)

Celui-ci n’est pas trop mal bien que sans PHP: How To Install Nginx on Debian 11 | DigitalOcean
Celui-ci avec PHP bien que sur Debian 10, mais facile à adapter: https://www.it-connect.fr/debian-comment-installer-nginx-en-tant-que-serveur-web/

Pour info, sury fournit des dépôts pour toutes les versions maintenues de php, pour, entre autres, toutes les versions de Debian maintenues. Le mainteneur de sury est également mainteneur Debian des paquets php. L’intérêt est de pouvoir installer des versions de php autres que la version « liée » à chaque release Debian (par exemple si besoin d’un PHP 8.1).
Sur le fonds je suis bien d’accord que dans l’idéal il vaut mieux faire avec la version php officiellement maintenue par ta distribution, ou sinon servir l’appli php via un conteneur adapté, mais parfois, ça reste plus simple d’ajouter un dépôt sury.

Oui, c’est parce que le paquet php dépend du paquet php8.2, qui lui-même dépend de soit libapache2-mod-php8.2 (qui lui-même dépend d’apache2), soit php8.2-fpm soit php8.2-cgi.
Je trouve que c’est un peu « cavalier » de la part du paquet php, parce qu’on pourrait aussi bien avoir envie de faire des choses en PHP, sans pour autant avoir besoin d’un serveur web.

Pour formater en code sur une ligne, tu ajoutes un backquote (AltGr+7) avant et après la chaîne de caractères: `chaine de caractères`
Et pour formater un paragraphe, il suffit d’ajouter une ligne avec 3 backquotes avant et après le paragraphe:
```

ceci 
est
un 
paragraphe

```

Bonjour, merci à vous. :slight_smile:

@Sputnik93 Ah, en markdown en fait. Ok, merci.

C’est celui que j’ai utilisé. Ça marche pour avoir la page nginx mais pas après, pour afficher mon index.php, là ça coince.
Certes, faut php, aussi.
Et c’est pour ça que j’aurais besoin d’un tuto pour installer php. quant à savoir les modules dont j’ai besoin, ben j’en sais rien. Sous Linux Mint, j’ai installé nginx, mais me souviens pas avoir eu à choisir ces modules. Je veux bien un package du genre classique, car je ne sais ps vraiment lesquels choisir…
… Et surtout, que faire, s’il faut lier ou déclarer qlq chose par rapport à nginx ?

Un tuto, pour ça, je ne trouve pas…

Pour installer php sur Debian ?

apt install php8.2-fpm

Après dans Nginx il te faudra t’assurer de renseigner correctement le socket unix de php de base si on ne modifie rien c’est :

fastcgi_pass unix:/var/run/php8.2-fpm.sock;

Maintenant le plus pratique serait tout de même que tu nous disent ce que tu cherches à apprendre … car d’après moi il te faudrait aussi apprendre à mettre ne place des vhosts et des pools php-fpm de manière à isoler correctement les différentes ressources que tu pourrais vouloir mettre en place.

Ce dit en passant hormis le passage par le dépôts de sury (qui est possible aussi sous Debian) le Tutoriel linker en premier dans ton fil s’adapte parfaitement à Debian, mais encore faut-il savoir lire quelques peu entre les lignes pour ne pas copier/coller les lignes sans véritablement comprendre ce que l’on fait.

Nous non plus du coup à moins de nous préciser ce que tu cherches à faire je te dirais osef, tu verras bien lorsque tu aura besoin d’autre chose.

Merci.
Ben j’ai fait ce soir ce que zargos proposait, à savoir : apt install php-fpm et ça a installé le 8.3 !
Donc ça pose déjà la question de savoir laquelle est la version compatible ?

Oui, pour la suite, il me faudra un tuto. Ces histoires de socket etc, je n’en sais rien, il faut donc quelque chose de sûr, pas un truc « peut-être », car je ne serai pas en mesure de gérer les erreurs.
Bref, un tuto comme sous Linux Mint pour installer nginx et php, clé en main. :slight_smile:

Il y a bien ce [HOW TO] Nginx, MariaBD, php, multi-sites dont Wordpress, plusieurs versions de php - Forum-Francophone-LinuxMint.fr, où il est écrit qu’il a été testé sous Debian, mais l’article date de 2021.
Et quand j’ai essayé de l’appliquer, j’ai eu un souci avec un fichier lors de l’installation : php-opcache
donc du coup, ça coince…

Je crois d’ailleurs que le php installé n’est pas validé… dans var/www/ il y a un info.php avec phpinfo() mais ça n’affiche rien, ou alors, je ne fais pas la procédure comme il faudrait…

Je peux peut-être reprendre ce tuto « How To » et en enlevant le fichier php-opcache tout simplement, de l’installation ? Ça affectera la suite ou pas ?
sudo apt install nginx php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl mariadb-server
et donc sans php-opcache :
sudo apt install nginx php-cli php-fpm php-mysql php-json php-mbstring php-xml php-gd php-curl mariadb-server
Car je me souviens que c’était les droits à gérer qui avaient été compliqués la fois sous Mint… et donc sous Debian, va falloir aussi que je trouve comme faire (avec votre aide, si…).

Bonne soirée / nuit. :slight_smile:

Pas terrible ce tutoriel …

Très étonnant du coup la version ne viens pas de Debian :

https://packages.debian.org/search?keywords=php-fpm

Avant d’aller plus loin donne nous les informations nécessaires à te guider au mieux :

  • Version de Debian
  • Ce que tu cherches à faire exactement
  • Ce que tu as fait sur la machine
  • le contenu de tes différents fichiers de sources avec cette commande
grep -vr "^#" /etc/apt/sources.list{,.d}

En très gros pour faire du multisite avec LINUX + NGINX + MariaDB + PHP le mot clé à chercher sur internet est LEMP …

Tu installes Nginx, tu lui configure un/des vhost(s), tu configures tes pool php-fpm en conséquence (tu link le socket php dans ton vhost Nginx), et tu configure/sécurise ta base de donnée.
Pour les modules php tout dépend des besoins, il est inutile d’installer tous les modules, juste ceux qui sont nécessaires selon ce que tu veux mettre en ligne.

Bonjour :slight_smile:

Mhmm… si les spécialistes ne sont pas d’accord entre eux… :slight_smile:

Mon système, double boot Debian Linux Mint.
Debian GNU/Linux 12 bookworm (x86-64)

Ce que j’ai fait sur la machine, en gros, ça apparaît dans ce fil.
J’ai nginx actif.

Ce dont j’ai besoin : j’ai un dossier dans var/www/mon-site à afficher sur Firefox.
C’est un site basique, pas d’inscription, pas de lien à une base de données.
Du php, des include par exemple, des embed etc, un peu javascript…
Je veux l’afficher chez moi avant de basculer les fichiers sur le serveur et donc sur le Net. J’ai tout créé à la main.

Ahhhhh… j’ai peut-être une idée ? Sur Mint, je tape au terminal une commande avec sudo et c’est bon. Là, sur debian, faut que je fasse d’abord su - et mdp, pour ensuite pouvoir écrire sur le disque (et je ne sais pas pourquoi).
Du coup, question droits pour afficher ou accéder au répertoire sus-cité, ça change peut-être quelque chose, non ?

Pour : grep -vr "^#" /etc/apt/sources.list{,.d}

Voici le code :

/etc/apt/sources.list:
/etc/apt/sources.list:deb http://deb.debian.org/debian/ bookworm main non-free-firmware
/etc/apt/sources.list:deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware
/etc/apt/sources.list:
/etc/apt/sources.list:deb http://security.debian.org/debian-security bookworm-security main non-free-firmware
/etc/apt/sources.list:deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware
/etc/apt/sources.list:
/etc/apt/sources.list:deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware
/etc/apt/sources.list:deb-src http://deb.debian.org/debian/ bookworm-updates main non-free-firmware
/etc/apt/sources.list:
/etc/apt/sources.list:deb https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/repos/debs/ vscodium main
/etc/apt/sources.list.d/php.list:deb https://packages.sury.org/php/ bookworm main
/etc/apt/sources.list.d/signal-xenial.list:deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main
/etc/apt/sources.list.d/vscodium.list:deb [ signed-by=/usr/share/keyrings/vscodium-archive-keyring.gpg ] https://download.vscodium.com/debs vscodium main

À propos, ce « vscodium », tu pourrais m’aider à le supprimer totalement et proprement ? quelqu’un m’en a parlé, mais …
j’avais pris des infos d’install ici : VSCodium - Open Source Binaries of VSCode

Merci à tou-te-s pour votre aide.

Pour le coup ouvre un nouveau fil pour cette demande ça évitera de tout mélanger :wink:

Non, comme déjà dit pour être tranquille si tu déploie à terme plus d’un site, il te faut créer un vhost (profite-en pour l’appeler de façon explicite ;)) pour ce faire il y a pléthore de documentation pour créer un vhost.
Idem pour la partie php-fpm, créer un pool, renseigne un socket d’écoute avec la configuration adéquat.
Une fois les deux fais il te faudra revenir sur la configuration de ton vhost Nginx et y renseigner le socket php afin que ce dernier puisse être interprété.

Si un simple fichier html te confirme que ton vhost soit fonctionnel (bien rempli le dossier racine de celui-ci qui sera idéalement dans /var/www/ton_site, il te suffira de gérer le bloc avec la ligne que je t’ai déjà renseigné plus haut (avec le bon socket d’écoute du pool php configuré précédemment ^^ ).
A ajouter dans le bloc server

   location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass unix:/run/php/php8.3-fpm.sock;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include fastcgi_params;
   }

Encore une fois ce n’est qu’un exemple il te faudra apprendre à adapter à tes besoins, pour info je comprends pourquoi le dépôts de sury mais je le recommande pas (c’est dernier temps le mainteneur est passé en mode effort less pour le maintient et tu va vite te retrouver avec une version déprécié sans mise à jour par rapport à la durée de vie de ta Debian.

Désolé, mais je ne comprends quasiment rien à ce que tu m’écris…

Question des droits, sous Mint, sur un forum, il m’avait été donné une commande pour arranger la chose, c’est pour ça que j’y pense.
Bon… pas grave, je découvre debian, on peut pas tout faire d’un coup.
Je n’ai pas l’intention d’apprendre plus à propos de configurer gninx sous debian, je veux bien appliquer des recettes, ça ne devrait pas être plus compliqué. Et j’en fais déjà assez comme ça, pour en être arrivé à publier un site tout seul ! :slight_smile:
Pas de tuto, donc pas de gninx sous debian. Question réglée. :slight_smile:

Merci en tout cas pour vos aides.