GNU/Linux >> Tutoriels Linux >  >> Debian

Installer Wordpress sur LAMP dans Debian 9

Ce tutoriel vous montrera comment installer et configurer la dernière version de WordPress sur une pile LAMP dans Debian 9 - Stretch. Wordpress est sans aucun doute l'un des systèmes de gestion de contenu ou CMS open source les plus populaires utilisés de nos jours pour la publication sur Internet, qui alimente plus de 60 millions de sites Web dans le monde, qu'il s'agisse de petits sites de blogs ou de grandes marques renommées. Basé sur le moteur PHP et MySQL, Wordpress est souvent associé à la collection LAMP, soit installée sur des serveurs dédiés ou des serveurs privés virtuels, soit sur des hébergeurs mutualisés. L'acronyme LAMP décrit une collection de logiciels, alias ensemble de logiciels, qui se compose généralement de Linux Noyau Open Source, quelle que soit la distribution choisie, Apache Serveur HTTP, qui est l'un des serveurs Web open source les plus populaires sur Internet en raison de sa stabilité, de sa flexibilité et de ses performances, PHP langage de programmation interprété côté serveur et MariaDB système de gestion de base de données relationnelle (RDBMS), qui est l'un des logiciels de base de données les plus populaires, dérivé et développé simultanément par la communauté open source à partir de MySQL d'origine.

CONFIGURATION :

  • Une nouvelle installation du système d'exploitation Debian 9 sur un serveur privé virtuel ou une machine virtuelle ou directement sur une machine bare-metal dédiée.
  • Accès à distance SSH dans le cas d'un VPS ou d'un serveur distant ou d'un accès direct à la console
  • Au moins une adresse IP statique pour une interface réseau configurée sur le serveur
  • Dans le cas où la page Web serait accessible au public sur Internet, vous auriez besoin d'un nom de domaine public enregistré avec les enregistrements DNS appropriés configurés. Au cours de ce tutoriel, nous utiliserons le fichier linuxbox.ml comme exemple de domaine et une adresse IP statique depuis l'espace privé, en NAT, derrière le routeur principal. Le domaine sera accessible depuis Internet en transférant les ports Apache 80 et 443 du côté du routeur vers le réseau local de la machine virtuelle auto-hébergée interne.

Première partie – Installer le pack logiciel LAMP

  1. La première chose que vous voulez faire avant de commencer à installer tous les composants LAMP est de vous connecter au serveur Debian 9 et d'effectuer une procédure à jour pour tous les composants du système, tels que les mises à niveau du noyau, les mises à jour de paquets ou les correctifs de sécurité, en en émettant les commandes suivantes avec les privilèges root.
apt-get update
apt-get upgrade
apt-get dist-upgrade
  1. À l'étape suivante, vous devez configurer le nom de votre machine en remplaçant la variable hostname par votre propre nom descriptif en exécutant la commande ci-dessous. Sachez que vous devrez peut-être redémarrer le système afin d'appliquer le nouveau nom d'hôte en conséquence.
hostnamectl set-hostname hostname.yourdomain.com
  1. Vous devez également installer les utilitaires suivants qui vous seront utiles plus tard pour divers problèmes de dépannage.
apt install net-tools sudo wget curl bash-completion
  1. Une fois le nom d'hôte de la machine appliqué, reconnectez-vous avec les privilèges root et installez le serveur HTTP Apache, qui est, par défaut, pré-compilé dans un paquet binaire et fourni par les référentiels Debian 9.
apt install apache2
  1. Ensuite, installez la dernière version de l'interpréteur de langage PHP et tous les modules requis pour le serveur Web Apache afin de déployer Wordpress CMS en exécutant la commande suivante.
apt install libapache-mod-php7.0 php7.0 php7.0-gd php7.0-xml php7.0-curl php7.0-mbstring php7.0-mcrypt php7.0-xmlrpc
  1. Le dernier composant manquant maintenant pour que la pile LAMP soit complète est le serveur de base de données MariaDB. Exécutez la commande suivante pour installer le serveur MariaDB avec le module PHP requis pour accéder à la base de données à partir du serveur HTTP Apache.
apt install php7.0-mysql mariadb-server mariadb-client

Une fois la base de données MariaDB installée, démarrez le démon et sécurisez la base de données en cours d'exécution mysql_secure_installation script comme illustré dans l'extrait ci-dessous. Répondez principalement par oui sur toutes les questions, le script vous invite. Assurez-vous également de choisir un mot de passe fort pour le compte root. Sachez que le compte racine MySQL n'est pas identique au compte racine Linux. Le premier est utilisé uniquement pour gérer la base de données MariaDB et le second est le compte superutilisateur dans chaque système Linux. Ces comptes ne se chevauchent jamais dans un système.

systemctl start mariadb
mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

 

  1. Nous n'avons pas encore fini de sécuriser la base de données MariaDB. Par défaut, vous pouvez vous connecter à MariaDB à partir de localhost avec le compte racine de la base de données sans qu'un mot de passe vous soit demandé. Pour éviter d'éventuels problèmes de sécurité, connectez-vous à la base de données avec l'utilisateur root et lancez les commandes suivantes.
mysql –u root
MariaDB> use mysql;
MariaDB> update user set plugin='' where User='root';
MariaDB> flush privileges;
MariaDB> quit

Maintenant, testez la base de données en essayant de vous connecter avec root compte sans le mot de passe. L'accès à la base de données MariaDB devrait vous être refusé.

  1. À l'étape suivante, nous allons activer et configurer TLS et réécrire les modules pour le serveur Web Apache, qui sont désactivés par défaut. Exécutez les commandes ci-dessous pour activer les deux modules.
a2enmod rewrite ssl
a2ensite default-ssl.conf
  1. Ensuite, ouvrez les fichiers de configuration Apache pour les deux sites activés et ajoutez le bloc suivant sous DocumentRoot directive comme illustré dans la capture d'écran suivante.
nano /etc/apache2/sites-enabled/000-default.conf
nano /etc/apache2/sites-enabled/default-ssl.conf

Sur les deux fichiers de configuration édités un par un, ajoutez le bloc de code suivant :

    <Directory /var/www/html>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride All
       Require all granted
    </Directory>

  1. Dans apache default-ssl.conf Fichier de configuration TLS, vous pouvez également ajouter le contenu ci-dessous, s'il n'existe pas, afin de forger la sécurité du protocole Apache SSL. Ces lignes de code devraient corriger les vulnérabilités SSL courantes.
SSLProtocol all -SSLv2 -SSLv3
# Add SSL Cipher in one long line
SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder     on
SSLOptions +StrictRequire
 
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff

Si les lignes illustrées dans l'extrait ci-dessus existent déjà dans le fichier de configuration Apache SSL, assurez-vous de les modifier pour qu'elles ressemblent à celles décrites ci-dessus. Afin d'appliquer ces paramètres, activez les en-têtes Apache module et redémarrez le service en exécutant les commandes suivantes :

a2enmod headers
systemctl restart apache2.service

Pour un site Web de production, il devrait être obligatoire d'activer le module Apache TLS car WordPress CMS génère principalement du contenu dynamique via la passerelle PHP et gère également le processus d'authentification pour ses utilisateurs internes. L'utilisation de la technologie TLS garantit que les informations transférées sont cryptées aux deux extrémités et que la connexion est sécurisée. Un tiers ou un intermédiaire peut intercepter le trafic mais ne peut pas déchiffrer le contenu, car les informations ne sont pas fournies en texte brut.

  1. Après avoir apporté toutes les modifications ci-dessus, testez la configuration d'Apache afin de détecter les erreurs de syntaxe potentielles et si tout est correct, redémarrez les démons LAMP afin de refléter toutes les modifications apportées jusqu'à présent et activez les services à l'échelle du système en émettant le commandes suivantes.
apachectl –t
systemctl restart apache2.service mariadb.service
systemctl enable apache2.service mariadb.service

  1. Enfin, vérifiez si les services Apache et MariaDB ont ouvert des ports en état d'écoute en émettant netstat commande et filtrer la sortie en utilisant egrep À présent, le serveur Web Apache devrait avoir les ports 80 et 443 (correspondant aux protocoles http et https) généralement exposés et MariaDB ne devrait se lier qu'à localhost :3306 prise. Utilisez le -n indicateur contre netstat commande pour supprimer l'affichage des noms de service.
netstat -tlp| egrep 'http|mysql'

  1. Pour vous assurer que votre serveur Web est accessible depuis Internet via les protocoles HTTP et HTTPS, ouvrez un navigateur et accédez à votre nom de domaine. En naviguant via le protocole HTTPS, une erreur de certificat s'affichera dans le navigateur. En effet, le fichier de configuration TLS par défaut d'Apache est configuré pour utiliser des certificats auto-signés. Vous devez accepter l'erreur TLS et continuer à naviguer vers la page Web par défaut, comme illustré ci-dessous.

http://www.votredomaine.com 

https://www.votredomaine.com 

Si vous ne pouvez pas visiter la page Web par défaut de votre domaine à partir d'Internet, vous devez d'abord vérifier si certaines règles de pare-feu du système bloquent les requêtes ou vous assurer que les ports appropriés du routeur sont transférés vers votre réseau local interne au cas où le serveur se trouve derrière un NAT. -ed réseau. Vous pouvez également vérifier les enregistrements DNS dans le panneau de votre bureau d'enregistrement de domaine et vous assurer qu'ils pointent vers votre adresse IP WAN et si les enregistrements ont fini de se propager sur Internet.

  1. Afin de tester si PHP fonctionne comme prévu côté serveur, créez un PHP php dans /var/www/html/ chemin système, qui est le chemin racine du document Web par défaut du serveur Web Apache, en exécutant la commande ci-dessous et accédez à l'URI suivant à partir du navigateur pour obtenir le résultat :http://www.votredomaine.com/info.php
echo '<?php phpinfo(); ?>' > /var/www/html/info.php

DEUXIÈME PARTIE – Installer Wordpress

  1. Maintenant que la pile LAMP est entièrement configurée, l'installation de Wordpress CMS est relativement simple. Tout d'abord, connectez-vous à la base de données MariaDB et créez une base de données d'installation pour Wordpress et un utilisateur avec le mot de passe approprié pour installer et gérer Wordpress CMS, en exécutant les commandes ci-dessous. N'hésitez pas à remplacer le nom de la base de données et les informations d'identification de la base de données pour répondre à vos propres besoins.
mysql –u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress-user'@'localhost' IDENTIFIED BY 'wordpress-pass';
FLUSH PRIVILEGES;

  1. Ensuite, téléchargez le dernier tarball Wordpress depuis le site officiel en utilisant wget utilitaire et extrayez l'archive compressée avec tar utilitaire. Copiez les fichiers d'installation dans le chemin racine du document du serveur Web Apache en exécutant les commandes ci-dessous. Assurez-vous également de supprimer la valeur par défaut index.html page Web.
wget http://wordpress.org/latest.tar.gz
tar xfz latest.tar.gz
cp -rf wordpress/* /var/www/html/
rm /var/www/html/index.html

  1. Modifiez les autorisations du chemin de la racine Web Apache comme décrit ci-dessous afin d'accorder au serveur Web www-data groupez les autorisations d'écriture complètes sur le répertoire d'installation. Cette configuration permettra au serveur Web Apache de créer ou de modifier des fichiers et des répertoires sous ce chemin système spécifique. Les plus importants seraient les téléchargements répertoire et .htaccess fichier, qui peut être utilisé pour contrôler et étendre les fonctionnalités d'Apache.
chmod –R 775 /var/www/html/
chgrp –R www-data /var/www/html/
ls –al /var/www/html

  1. Maintenant que tout est en place, commençons à installer Wordpress. Le processus d'installation sera effectué à partir du navigateur. Ouvrez un navigateur et visitez votre domaine via le protocole HTTPS. Sur le premier écran de l'installation, appuyez sur Allons-y bouton pour démarrer l'installation.

  1. Dans l'écran d'installation suivant, ajoutez le nom de la base de données, les identifiants d'accès à la base de données et l'hôte de la base de données que vous avez créé précédemment pour l'installation de Wordpress, puis cliquez sur Envoyer bouton pour continuer. La configuration de la base de données sera enregistrée dans /var/www/html/wp-config.php Vous pouvez modifier manuellement le fichier ultérieurement à des fins spécifiques à Wordpress.

  1. Sur l'écran suivant, cliquez sur Exécuter l'installation et remplissez le titre de votre site Web, les informations d'identification de l'administrateur du site Web et l'adresse e-mail. Un mot de passe fort doit être généré automatiquement par les scripts d'installation. Vous pouvez choisir d'enregistrer ce mot de passe ou de fournir votre propre mot de passe fort. Lorsque vous avez terminé, appuyez sur Installer Wordpress bouton pour terminer le processus d'installation.

  1. Enfin, une fois l'installation terminée, connectez-vous au tableau de bord Wordpress avec les informations d'identification créées lors du processus d'installation et commencez à gérer votre propre site Web.

Toutes nos félicitations! Vous avez installé avec succès la dernière version de Wordpress CMS sur le pack logiciel LAMP dans Debian 9, nom de code Stretch.


Debian
  1. Comment installer un serveur LAMP sur Debian 9 Stretch Linux

  2. Comment installer le serveur Redis sur Debian 11

  3. Comment installer MySQL 8.0 / 5.7 sur Debian 11 / Debian 10

  4. Installer WordPress avec une base de données distante sur Debian

  5. Installer Cockpit sur Debian 9

Comment installer le serveur LAMP sur Debian 11

Comment installer Todoman sur le serveur Debian 11

Comment installer la pile LAMP sur Debian 9 Stretch

Comment installer FastPanel sur Debian 11

Comment installer WordPress sur un serveur cloud Debian 8.2

Comment installer WordPress avec LAMP sur Debian 10