, ,

Installer WordPress sur un serveur Debian LAMP

Prérequis: Avoir installé l’ensemble LAMP (Linux, Apache, MYSQL, PHP)

[4MembersOnly]sudo git clone https://github.com/PFranck06/AutoInstallScript [/4MembersOnly]

Commencez par vous connecter à MariaDB en utilisant votre $USERNAME (qui peut être « root » ou « debian » au départ):

ATTENTION à chaque étape pensez à remplacer:
$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:

ATTENTION remplacez $WORDPRESSPASSWORD
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:

ATTENTION ne suivez cette procedure que si vous désirez que WordPress soit la page d’accueil de votre nom de domaine, sinon il faudra adapter le « .conf » déjà existant.
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/
ATTENTION: Prenez bien soin de noter et remplacer chaque $KEY de votre configuration WordPress par les lignes indiquées en retour. Et remplacez $WORDPRESSPASSWORD
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

Comments

Laisser un commentaire