Dans cet article, nous vous expliquerons étape par étape comment configurer un environnement web sur un serveur Linux. Avant toute chose, il est important de comprendre qu'un serveur web classique est composé de plusieurs composants interdépendants :
- Serveur HTTP
- interprète de langage de programmation
- système de gestion de base de données (SGBD)
Pour gérer votre site Web, vous devrez également mettre en place un système de gestion de contenu (CMS), une interface Web pour la gestion de la base de données et un accès FTP.
Considérons la configuration d'une configuration très répandue Apache-PHP-MySQL (MariaDB) sous Linux. Nous installerons également le serveur FTP vsftpd, phpMyAdmin (une interface web de gestion de bases de données) et un système de gestion de contenu WordPress.
Pour commencer, veuillez commander un serveur VPS ou un serveur dédié . À titre d'exemple, nous avons utilisé un serveur virtuel avec une adresse IP statique exécutant Ubuntu Server 18.04. Toutes les commandes ont été exécutées par l'utilisateur root.
Configuration du serveur HTTP Apache
1. Installation
apt install apache2
Une fois l'installation terminée, ouvrez un navigateur et vérifiez « http://[adresse_ip_du_serveur] ».
Si vous voyez une page d'accueil comme celle-ci sur la capture d'écran ci-dessus, cela signifie que votre serveur HTTP fonctionne.
2. Créer une page de test
Le répertoire racine par défaut du site web est « /var/www/html » . C'est là que se trouve la page d'accueil que vous venez de voir. Créons maintenant un répertoire distinct, « /var/www/sites », pour les hôtes virtuels, ainsi qu'un sous-répertoire « /var/www/sites/site1 » contenant la page d'accueil de votre site web de test.
cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html
Le fichier « /var/www/sites/site1/index.html » devrait donc contenir une seule ligne de code HTML :
<H1>Welcome</H1>
3. Configuration du serveur Apache
Les fichiers de configuration des sites web se trouvent dans le répertoire « /etc/apache2/sites-available/ » . Créons un fichier de configuration pour un nouvel hôte virtuel en prenant comme base la configuration par défaut du fichier « 000-default.conf » .
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
Ouvrez le fichier « site1.conf » et modifiez l’ attribut « DocumentRoot » . Indiquez le chemin d’accès à votre site web comme valeur, soit « /var/www/sites/site1 » dans notre cas.
À ce stade, nous n'avons pas besoin de configurer le fonctionnement simultané de plusieurs sites web ; nous pouvons donc désactiver le site par défaut et activer le nouveau. Rechargez la configuration du serveur pour appliquer les modifications.
a2dissite 000-default
a2ensite site1
systemctl reload apache2
Ouvrez à nouveau le lien « http://[adresse_ip_du_serveur] » et assurez-vous que, au lieu de la page d'accueil par défaut, vous voyez bien notre nouvelle page.
Nous avons terminé la configuration de notre serveur HTTP et nous pouvons passer à l’étape suivante.
Configuration du serveur FTP
1. Installation
Installons notre serveur FTP et le paquet supplémentaire « db-util » , nécessaire à la configuration des utilisateurs virtuels.
apt install vsftpd db-util
2. Créer un compte local
Le serveur vsftpd nous permet de configurer les autorisations d'accès de manière très flexible. Pour nos tâches, nous devons fournir aux utilisateurs FTP les éléments suivants :
- accès complet au contenu de « /var/www/sites/ »;
- désactiver tout ce qui est au-dessus « /var/www/ »;
- connexion avec un compte virtuel ;
Créez un compte local « virtuel » sans autorisation de connexion, mais avec accès au répertoire personnel « /var/www/ » . Ce compte sera utilisé par les utilisateurs FTP pour se connecter au serveur.
useradd -d /var/www virtual
Par défaut, le répertoire « /var/www » appartient à l'utilisateur « root » . Afin de permettre aux utilisateurs FTP de modifier le contenu des sites web, il convient de modifier le propriétaire du répertoire « /var/www/sites/ », y compris ses sous-répertoires « virtual ».
chown -R virtual:root /var/www/sites
Par conséquent, l'utilisateur «virtuel» pourra voir le contenu de «/var/www/» et écrire dans le sous-dossier «/var/www/sites/».
3. Configuration
La configuration principale se trouve dans le fichier « /etc/vsftpd.conf » , ouvrons-le et modifions-le comme suit :
#enable virtual users
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
#configure permission
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
anon_umask=0022
chroot_local_user=YES
#launch settings
listen=YES
pasv_min_port=30000
pasv_max_port=30999
4. Créer la base de données
Vous aurez besoin d’une base de données pour stocker les données des comptes virtuels.
Commençons par créer un simple fichier texte « users.txt » dans le répertoire personnel et enregistrons-y les informations d'accès (identifiant et mot de passe) des utilisateurs virtuels, une ligne sur deux. Par exemple, nous aurons besoin d'un utilisateur virtuel avec l'identifiant « ftp » et le mot de passe « Qwe123 » . Le fichier ressemblera alors à ceci :
ftp
Qwe123
Créons la base de données
db_load -T -t hash -f ~/users.txt /etc/vsftpd_login.db
Modifions le fichier PAM par défaut « /etc/pam.d/vsftp » comme suit :
auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
Veuillez noter que le chemin d'accès à la bibliothèque « pam_userdb.so » peut être différent, mais vous pouvez le modifier si nécessaire.
Rechargez le serveur vsftpd pour appliquer les modifications.
systemctl restart vsftpd
Nous avons terminé la configuration du serveur FTP.
Détails de connexion :
- ftp://[adresse_IP_du_serveur]
- connexion : ftp
- mot de passe : Qwe123
Configuration du serveur PHP
1. Installation de PHP
La dernière version stable de PHP est PHP 7.4.5, qui n'est pas incluse dans les dépôts Ubuntu officiels. Connectons-nous à un dépôt tiers et installons la dernière version de PHP.
apt update
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.4
2. Vérifier
Pour que le code PHP puisse s'exécuter, le fichier de la page web doit avoir l'extension « .php » . Renommons notre page de test :
cd /var/www/sites/site1/
mv index.html index.php
Ajoutez la ligne PHP suivante au fichier « /var/www/sites/site1/index.php » , afin que le fichier ressemble à ceci :
<H1>Welcome</H1>
<?php
phpinfo();
?>
Enregistrez les modifications et vérifiez le résultat dans le navigateur.
Si le résultat de la fonction « phpinfo() » s'affiche , l'interpréteur PHP fonctionne correctement. Passons à l'étape suivante.
Configuration de MySQL (MariaDB)
1. Installation
Installons MariaDB et un module PHP pour MySQL puis rechargeons Apache.
apt install mariadb-server php-mysql
systemctl restart apache2
Actualisez la page de test et accédez à la section PDO dans le tableau de configuration PHP. Si vous y trouvez la section « PDO_mysql » , cela signifie que le pilote MySQL est correctement installé.
Il faudra ensuite effectuer la configuration de sécurité initiale de MariaDB, définir le mot de passe de l' utilisateur « root » , désactiver l'accès à distance et supprimer tous les comptes invités.
mysql_secure_installation
Dans un premier temps, il faut saisir le mot de passe de l'utilisateur « root » pour accéder au SGBD ou appuyer sur Entrée si aucun mot de passe n'est défini. Comme aucun mot de passe n'est défini pour l' utilisateur « root » après l'installation, appuyez simplement sur Entrée.
Veuillez noter que MariaDB possède ses propres comptes, indépendants des comptes du système d'exploitation. Par conséquent, le seul utilisateur avec lequel nous interagissons dans MariaDB est « root ».
Ensuite, le configurateur vous demandera de définir le mot de passe de l'utilisateur root. Tapez « O » pour confirmer et saisissez le nouveau mot de passe. Dans notre cas, il s'agit de « Qwe123 ».
Répondez « O » à toutes les autres questions jusqu'à la toute fin.
La configuration est terminée !
Détails d'accès à MariaDB :
- Connexion : racine
- Mot de passe : Qwe123
Configuration de phpMyAdmin
1. Installation
Installons l'extension nécessaire pour PHP - mbstring.
apt install php-mbstring
Dans le référentiel officiel, il n'existe qu'une version obsolète de phpMyAdmin, installons donc la nouvelle manuellement.
Ouvrez le site web officiel du projet « https://www.phpmyadmin.net/ » et téléchargez la dernière archive.
Copiez l'archive sur le serveur dans le dossier « /var/www/sites/ » à l'aide d'un client FTP.
Décompressez le dossier et renommez-le « phpMyAdmin » . N'oubliez pas d'installer l' utilitaire « unzip » . Vous pourrez supprimer l'archive une fois décompressée.
apt install unzip
cd /var/www/sites/
unzip phpMyAdmin-5.0.2-all-languages.zip
mv phpMyAdmin-5.0.2-all-languages phpMyAdmin
rm phpMyAdmin-5.0.2-all-languages.zip
Créez le dossier « /var/www/sites/phpMyAdmin/tmp » pour les fichiers temporaires et autorisez l'accès à tous. Sinon, phpMyAdmin affichera un message d'erreur d'accès refusé à ce dossier.
cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp
2. Créez un alias
Étant donné que phpMyAdmin n'est pas un hôte virtuel distinct et qu'il est situé en dehors du répertoire racine, configurons l'alias.
Ouvrez le fichier « /etc/apache2/mods-available/alias.conf » et ajoutez cette ligne :
Alias /pma “/var/www/sites/phpMyAdmin"
dans cette section :
<IfModule alias_module>
</IfModule>
Rechargez Apache pour appliquer les modifications.
systemctl reload apache2
L'alias est configuré, nous pouvons donc accéder à phpMyAdmin ici « http://[adresse_ip_du_serveur]/pma ».
3. Prépare la base de données
Étant donné que nous avons restreint l'utilisation de l'utilisateur root lors de la configuration initiale de MariaDB, nous devrons créer un nouveau compte avec toutes les autorisations qui seront utilisées pour accéder à phpMyAdmin.
De plus, pour activer des fonctionnalités supplémentaires de phpMyAdmin, nous aurons besoin d'une base de données de service et d'un compte pour y accéder.
Créons les comptes
mariadb -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'pma'@'localhost' IDENTIFIED BY 'Qwe123' WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'pmaservice'@'localhost' IDENTIFIED BY 'Qwe123' WITH grant option;
quit
Veuillez noter que le nom de la base de données dans la deuxième requête se trouve dans les étincelles arrière « … ON `phpmyadmin` .* TO 'pma'@'localhost' IDENTIFIED BY … »,
En conséquence, deux comptes seront créés dans MariaDB :
- Identifiant : pma, mot de passe : Qwe123Accès complet, sera utilisé pour se connecter à phpMyAdmin
- Identifiant : pmaservice, mot de passe : Qwe123Le compte de service est requis pour que des fonctionnalités supplémentaires fonctionnent
À l’étape suivante, nous définirons ces détails dans le fichier de configuration « config.inc.php ».
Ensuite, nous devrons importer la base de données à partir du fichier « phpMyAdmin/sql/create_tables.sql ».
Importons-le avec l'aide de phpMyAdmin.
Ouvrez le lien « http://[adresse_ip_du_serveur]/pma »
Saisissez l'identifiant « pma » et le mot de passe « Qwe123 ».
Allez dans « Importer » , cliquez sur « Sélectionner un fichier » et choisissez le fichier « sql/create_tables.sql » situé à la racine de phpMyAdmin. Le dossier « phpMyAdmin » contenant les fichiers devrait se trouver sur votre ordinateur . Décompressez-le si nécessaire.
Cliquez sur « Suivant » pour commencer l'importation.
4. Configuration
Copions le fichier de configuration à partir du modèle
cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php
Ouvrons le fichier de configuration « /var/www/sites/phpMyAdmin/config.inc.php » et effectuons les modifications suivantes :
Attribuez une valeur aléatoire de 32 caractères à l'attribut « $cfg['blowfish_secret'] » . Utilisez un générateur de mots de passe.
Supprimez les commentaires de toutes les lignes de la section « Paramètres de stockage de la configuration phpMyAdmin » et renseignez l'identifiant et le mot de passe du compte de service MariaDB pour les attributs « controluser » et « controlpass » . Dans notre cas, il s'agit de pmaservice et Qwe123.
Enregistrer les modifications
Détails d'accès pour phpMyadmin :
- http://[server’s_ip_address]/pma/
- Connexion : pma
- Mot de passe : Qwe123
Comment installer et configurer WordPress sur un serveur Linux
1. Package WordPress et placement des fichiers
Rendez-vous sur le site officiel de WordPress « https://ru.wordpress.org/ » et téléchargez l'archive sur votre ordinateur.
Téléversez l'archive sur le serveur dans le dossier « /var/www/sites/ » et décompressez-la dans le dossier « wordpress ».
Copiez le contenu du dossier racine « /var/www/sites/wordpress/ » du site web « /var/www/sites/site1/ ».
Puisque nous avons copié les fichiers via la console avec les droits d'administrateur, modifions le propriétaire du dossier « /var/www/sites/ », y compris le contenu du répertoire « virtual » . Cette opération est nécessaire pour permettre un accès complet à la connexion FTP via le client.
cd /var/www/sites/
tar -xzvf wordpress-5.4-ru_RU.tar.gz
cp -R wordpress/* site1/
chown -R virtual:root /var/www/sites
2. Créer une base de données pour WordPress
Connectez-vous à phpMyAdmin et cliquez sur « Créer une base de données ». Spécifiez un nom de base de données arbitraire, dans notre cas « wordpress_db », puis cliquez sur le bouton « Créer ».
Sélectionnez la nouvelle base de données dans la section de gauche et cliquez sur « Privilèges ».
Cliquez ensuite sur « Ajouter un compte utilisateur ».
Dans la fenêtre qui s'ouvre, saisissez l'identifiant et le mot de passe ( wpservice / Qwe123 ), cochez « Accorder tous les privilèges dans la base de données wordpress » et cliquez sur « Suivant ».
Sur la page suivante, cliquez sur « Tout annuler » pour réinitialiser tous les privilèges au niveau de la base de données, puis cliquez sur « Suivant ».
3. Configuration de WordPress sur un serveur Linux
Accédez au répertoire racine de votre site Web et copiez le fichier de configuration du modèle
cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php
Ouvrez le fichier « wp-config.php » , saisissez les paramètres de connexion à la base de données que nous avons créés à l'étape précédente et enregistrez les modifications.
4. Installer le CMS WordPress
Ouvrez le lien suivant dans votre navigateur : « http://[adresse_ip_du_serveur]/wp-admin/install.php ».
Remplissez tous les champs et cliquez sur « Installer WordPress » . Choisissez un nom d'utilisateur et un mot de passe aléatoires. Dans notre exemple, il s'agit de wpadmin et Qwe123.
Ces informations seront utilisées pour accéder à WordPress.
Une fois l'installation terminée, ouvrez le lien « http://[adresse_ip_du_serveur]/wp-login.php » , saisissez les informations d'accès et connectez-vous à WordPress.
Vous devriez voir l’un des modèles WordPress sur la page principale.
La configuration est terminée.
Détails d'accès à WordPress :
- http://[server’s_ip_address]/wp-login.php
- Connexion : wpadmin
- Mot de passe : Qwe123