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 s'il vous plaît commander un serveur VPS or serveur dédiéPar 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 ici que vous trouverez la page d'accueil que vous venez de voir. Créons un répertoire séparé. « /var/www/sites » pour les hôtes virtuels et un sous-dossier « /var/www/sites/site1 » avec la page d'index de votre site Web de test.
cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html
Dans le résultat le fichier « /var/www/sites/site1/index.html » devrait contenir une seule ligne de code HTML :
<H1>Welcome</H1>
3. Configuration du serveur Apache
Les fichiers de configuration des sites Web sont dans « /etc/apache2/sites-available/ » Catalogue. Créons un fichier de configuration pour un nouvel hôte virtuel en utilisant la configuration par défaut du fichier. « 000-default.conf » comme base.
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
Ouvrez le fichier « site1.conf » et changez le « DocumentRoot » attribut. Mettez le chemin de votre site Web comme valeur, donc dans notre cas, c'est « /var/www/sites/site1 »
À 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 le lien « http://[adresse_IP_du_serveur] » encore une fois et assurez-vous qu'au lieu de la page d'accueil par défaut, nous avons 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 un package supplémentaire « db-util », que nous devrons configurer 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éer un compte local "virtuel" sans autorisation de connexion mais avec accès au dossier personnel « /var/www/ »Ce compte sera utilisé par les utilisateurs ftp pour se connecter au serveur
useradd -d /var/www virtual
"Racine" sera le propriétaire du « /var/www » dossier par défaut. Pour permettre aux utilisateurs FTP de modifier le contenu des sites web, modifions le propriétaire du dossier « /var/www/sites/ » y compris les sous-dossiers de "virtuel".
chown -R virtual:root /var/www/sites
En conséquence, l’utilisateur "virtuel" pourra voir le contenu de « /var/www/ » et écris dans le « /var/www/sites/ » sous-dossier.
3. Configuration
La configuration principale est dans le fichier « /etc/vsftpd.conf », alors 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 fichier texte simple « utilisateurs.txt » dans le dossier personnel et enregistrez les identifiants d'accès (login et mot de passe) des utilisateurs virtuels sur une ligne sur deux. Par exemple, nous aurons besoin d'un utilisateur virtuel avec l'identifiant « ftp » et 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 de la « pam_userdb.so » la bibliothèque peut être différente mais vous pouvez la 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 PHP soit exécuté, le fichier de page Web doit avoir « .php » extension. 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", donc le fichier devrait ressembler à ceci :
<H1>Welcome</H1>
<?php
phpinfo();
?>
Enregistrez les modifications et vérifiez le résultat dans le navigateur.
Si vous voyez le résultat de la fonction « phpinfo() »L'interpréteur PHP fonctionne correctement. Passons maintenant à 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 la table de configuration PHP. Si vous la trouvez, « PDO_mysql », cela signifie alors que le pilote pour Mysql est correctement installé.
Ensuite, nous devrons effectuer la configuration de sécurité initiale de MariaDB et définir le mot de passe pour le "Racine" utilisateur, désactivez l'accès à distance et supprimez tous les comptes invités.
mysql_secure_installation
À la première étape, nous devons saisir le "racine" Saisissez le mot de passe de l'utilisateur pour accéder au SGBD ou appuyez sur Entrée s'il n'y a pas de mot de passe. Comme aucun mot de passe n'est défini pour "racine" utilisateur après l'installation, appuyez simplement sur "Entrer".
Veuillez noter que MariaDB possède déjà ses propres comptes, indépendants des comptes du système d'exploitation. Le seul utilisateur avec lequel nous traitons dans MariaDB est donc "racine".
Ensuite, le configurateur nous demandera de définir le mot de passe de l'utilisateur root. Tapez "Y" pour confirmer et saisir le nouveau mot de passe. Dans notre cas, c'est « Qwe123 »
Répondre "Y" à 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 officiel du projet «https://www.phpmyadmin.net/" et téléchargez la dernière archive.
Copiez l'archive sur le serveur dans le « /var/www/sites/ » dossier en utilisant n'importe quel client ftp.
Désarchivez le dossier et renommez-le en « phpMyAdmin ». N'oubliez pas d'installer le « décompresser » utilitaire. Vous pouvez supprimer l'archive après l'avoir désarchivé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 suivant « /var/www/sites/phpMyAdmin/tmp » pour les fichiers temporaires et autoriser l'accès à tous. Si vous ne le faites pas, phpMyAdmin signalera un refus d'accès au dossier temporaire.
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 défini, 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 est dans back sparks « … ON `phpmyadmin`.* À 'pma'@'localhost' IDENTIFIÉ PAR …”,
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 »
Entrez login « pma » et mot de passe « Qwe123 »
Allez dans Importercliquez "Choisir le dossier" et sélectionnez le fichier « sql/create_tables.sql » Dans le répertoire racine de phpMyAdmin. Ce dossier est censé se trouver sur votre PC. « phpMyAdmin » avec des fichiers. Désarchivez-le si nécessaire.
Cliquez à nouveau "Prochain" pour commencer à importer.
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 effectuez les modifications suivantes :
Définir une valeur aléatoire de 32 caractères pour l'attribut « $cfg['blowfish_secret'] ». Utilisez n'importe quel générateur de mot de passe pour cela.
Supprimer les commentaires de toutes les lignes du « Paramètres de stockage de la configuration de phpMyAdmin » section et définissez le login et le mot de passe du compte de service de MariaDB pour le « controluser » et « passe de contrôle » attributs en conséquence. Dans notre cas, c'est 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
Accédez au site officiel de WP «https://ru.wordpress.org/" et téléchargez l'archive sur votre PC local.
Téléchargez l'archive sur le serveur dans le « /var/www/sites/ » dossier et le désarchiver dans le « WordPress"Dossier.
Copiez le contenu du « /var/www/sites/wordpress/ » dossier racine du « /var/www/sites/site1/ » en ligne.
Puisque nous avons copié les fichiers via la console avec les autorisations root, changeons le propriétaire du « /var/www/sites/ » dossier comprenant le contenu de "virtuel". Ceci est nécessaire pour permettre l'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 »
Puis cliquer « Ajouter un compte utilisateur ».
Entrez le login et le mot de passe (wpservice / Qwe123) dans la fenêtre ouverte, cochez « Accorder tous les privilèges dans wordpress_db » et cliquez sur "Prochain"
Sur la page suivante, cliquez « Tout annuler » pour réinitialiser tous les privilèges au niveau de la base de données et cliquez sur "Prochain".
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 "wp-config.php" fichier et entrez 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 le navigateur « http://[adresse_IP_du_serveur]/wp-admin/install.php ».
Remplissez tous les champs et cliquez « Installer WordPress ». Définissez un nom d'utilisateur et un mot de passe aléatoires. Dans notre cas, c'est wpadmin et Qwe123 il se doit !
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 », entrez les détails 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