Prérequis: Avoir installé l’ensemble LAMP (Linux, Apache, MYSQL, PHP)
Pour information: Un script est disponible pour les membres.
Commencez par vous connecter à MariaDB en utilisant votre $USERNAME (qui peut être “root” ou “debian” au départ):
$USERNAME par votre utilisateur MariaDB
$PASSWORD par votre mot de passe MariaDB
$WORDPRESSPASSWORD par le mot de passe que vous choisirez pour l’utilisateur “wordpress_user” de la base de donnée “wordpress”
mariadb -u $USERNAME -p$PASSWORD
Créez une base de données wordpress, l’utilisateur correspondant et ajoutez les droits:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT ALL ON wordpress.* TO 'wordpress_user'@'localhost' IDENTIFIED BY '$WORDPRESSPASSWORD';
FLUSH PRIVILEGES;
QUIT;
On installe ensuite les dépendances PHP et on redémarre Apache:
sudo apt update && sudo apt upgrade
sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
sudo systemctl restart apache2
Maintenant on indique à Apache qu’il doit rediriger le trafic vers le futur dossier WordPress:
sudo a2dissite 000-default.conf
sudo nano /etc/apache2/sites-available/wordpress.conf
Et collez cette configuration:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/wordpress
<Directory /var/www/html/wordpress/>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Continuons en redémarrant Apache après avoir activer le mode “rewrite” et on installe “curl”:
sudo a2enmod rewrite
sudo a2ensite wordpress.conf
sudo systemctl restart apache2
sudo apt install curl
On se place dans le dossier qu’affichera Apache on installe WordPress:
cd /var/www/html/
sudo curl -O https://wordpress.org/latest.tar.gz
sudo tar xzvf latest.tar.gz
sudo rm latest.tar.gz
cd wordpress
sudo touch .htaccess
sudo cp wp-config-sample.php wp-config.php
sudo mkdir ./wp-content/upgrade
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo find /var/www/html/wordpress/ -type d -exec chmod 775 {} \;
sudo find /var/www/html/wordpress/ -type f -exec chmod 640 {} \;
La partie qui demande un peu de concentration, la mise en place des Secret.Keys de WordPress:
sudo mv /var/www/html/wordpress/wp-config.php /var/www/html/wordpress/wp-config.old
sudo curl -s https://api.wordpress.org/secret-key/1.1/salt/
sudo nano /var/www/html/wordpress/wp-config.php
Et collez cette configuration:
<?php
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wordpress_user' );
define( 'DB_PASSWORD', '$WORDPRESSPASSWORD' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8' );
define( 'DB_COLLATE', '' );
define('FS_METHOD', 'direct');
define('AUTH_KEY', '$KEY');
define('SECURE_AUTH_KEY', '$KEY');
define('LOGGED_IN_KEY', '$KEY');
define('NONCE_KEY', '$KEY');
define('AUTH_SALT', '$KEY');
define('SECURE_AUTH_SALT', '$KEY');
define('LOGGED_IN_SALT', '$KEY');
define('NONCE_SALT', '$KEY');
$table_prefix = 'wp_';
define( 'WP_DEBUG', false );
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
require_once ABSPATH . 'wp-settings.php';
Ça devrait donner quelque chose comme:
On termine par redemarer Apache:
sudo service apache2 restart
Il n’y a plus qu’a vous rendre sur votre “http://votre.nom.de.domaine” pour commencer la configuration du site:
Si vous n’avez pas encore mis en place la redirection en https grâce aux certificats Let’s Encrypt, c’est peut-être le moment…
Fail2Ban:
Si vous avez suivi le tuto concernant Fail2Ban vous pouvez sécuriser votre WordPress:
sudo nano /etc/fail2ban/jail.local
et ajoutez:
[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/apache2/access.log
sudo nano /etc/fail2ban/filter.d/wordpress.conf
et collez:
[Definition]
failregex = <HOST>.*POST.*(wp-login\.php|xmlrpc\.php).* 200
sudo service fail2ban restart