Installer WordPress sur un VPS
Vous souhaitez installer un site web. Même s’il y a des alternatives, les spécialistes se tournent en général vers WordPress. Et si vous optez pour WordPress, il y a en général plusieurs solutions :
- Un hébergement wordpress tout fait, sur un serveur distant que vous ne maitriserez pas, ou vous aurez un accès limité. Vous pouvez faire cela chez WordPress.com, chez Ovh, Gandi, Ionos, etc. Vous aurez accès à des options payantes, vous permettant par exemple d’utiliser votre nom de domaine, plutôt qu’un nom de domaine générique en wordpress.com.
- Choisir de s’occuper soi-même de l’hébergement. Sur un VPS (ordinateur dans le cloud) de votre choix, avec un nom de domaine que vous avez acheté séparemment. Nous n’êtes pas pieds et poings liés avec le fournisseur de votre hébergement.
Bien sûr, cette option demande plus de connaissance, mais vous pouvez vous faire accompagner par un professionnel. L’avantage, à mes yeux, et qu’on a une meilleure maitrise de tout ce qui compose votre site web, une meilleure compréhension des coûts, accès à plus de performance, car votre vps est à vous, vous ne partagez vos performances avec personne d’autre.
Obtenir un VPS
Il y a de nombreux fournisseurs de VPS (virtual private serveur). OVH, Gandi, Ionos. Personnellement j’aime beaucoup Contabo. Je trouve leurs machines performantes et bon marché. Vous avez le choix de plusieurs distributions de Linux. En général mon choix se porte sur Ubuntu. Quand vous commandez votre vps, vous allez recevoir par mail des informations vous permettant de vous y connecter. Il s’agit de l’adresse ip de votre serveur, d’un identifiant (root ou admin), qui a tous les droits sur la machine, d’un mot de passe.
Configuration de base
La première chose à faire est de se connecter sur votre VPS et de changer le mot de passe mais aussi de créer un nouvel utilisateur (ordinaire), qui n’aura pas tous les pouvoirs que possède l’utilisateur initial.
C’est cet utilisateur que vous utiliserez quand vous aurez besoin de vous connecter.
Pour se connecter avec ssh tapez (si vous êtes sous linux)
ssh root@X.X.X.X (X.X.X.X est votre adresse ip)
on vous demande alors votre mot de passe. Vous pouvez aussi vous connecter avec des programmes comme putty sous windows.
Télécharger wordpress
Vous êtes maintenant connecté en tant que root. Vous pouvez aller dans le répertoire /root et y télécharger le dernier wordpress. Allez sur https://wordpress.org pour obtenir le lien de téléchargement et utilisez curl ou wget pour récupérer le fichier latest.zip:
cd /root ; wget https://wordpress.org/latest.zip
Maintenant vous allez déployer ce fichier zip sur votre VPS.
Pour cela, je vais en général dans le répertoire /var/www/sites/ du VPS et je dézippe (si le mot existe) le fichier précédent
unzip /root/latest.zip
Ceci crée un répertoire qui se nomme wordpress dans le répertoire /var/www/sites
En général je renomme ce fichier avec le nom du site que je vais installer.
mv wordpress monsite.fr
Comme ceci, si vous souhaitez installer plusieurs sites sur la même machine, vous pouvez vous y retrouver facilement.
Configurer une base de donnée
WordPress va avoir besoin d’une base de données pour fonctionner. Cette base de données va avoir : un nom (site_db par example) un utilisateur (site_user par example) et un mot de passe (compliqué si possible). C’est informations seront à remplir dans le fichier de configuration de wordpress.
Pour créer la base de données, et son utilisateur, vous allez lancer la commande mysql et utiliser les commandes suivantes :
create database site_db ;
grant all privileges on site_db.* to ‘site_user’ identified by ‘mot_de_passe’ ;
flush privileges;
exit;
Pour générer un mot de passe aléatoire compliqué, vous pouvez aller sur des sites comme random.org.
Indiquer à wordpress d’utiliser votre base de données
Dans le répertoire que vous avez créer pour votre installation wordpress, il y a un fichier wp-config-sample.php. Vous allez copier ce fichier vers un fichier wp-config.php. Dans ce fichier vous verrez un petit fragment qui concerne la base de données qui est à modifier :
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );
/** Database username */
define( 'DB_USER', 'username_here' );
/** Database password */
define( 'DB_PASSWORD', 'password_here' );
/** Database hostname */
define( 'DB_HOST', 'localhost' );
Vous allez y entrer les informations concernant votre base de données.
Un peu plus loin dans ce même fichier, vous allez remplacer dans ce fragment le partie indiquée par un texte personnalisé :
define( 'AUTH_KEY', 'put your unique phrase here' );
define( 'SECURE_AUTH_KEY', 'put your unique phrase here' );
define( 'LOGGED_IN_KEY', 'put your unique phrase here' );
define( 'NONCE_KEY', 'put your unique phrase here' );
define( 'AUTH_SALT', 'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT', 'put your unique phrase here' );
define( 'NONCE_SALT', 'put your unique phrase here' );
Vous pouvez aller sur ce site pour obtenir directement un fragment à substituer.
Autre chose, comme nous avons travaillé en tant qu’utilisateur root, les fichiers créés appartiennent à cet utilisateur. Nous allons changer donner la propriété à l’utilisateur qui va faire tourner le serveur web (les systèmes unix/linux ont plusieurs utilisateurs avec des droits différents ce qui permet de limiter les problèmes de sécurité).
chown -R www-data:www-data *
WordPress est prêt. Il faut maintenant configurer le serveur web pour qu’il reconnaissent votre installation de wordpress et la fasse fonctionner.
Configurer le serveur www
Dans le répertoire /etc/apache2/sites-available vous allez créer un fichier monsite.fr.conf ou vous allez mettre le contenu suivant, les parties en gras sont à personnaliser.
<VirtualHost *:80>
ServerName www.monsite.fr
ServerAlias monsite.fr
ServerAdmin moi@email.fr
Redirect 301 « / » https://www.monsite.fr/
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName www.monsite.fr
ServerAlias monsite.fr
ServerAdmin moi@email.fr
DocumentRoot /var/www/sites/monsite.fr
# Available loglevels: trace8, …, trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/monsite_error.log
CustomLog ${APACHE_LOG_DIR}/monsite_access.log combined
<Directory /var/www/sites/monsite.fr/ >
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order deny,allow
Allow from all
Require all granted
</Directory>
RewriteEngine on
SSLCertificateFile /etc/letsencrypt/live/monsite.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/monsite.fr/privkey.pem
</VirtualHost>
</IfModule>
Obtenir un certificat SSL
Le fichier précédent demande l’utilisation d’un certificat SSL pour que les échanges entre le serveur web et les utilisateurs distants soit chiffrés. On obtient un certificat letsencrypt (gratuit) avec la commande suivante :
certbot certonly -d www.monsite.fr -d monsite.fr
Normalement, à ce moment, vous avez tout. Il suffit d’activer votre site :
a2ensite monsite.fr
Puis de démarrer le serveur web:
systemctl start apache2
En vous rendant maintenant à l’adresse de votre site, https://www.monsite.fr, vous serez invité à créer un compte administrateur, puis à vous connecter à votre site.