GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Nginx avec PHP + MySQL (LEMP) sur Debian 9

Ce tutoriel va vous montrer l'installation du serveur web Nginx sur Debian 9 (Stretch). Nginx (prononcez "engine x") est un serveur HTTP gratuit, open-source et hautes performances. Nginx est connu pour sa stabilité, son riche ensemble de fonctionnalités, sa configuration simple et sa faible consommation de ressources. Ce tutoriel montre l'installation de Nginx avec la prise en charge de PHP (via PHP-FPM) et MySQL et MariaDB. Cette configuration est souvent appelée LEMP =L inux + nginx (prononcé "e moteur x") + M ySQL + P HP) .

Remarque préliminaire

Dans ce tutoriel, j'utilise le nom d'hôte server1.example.com avec l'adresse IP 192.168.1.100. Ces paramètres peuvent différer pour vous, vous devez donc les remplacer le cas échéant. Vous devriez avoir un serveur Debian 9, j'utiliserai le serveur minimal Debian comme système de base pour ce tutoriel.

Mettre à jour le système Debian

Il est recommandé de mettre à jour les listes de packages et d'installer toutes les mises à jour en attente avant de commencer la configuration de Nginx. Exécutez les commandes suivantes pour installer les mises à jour en attente.

apt-get update
apt-get upgrade -y

J'utiliserai l'éditeur nano plus tard pour éditer les fichiers de configuration. Nano peut être installé avec cette commande :

apt-get -y install nano

Installer Nginx

Nginx est disponible sous forme de package pour Debian 9 que nous pouvons installer avec cette commande :

apt-get -y install nginx

Démarrez maintenant le serveur Web Nginx :

systemctl start nginx.service

Saisissez l'adresse IP ou le nom d'hôte de votre serveur Web dans un navigateur (par exemple, http://192.168.1.100). La page suivante s'affiche :

La racine de document nginx par défaut sur Debian Linux est /var/www/html.

Installer MySQL ou MariaDB

Dans cette étape, je vais vous montrer comment installer MySQL ou MariaDB. Vous êtes libre de choisir le système de base de données que vous préférez. Assurez-vous simplement d'installer un seul moteur de base de données et non MySQL et MariaDB ensemble.

Installer MySQL

Les packages MySQL pour Debian 9 peuvent être obtenus directement auprès d'Oracle. Oracle fournit un package de référentiel MySQL qui intègre le référentiel Oracle MySQL dans Debian afin que nous puissions installer et mettre à jour MySQL avec apt. Obtenez le package de référentiel MySQL apt ici au cas où le téléchargement de wget ci-dessous échouerait en raison de modifications de l'URL de téléchargement.

cd /tmp
wget https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb
dpkg -i mysql-apt-config_0.8.9-1_all.deb

Choisissez de configurer 'OK' dans la liste, puis concentrez le bouton OK dans le pied de page et appuyez sur Entrée. Cela sélectionnera la version stable actuelle, qui est MySQL 5.7.

Nous allons maintenant mettre à jour la liste des packages et installer le serveur MySQL et le package client.

apt-get update
apt-get -y install mysql-community-client mysql-community-server

Le programme d'installation de MySQL vous demandera de définir un mot de passe pour l'utilisateur root de MySQL. Choisissez un mot de passe long et sécurisé car ce mot de passe permet un accès administratif complet à la base de données MySQL.

Entrez à nouveau le mot de passe comme demandé.

Installer MariaDB

Pour installer MariaDB, nous exécutons :

apt-get -y install mariadb-server mariadb-client

Contrairement au programme d'installation de MySQL, le programme d'installation de MariaDB ne définira pas de mot de passe root lors de l'installation. Pour sécuriser l'installation de MariaDB, supprimer l'utilisateur anonyme et désactiver la base de données de test, exécutez cette commande :

mysql_secure_installation

Répondez aux questions comme suit :

Change the root password? [Y/n] <-- y
New password: <-- Enter a new MySQL root password
Re-enter new password: <-- Repeat the MySQL root password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Remove test database and access to it? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

Installer PHP

Nous pouvons faire fonctionner PHP dans nginx via PHP-FPM (PHP FastCGI Process Manager). Il s'agit d'une implémentation alternative de PHP FastCGI avec quelques fonctionnalités supplémentaires utiles pour les sites de toute taille, en particulier les sites les plus fréquentés. Installez PHP 7 comme suit :

apt-get -y install php7.0-fpm

PHP-FPM est un processus démon (avec le fichier d'unité systemd php7.0-fpm.service) qui exécute un serveur FastCGI sur le socket /var/run/php/php7.0-fpm.sock.

Configuration de Nginx

La configuration de Nginx se trouve dans /etc/nginx/nginx.conf que nous ouvrons maintenant :

nano /etc/nginx/nginx.conf

La configuration est facile à comprendre (vous pouvez en savoir plus ici : https://www.nginx.com/resources/wiki/start/topics/examples/full/ et ici :https://www.nginx.com/ ressources/wiki/)

Définissez d'abord le keepalive_timeout sur une valeur raisonnable comme 2 secondes :

[...]
keepalive_timeout 2;
[...]

Les hôtes virtuels sont définis dans les conteneurs du serveur {}. Le vhost par défaut est défini dans le fichier /etc/nginx/sites-available/default - modifions-le comme suit :

nano /etc/nginx/sites-available/default
[...]
server {
listen 80 default_server;
listen [::]:80 default_server;

# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;

root /var/www/html;

# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

server_name _;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;

# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
} [...]

nom du serveur _; en fait un vhost fourre-tout par défaut (bien sûr, vous pouvez également spécifier un nom d'hôte ici comme www.example.com).

J'ai ajouté index.php à la ligne d'index. racine /var/www/html; signifie que la racine du document est le répertoire /var/www/html.

La partie importante pour PHP est la strophe location ~ \.php$ {}. Décommentez-le comme indiqué ci-dessus pour l'activer. Deux lignes fastcgi_pass sont incluses, décommentez uniquement celle du fichier php-7.0-fpm.sock.

Enregistrez maintenant le fichier et rechargez Nginx :

systemctl reload nginx.service

Ouvrez ensuite /etc/php/7.0/fpm/php.ini...

nano /etc/php/7.0/fpm/php.ini

... et définissez cgi.fix_pathinfo=0 :

[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=0
[...]

... alors vous voudrez peut-être augmenter la limite POST et la limite de téléchargement de fichiers :

post_max_size = 25M
upload_max_filesize = 20M

Lorsque vous envisagez de télécharger des fichiers volumineux par PHP, vous devez augmenter les valeurs à 500 M ou plus. M signifie ici mégaoctets.

Enfin, vous souhaiterez peut-être définir le fuseau horaire sur votre fuseau horaire local. Dans mon cas, le fuseau horaire est :

date.timezone = 'Europe/Berlin'

Vous pouvez trouver la liste des fuseaux horaires pris en charge ici.

Rechargez PHP-FPM pour appliquer les modifications :

systemctl reload php7.0-fpm.service

Créez maintenant le fichier PHP suivant dans la racine du document /var/www/html/ :

nano /var/www/html/info.php
<?php
phpinfo();

Maintenant, nous appelons ce fichier dans un navigateur (par exemple http://192.168.1.100/info.php) :

Comme vous le voyez, PHP 7 fonctionne, et il fonctionne via FPM/FastCGI, comme indiqué dans la ligne API du serveur. Si vous faites défiler plus bas, vous verrez tous les modules déjà activés en PHP. MySQL n'y figure pas, ce qui signifie que nous n'avons pas encore de support MariaDB / MySQL en PHP.

Obtenir le support MySQL / MariaDB en PHP

Pour obtenir le support MySQL en PHP, nous pouvons installer le package php7.0-mysqlnd. C'est une bonne idée d'installer d'autres modules PHP, car vous pourriez en avoir besoin pour vos applications. Vous pouvez rechercher les modules PHP disponibles comme ceci :

apt-cache search php7.0

Choisissez ceux dont vous avez besoin et installez-les comme ceci :

apt-get -y install php7.0-mysqlnd php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl

Rechargez maintenant PHP-FPM :

systemctl reload php7.0-fpm.service

Rechargez maintenant http://192.168.1.100/info.php dans votre navigateur et faites défiler à nouveau jusqu'à la section des modules. Vous devriez maintenant y trouver plein de nouveaux modules, dont les modules MySQLi et MySQLnd :

Faire en sorte que PHP-FPM utilise une connexion TCP (facultatif)

Par défaut, PHP-FPM écoute sur le socket /var/run/php/php7.0-fpm.sock et c'est le moyen recommandé et le plus rapide de connecter PHP à Nginx. Cependant, il peut y avoir des configurations dans lesquelles vous souhaitez laisser Nginx se connecter à PHP via le réseau. Il est possible de faire en sorte que PHP-FPM utilise une connexion TCP. Pour cela, ouvrez /etc/php/7.0/fpm/pool.d/www.conf...

nano /etc/php/7.0/fpm/pool.d/www.conf

... et faites en sorte que la ligne d'écoute ressemble à ceci :

[...]
;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000
[...]

Cela fera écouter PHP-FPM sur le port 9000 sur l'IP 127.0.0.1 (localhost). Assurez-vous d'utiliser un port qui n'est pas utilisé sur votre système.

Rechargez ensuite PHP-FPM :

systemctl reload php7.0-fpm.service

Passez ensuite par votre configuration Nginx et tous vos vhosts et modifiez la ligne fastcgi_pass unix:/var/run/php7.0-fpm.sock; à fastcgi_pass 127.0.0.1:9000;, par ex. comme ceci :

nano /etc/nginx/sites-available/default
[...]
location ~ \.php$ {
include snippets/fastcgi-php.conf;

# With php-fpm (or other unix sockets):
# fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# With php-cgi (or other tcp sockets):
fastcgi_pass 127.0.0.1:9000;
} [...]

Enfin, rechargez Nginx :

systemctl reload nginx.service

Activer SSL et HTTP/2 dans Nginx

La plupart des sites Web utilisent aujourd'hui SSL (TLS) pour fournir un accès sécurisé. Dans ce chapitre, je vais vous montrer comment créer un certificat SSL et comment activer SSL dans Nginx. Vous pouvez soit utiliser un certificat SSL auto-signé, soit demander un certificat SSL officiellement signé auprès de Let's encrypt. Les certificats SSL Let#s encrypt sont disponibles gratuitement, mais vous devez déjà avoir un nom de domaine valide qui pointe vers votre serveur dans le DNS. Si vous n'avez pas encore de nom de domaine ou si votre serveur est sur un réseau local et non accessible de l'extérieur, alors utilisez un certificat SSL auto-signé. Suivez soit les étapes pour un certificat SSL auto-signé, soit le certificat Let's encrypt ci-dessous, mais pas les deux.

Créer un certificat SSL auto-signé

Créez le fichier de clé SSL avec la commande OpenSSL :

openssl genrsa -out /etc/ssl/private/nginx.key 4096

Créez ensuite le certificat SSL auto-signé :

openssl req -new -x509 -key /etc/ssl/private/nginx.key -out /etc/ssl/certs/nginx.pem -days 3650

La commande demandera des détails comme le pays, l'état, la ville, le nom de l'entreprise et le nom de domaine.

Activez le certificat SSL auto-signé dans Nginx. Pour ce faire, éditez à nouveau le fichier nginx.conf :

nano /etc/nginx/sites-available/default

et faites en sorte que la partie serveur ressemble à ceci :

server {
listen 80 default_server;
listen [::]:80 default_server;

# SSL configuration

listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;

ssl on;
ssl_certificate_key /etc/ssl/private/nginx.key;
ssl_certificate /etc/ssl/certs/nginx.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;

# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;

root /var/www/html;

# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

server_name _;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;

# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}

Redémarrez Nginx pour appliquer les modifications.

systemctl restart nginx.service

Ouvrez maintenant l'URL https de votre serveur dans un navigateur, par ex. https://192.169.1.100/. Vous recevrez un avertissement de sécurité que vous devrez accepter pour continuer. Ensuite, vous verrez la page de démarrage de Nginx, l'icône d'avertissement dans la barre d'URL du navigateur indique que nous utilisons un certificat SSL auto-signé.

Utiliser un certificat SSL Let's Encrypt gratuit

Dans ce chapitre, je décrirai comment sécuriser votre serveur Nginx en utilisant un certificat SSL Let's encrypt gratuit. Une condition préalable est que vous possédiez un nom de domaine qui pointe vers l'adresse IP du serveur sur lequel vous installez Nginx en ce moment.

Installez Certbot, le client Let's encrypt utilisé pour obtenir un certificat SSL gratuit.

apt-get -y install certbot python-certbot-nginx

Modifiez le fichier de configuration du site Web /etc/nginx/sites-available/default et définissez votre ou vos noms de domaine dans la ligne server_name :

nano /etc/nginx/sites-available/default

La ligne devrait ressembler à ceci après modification :

server_name example.com;

Remplacez example.com par votre propre nom de domaine. Si vous avez plusieurs noms de domaine ou sous-domaines, ajoutez-les en les séparant par des espaces.

server_name example.com www.example.com otherdomain.tld;

Maintenant, nous demandons un certificat SSL à let's encrypt en utilisant le plugin nginx de Certbot.

certbot --nginx -d example.com

Plusieurs domaines peuvent être ajoutés en répétant l'option -d. Exemple :

certbot certonly --webroot -d example.com -d www.example.com

Certbot vous demandera une adresse e-mail à laquelle les notifications de renouvellement seront envoyées. Saisissez une adresse e-mail valide ici :

Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected]

Acceptez les termes de la licence en entrant 'A'.

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

Voici la boîte de dialogue supplémentaire qui demande le certificat SSL. J'ai ajouté mes réponses en rouge.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for example.com
http-01 challenge for www.example.com
Select the webroot for example.com:
-------------------------------------------------------------------------------
1: Enter a new webroot
-------------------------------------------------------------------------------
Press 1 [enter] to confirm the selection (press 'c' to cancel): 1
Input the webroot for example.com: (Enter 'c' to cancel):/var/www/html
Select the webroot for www.example.com:
-------------------------------------------------------------------------------
1: Enter a new webroot
2: /var/www/html
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
expire on 2018-04-23. To obtain a new or tweaked version of this
certificate in the future, simply run certbot again. To
non-interactively renew *all* of your certificates, run "certbot
renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Il existe une autre méthode en utilisant l'option '--nginx' dans Certbot, mais cette méthode ne semble pas fonctionner pour le moment en raison du problème TLS-SNI-01 dans Let's encrypt. La méthode webroot, comme indiqué ci-dessus, fonctionne bien cependant.

Le certificat SSL nouvellement généré se trouve dans un sous-dossier du dossier /etc/letsencrypt/live/. Le chemin exact est indiqué dans la sortie Certbot.

Nous allons maintenant ajouter ce certificat SSL dans notre fichier de site Web Nginx. Modifiez le fichier par défaut Nginx :

nano /etc/nginx/sites-available/default

et modifiez la section SSL comme ceci :

[...]
server {
listen 80 default_server;
listen [::]:80 default_server;

# SSL configuration

listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;

ssl on;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;

# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;

root /var/www/html;

# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

server_name _;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;

# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
} [...]

Remplacez 'example.com' dans le chemin du certificat SSL par votre propre nom de domaine. Redémarrez Nginx pour appliquer les modifications.

systemctl restart nginx.service

Image de machine virtuelle

Ce tutoriel est disponible en tant que machine virtuelle prête à l'emploi au format OVA/OVF pour les abonnés Howtoforge. Le format VM est compatible avec VMWare et Virtualbox et probablement d'autres outils qui peuvent importer ce format. Vous pouvez trouver le lien de téléchargement dans le menu de droite en haut. Cliquez sur le nom du fichier pour lancer le téléchargement.

Les identifiants de connexion de la VM sont :

Connexion SSH

Nom d'utilisateur :administrateur
Mot de passe :howtoforge

Exécutez 'su' pour devenir l'utilisateur root, le mot de passe root est également 'howtoforge'.

L'image de la machine virtuelle utilise MySQL comme serveur de base de données.

Connexion MySQL

Nom d'utilisateur :root
Mot de passe :howtoforge

Veuillez changer les mots de passe après le premier démarrage.

La VM est configurée pour l'IP statique 192.168.1.100, l'IP peut être changée dans le fichier /etc/network/interfaces.

  • nginx :https://nginx.net/
  • PHP :http://www.php.net/
  • MySQL : https://www.mysql.com/
  • MariaDB : https://mariadb.org/
  • Debian :https://www.debian.org/

Debian
  1. Comment installer Phorum avec Nginx sur Debian 9

  2. Comment installer et configurer PHP et Nginx (LEMP) sur Debian 11

  3. Comment installer Magento avec Nginx sur Debian 10

  4. Comment installer WonderCMS avec Nginx sur Debian 11

  5. Comment installer la pile LEMP Nginx, MySQL, PHP sur Debian 11

Installer Nginx avec PHP et MySQL (LEMP) plus SSL sur Debian 10

Comment installer Nginx avec PHP-FPM sur Debian 10

Comment installer Nginx, MySQL et PHP (LEMP) sur Ubuntu 20.04

Comment installer phpBB avec LEMP (Nginx, MariaDB et PHP) sur Debian 11 Bullseye

Comment installer phpMyAdmin avec Nginx sur Debian 11

Comment installer la pile Nginx, MySQL, PHP (LEMP) sur un serveur cloud Debian 8.3