WordPress est, sans conteste, la plateforme de blogging la plus utilisée sur la planète. Mais cet outil peut être utilisé pour bien plus que le simple blogging. Avec le bon ajout d’extensions, vous pouvez transformer WordPress en un site de commerce électronique, un site multimédia, et bien plus encore.

Si vous disposez de votre propre serveur, vous pouvez héberger une installation WordPress, sans avoir à faire appel à un tiers. Et c’est exactement ce que nous allons faire ici. Dans ce tutoriel, vous apprendrez à installer les composants nécessaires ainsi que la plateforme WordPress sur le serveur Ubuntu 18.04. Cela ne suppose qu’une chose : que vous ayez un serveur Ubuntu opérationnel.

Code numérique binaire avec réseau.

La première chose à faire est de mettre en route notre serveur LAMP (Linux Apache MySQL PHP). Comme Ubuntu est déjà là, il suffit d’installer les composants secondaires. Comme nous utilisons Ubuntu, cela peut être fait avec une seule commande. Cependant, avant de faire cela, nous voulons nous assurer que notre serveur est à jour. Ouvrez une fenêtre de terminal et exécutez les commandes suivantes :

sudo apt-get update
sudo apt-get upgrade

Si le noyau est mis à jour au cours du processus, un redémarrage sera nécessaire. Si c’est le cas, le serveur devra être redémarré (pour que les changements prennent effet). Cela signifie que vous devez exécuter la mise à jour/mise à niveau à un moment où un redémarrage est possible.

Une fois la mise à jour/mise à niveau effectuée, il est temps d’installer les serveurs web/base de données et PHP. Ceci peut être fait avec une seule commande :

sudo apt install apache2 php mariadb-server

Pendant l’installation, vous serez invité à créer/vérifier un mot de passe pour l’utilisateur administrateur de MySQL. Lorsque le processus est terminé, vous pouvez pointer un navigateur vers http://SERVER_IP (où SERVER_IP est l’adresse IP de votre serveur Ubuntu) pour voir l’écran de bienvenue d’Apache.

Ensuite, nous devons installer quelques extensions PHP nécessaires. Ceci peut être fait avec la commande :

sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip.

Activation de SSL

Avant de passer à la configuration d’Apache et à l’installation de WordPress, nous allons préparer notre serveur à utiliser le protocole SSL (Secure Sockets Layer). Il s’agit de divers protocoles Web qui fonctionnent ensemble pour envelopper le trafic HTTP normal dans une enveloppe protégée et cryptée. Ainsi, HTTP devient HTTPS. Comme je ne configure qu’un serveur de test, je vais créer un certificat SSL auto-signé pour une adresse IP. Pour ce faire, suivez les étapes suivantes.

Générer le certificat SSL avec la commande suivante :

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

Lorsque vous exécutez cette commande, il vous sera demandé de répondre aux questions suivantes :

Nom du pays (code de 2 lettres) [AU] :
Nom de l’État ou de la province (nom complet) [Some-State] :
Nom de la localité (par exemple, la ville) [] :
Nom de l’organisation (par exemple, la société) [].
Nom de l’unité organisationnelle (par exemple, la section) [] :
Nom commun (par exemple, FQDN du serveur ou VOTRE nom) [] :
Adresse électronique [] :

Il est important, pour le certificat auto-signé, que vous entriez l’adresse IP de votre serveur pour l’entrée Common Name.

Ensuite, nous configurons Apache pour utiliser SSL. Créez un nouveau fichier avec la commande :

sudo nano /etc/apache2/conf-available/ssl-params.conf

Dans ce nouveau fichier, collez ce qui suit :

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On

Désactiver le préchargement du HSTS pour le moment. Vous pouvez utiliser la ligne d’en-tête commentée qui inclut

la directive « preload » si vous en comprenez les implications.

Header always set Strict-Transport-Security « max-age=63072000 ; includeSubDomains ; preload ».

En-tête toujours défini X-Frame-Options DENY
En-tête toujours défini X-Content-Type-Options nosniff

Nécessite Apache >= 2.4

SSLCompression off
SSLUseStapling on
SSLStaplingCache « shmcb:logs/stapling-cache(150000) »

Nécessite Apache >= 2.4.11

SSLSessionTickets désactivé

Nous allons maintenant créer un nouveau fichier default-ssl.conf. Avant de faire cela, sauvegardez l’original avec la commande :

sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak

Créez le nouveau fichier avec la commande :

sudo nano /etc/apache2/sites-available/default-ssl.conf

Dans ce nouveau fichier, collez ce qui suit :

ServerAdmin VOTRE_EMAIL
Nom du serveur SERVER_IP
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combinée
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

SSLOptions +StdEnvVars

SSLOptions +StdEnvVars

Sauvegardez et fermez ce fichier.

Nous allons maintenant configurer une redirection afin que tout le trafic HTTP soit automatiquement redirigé vers HTTPS. Pour ce faire, créez un nouveau fichier avec la commande :

sudo nano /etc/apache2/sites-available/000-default.conf

Dans ce fichier, ajoutez la ligne suivante sous l’entrée DocumentRoot :

Rediriger « / » « https://SERVER_IP/ »

Où SERVER_IP est l’adresse IP de votre serveur.

Sauvegardez et fermez ce fichier.

Ensuite nous devons activer quelques modules et hôtes avec les commandes :

sudo a2enmod ssl
sudo a2enmod headers
sudo a2ensite default-ssl
sudo a2enconf ssl-params

Enfin, redémarrez Apache avec la commande :

sudo systemctl restart apache2

Vous devriez maintenant pouvoir faire pointer votre navigateur sur https://SERVER_IP (où SERVER_IP est l’adresse IP de votre serveur) et voir l’écran de bienvenue d’Apache.
La base de données

Avant de commencer à configurer votre base de données, vous devriez utiliser la fonction intégrée de MariaDB/MySQL pour sécuriser votre nouvelle installation. Exécutez la commande, et acceptez les valeurs par défaut pour sécuriser votre base de données. Lorsque cela vous est demandé, définissez un mot de passe sécurisé pour l’utilisateur root de la base de données.

sudo mysql_secure_installation

Une fois cette opération terminée, vous êtes prêt à commencer à travailler avec MariaDB en utilisant la commande « mysql ».

WordPress dépend d’une base de données pour fonctionner. Pour la créer, vous devez d’abord vous connecter à l’invite MySQL avec la commande :

sudo mysql -u root -p

Le mot de passe de l’utilisateur admin MySQL que vous avez créé lors de l’installation du serveur LAMP vous sera demandé. À l’invite MySQL, créez la base de données avec la commande :

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ;

Ensuite, créez un nouvel utilisateur et accordez-lui la permission d’accéder à la base de données avec la commande :

GRANT ALL ON wordpress.* TO ‘wordpressuser’@’localhost’ IDENTIFIED BY ‘PASSWORD’ ;

Où PASSWORD est un mot de passe unique et fort.

Videz les privilèges de la base de données et quittez avec les commandes :

FLUSH PRIVILEGES ;
EXIT

Autoriser .htaccess et activer le module de réécriture

Nous devons activer le module .htaccess pour WordPress. Pour ce faire, créez un nouveau fichier de configuration Apache avec la commande :

sudo nano /etc/apache2/sites-available/wordpress.conf

Dans ce fichier, collez ce qui suit :

AllowOverride All

Activez le module de réécriture avec la commande :

sudo a2enmod rewrite

Redémarrez Apache avec la commande :

sudo systemctl restart apache2

Télécharger, décompresser et préparer WordPress

Nous allons télécharger le fichier officiel de WordPress avec les commandes suivantes :

cd /tmp
curl -O https://wordpress.org/latest.tar.gz

Décompressez WordPress avec la commande :

tar xvzf latest.tar.gz

Créez un fichier .htaccess factice avec la commande :

touch /tmp/wordpress/.htaccess

Copiez le fichier de configuration type vers le fichier de configuration nécessaire avec la commande :

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

Créez un répertoire de mise à niveau (pour éviter les problèmes de permissions) avec la commande :

mkdir /tmp/wordpress/wp-content/upgrade

Copiez le contenu du répertoire wordpress dans la racine du document avec la commande :

sudo cp -a /tmp/wordpress/. /var/www/html/wordpress

Enfin, ajustez la propriété et les permissions du répertoire wordpress nouvellement déplacé avec les commandes :

sudo chown -R www-data:www-data /var/www/wordpress
sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \ ;
sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \ ;

Configuration de WordPress

Cette section est un peu compliquée. Le fichier wp-config.php doit être modifié, mais avant cela, vous devez télécharger des clés secrètes uniques à ajouter au fichier de configuration. Pour obtenir ces clés, visitez le générateur en ligne des développeurs de WordPress.

Vous obtiendrez un certain nombre de longues chaînes de caractères, chacune associée à une option de configuration spécifique. Chaque chaîne est associée aux valeurs suivantes dans le fichier de configuration :

AUTH_KEY
SECURE_AUTH_KEY
LOGGED_IN_KEY
NONCE_KEY
AUTH_SALT
SECURE_AUTH_SALT
LOGGED_IN_SALT
NONCE_SALT

Copiez ces valeurs dans un autre fichier. Ensuite, ouvrez le fichier de configuration de WordPress avec la commande :

sudo nano /var/www/wordpress/wp-config.php

Localisez les valeurs ci-dessus et collez la clé secrète pour chacune d’entre elles. Après cela, faites défiler vers le haut et modifiez les valeurs pour :

DB_NAME
DB_USER
DB_PASSWORD

Les valeurs ci-dessus ont été créées précédemment (avec MySQL).

Sauvegardez et fermez ce fichier.
Terminez l’installation

Le programme d’installation en ligne de WordPress.

Vous pouvez maintenant diriger votre navigateur vers https://SERVER_IP/wordpress et passer par le programme d’installation en ligne pour terminer l’installation. Après quelques clics et un peu de saisie, votre instance de WordPress sera opérationnelle.