PHP est un langage de script à usage général orienté vers le développement Web. C'est l'un des langages de programmation populaires pour le Web. Les outils populaires tels que WordPress sont codés en php. Les grandes entreprises comme Facebook utilisent également fortement php.
Nginx est un serveur Web qui peut également être utilisé comme proxy inverse, équilibreur de charge, proxy de messagerie et cache HTTP. Il a commencé comme un serveur Web conçu pour des performances et une stabilité maximales. Nginx a gagné en popularité depuis sa sortie en raison de son utilisation légère des ressources et de sa capacité à évoluer facilement sur un matériel minimal. Nginx excelle dans la diffusion rapide de contenu statique et est conçu pour transmettre les demandes dynamiques à d'autres logiciels mieux adaptés à ces fins.
Contenu associé
- Comment installer la pile Apache PHP 7.4 (LAMP) sur Rocky Linux/Centos 8
Table des matières
- S'assurer que le serveur est à jour
- Installer PHP sur Debian 11
- Installer Nginx sur Debian 11
- Installer php-fpm dans Debian 11
- Création d'un site simple et configuration de l'hôte virtuel
- Tester la configuration
1. S'assurer que le serveur est à jour
Avant de continuer, il est toujours recommandé de s'assurer que le serveur est à jour. Utilisez ces commandes pour y parvenir
sudo apt update
sudo apt upgrade -y
2. Installer PHP sur Debian 11
PHP est disponible dans les dépôts Debian 11 par défaut. La dernière version de PHP au moment de la rédaction de ce blog est PHP 7.4.
Installez PHP et certains packages courants à l'aide de cette commande :
sudo apt install -y \
php \
php-common \
php-cli
Vérifiez la version installée de PHP
$ apt-cache policy php
php:
Installed: 2:7.4+76
Candidate: 2:7.4+76
Version table:
*** 2:7.4+76 500
500 http://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages
100 /var/lib/dpkg/status
Vérifiez la version php installée à l'aide de cette commande :
$ php -v
PHP 7.4.25 (cli) (built: Oct 23 2021 21:53:50) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.25, Copyright (c), by Zend Technologies
3. Installer Nginx sur Debian 11
Nous utiliserons Nginx pour servir le contenu PHP. Nginx, en tant que serveur Web stable à hautes performances et avec une très faible consommation de ressources, est le complément parfait pour PHP-FPM. Nginx a une architecture asynchrone beaucoup plus évolutive, basée sur les événements.
Nginx est disponible dans les dépôts Debian 11 par défaut. Installez-le à l'aide de cette commande :
sudo apt install -y nginx
Confirmez le nginx installé
$ apt-cache policy nginx
nginx:
Installed: 1.18.0-6.1
Candidate: 1.18.0-6.1
Version table:
*** 1.18.0-6.1 500
500 http://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages
100 /var/lib/dpkg/status
4. Installer PHP FPM dans Debian 11
PHP-FPM (acronyme de FastCGI Process Manager) est une implémentation PHP (Hypertext Processor) FastCGI alternative extrêmement populaire. PHP-FPM est l'implémentation alternative la plus populaire de PHP FastCGI. Il possède des fonctionnalités supplémentaires qui sont vraiment utiles pour les sites Web à fort trafic. Lorsque vous utilisez Nginx avec PHP-FPM, les performances au niveau de la consommation de mémoire sont améliorées.
PHP s'exécute en tant que service séparé lors de l'utilisation de PHP-FPM. En utilisant cette version de PHP comme interpréteur de langage, les requêtes sont traitées via un socket TCP/IP; de sorte que le serveur Web Nginx ne gère que les requêtes HTTP et que PHP-FPM interprète le code PHP. Le fait d'avoir deux services distincts est essentiel pour gagner en efficacité.
Installez php-fpm à l'aide de cette commande :
sudo apt install -y php-fpm
Le service sera démarré par défaut. Vérifiez son état à l'aide de cette commande :
$ sudo systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2021-12-11 12:39:08 UTC; 58s ago
Docs: man:php-fpm7.4(8)
Process: 1597314 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (code=exited, status=0/SUCCESS)
Main PID: 1597311 (php-fpm7.4)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 4626)
Memory: 9.2M
CPU: 48ms
CGroup: /system.slice/php7.4-fpm.service
├─1597311 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
├─1597312 php-fpm: pool www
└─1597313 php-fpm: pool www
Dec 11 12:39:08 ip-10-2-40-122 systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Dec 11 12:39:08 ip-10-2-40-122 systemd[1]: Started The PHP 7.4 FastCGI Process Manager.
5. Création d'un site simple et configuration de l'hôte virtuel
Nginx vous permet de desservir plusieurs sites à l'aide d'hôtes virtuels. Le concept d'hôtes virtuels autorise plusieurs sites Web sur un système ou un serveur Web. Les serveurs sont différenciés par leur nom d'hôte. Les visiteurs du site Web sont acheminés par nom d'hôte ou adresse IP vers l'hôte virtuel approprié. L'hébergement virtuel permet aux entreprises partageant un serveur d'avoir chacune leur propre nom de domaine.
Dans cet exemple, nous utiliserons le domaine site1.citizix.com pour l'hôte virtuel mais serons libres d'utiliser le domaine de votre choix. Veuillez noter que le DNS du domaine à utiliser doit déjà être configuré pour pointer vers l'adresse IP du serveur. Confirmez cela avec :
dig -t A site1.citizix.com
Créer un répertoire et ajouter un exemple de contenu
La page par défaut de nginx est configurée comme un hôte virtuel par défaut servant du contenu à partir de /var/www/html. C'est une bonne pratique de créer le répertoire de votre site dans le répertoire /var/www car c'est une bonne pratique de servir à partir de là.
Créons un répertoire pour notre site avec la commande suivante :
sudo mkdir /var/www/site1.citizix.com
Créons un simple index.php
page à servir à partir de notre site. Vous aurez besoin de vim pour que cela fonctionne, sinon utilisez cette commande :
sudo apt install -y vim
Modifier le fichier :
sudo vim /var/www/site1.citizix.com/index.php
Ajouter du contenu au fichier :
<?php phpinfo(); ?>
Création d'un hôte virtuel (blocs de serveur)
Un bloc de serveur Nginx peut être utilisé pour encapsuler les détails de configuration et héberger plusieurs domaines sur un même serveur. Nous allons créer un hébergeur virtuel pour notre site (site1.citizix.com).
Les configurations des hôtes virtuels Nginx sont stockées dans le répertoire /etc/nginx/conf.d/
. Créons une configuration pour notre site :
sudo vim /etc/nginx/conf.d/site1.citizix.com.conf
Ajoutez le contenu suivant
server {
listen 80;
server_tokens off;
client_max_body_size 100M;
server_name site1.citizix.com;
access_log /var/log/nginx/site1.citizix.com.log;
error_log /var/log/nginx/site1.citizix.com.log;
root /var/www/site1.citizix.com;
index index.php;
if ($host !~* ^(site1.citizix.com)$) {
return 444;
}
location / {
proxy_read_timeout 600;
proxy_connect_timeout 600;
proxy_send_timeout 600;
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Redémarrons le service nginx et php-fpm pour que la configuration s'applique
sudo systemctl restart php7.4-fpm
sudo systemctl restart nginx
6. Test de la configuration
Pour tester la configuration, ouvrez votre navigateur et chargez le domaine que vous avez configuré. Dans mon cas, c'est http://site1.citizix.com. Vous devriez voir la page d'informations php.
Si vous n'avez pas encore configuré vos paramètres DNS ou si vous ne voulez tout simplement pas que le site soit encore en ligne, vous pouvez modifier le fichier hosts de votre ordinateur. Pour ce faire, utilisez la commande suivante dans la CLI de votre ordinateur local
sudo vim /etc/hosts
Ensuite, ajoutez l'adresse IP de votre serveur actuel suivie du nom de domaine que vous configurez, par exemple :
# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com
Vous devriez maintenant pouvoir enregistrer le fichier et y accéder depuis un navigateur Web.
Conclusion
Hôtes virtuels Nginx ou server
Les blocs sont un excellent moyen d'ajouter des sites Web supplémentaires au même serveur d'origine. Le nombre de possibilités de configuration pour un site donné est presque infini lorsque vous commencez à modifier le fichier de configuration de l'hôte virtuel pour l'adapter aux besoins spécifiques de votre site.
Dans ce guide, nous avons appris à configurer un hôte virtuel pour diffuser du contenu PHP dans Debian 11.