Installer un serveur LAMP pour WordPress

Le but de ce tuto est de mettre en place un serveur WordPress. Pour cela nous allons installer et configurer Apache et MariaDB. Vous pouvez vous servir de ce tuto pour un autre outil comme GLPI, il faudra bien évidemment aller vérifier sur le site officiel les paquets php requis.

Commencez par mettre à jour votre système

root@CT-LAMP:~# apt-get update
root@CT-LAMP:~# apt-get upgrade

Installez mariaDB

root@CT-LAMP:~# apt-get install mariadb-server

Nous allons maintenant sécuriser mariaDB

root@CT-LAMP:~# mysql_secure_installation 

Enter current password for root (enter for none): 

Switch to unix_socket authentication [Y/n] n
 
Change the root password? [Y/n] y
 
Remove anonymous users? [Y/n] y
 
Disallow root login remotely? [Y/n] y
 
Remove test database and access to it? [Y/n] y
 
Reload privilege tables now? [Y/n] y

Connectez vous à mariaDB

root@CT-LAMP:~# mariadb -u root

Puis créez une nouvelle base de données

MariaDB > CREATE DATABASE nom_de_ma_base DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Ajoutez un nouvel utilisateur pour cette base et nous lui définissons un mot de passe

MariaDB > GRANT ALL ON nom_de_ma_base.* TO 'NOMUTILISATEUR'@'localhost' IDENTIFIED BY 'LE_MOT_DE_PASSE_QUE_JE_VEUX';

Rechargez les privilèges afin de prendre en compte ce nouvel utilisateur

MariaDB > FLUSH PRIVILEGES;

Puis quittez MariaDB

MariaDB > EXIT;

Installez Apache, php et les extensions nécessaires à WordPress

root@CT-LAMP:~# apt-get install apache2
root@CT-LAMP:~# apt-get install php7.4
root@CT-LAMP:~# apt-get install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip php7.4-mysql php-mysql

Activez la réécriture pour les permaliens

root@CT-LAMP:~# a2enmod rewrite

Redémarrez Apache

root@CT-LAMP:~# systemctl restart apache2

Créez et modifiez le fichier conf Apache de votre site

root@CT-LAMP:~# nano /etc/apache2/sites-available/monsite.conf


<VirtualHost *:80>
	ServerName monsite.fr
	ServerAlias www.monsite.fr
	DocumentRoot "/var/www/monsite"
	<Directory "/var/www/monsite">
		Options +FollowSymLinks
		AllowOverride all
		Require all granted
	</Directory>
	ErrorLog /var/log/apache2/error.monsite.fr.log
	CustomLog /var/log/apache2/access.monsite.fr.log combined
</VirtualHost>

Activez « monsite », étant le nom du fichier de conf nouvellement créé

root@CT-LAMP:~# a2ensite monsite

Supprimez le fichier de configuration par défaut

root@CT-LAMP:~# rm /etc/apache2/sites-enabled/000-default.conf

Placez vous dans le dossier /tmp

root@CT-LAMP:~# cd /tmp 

Puis téléchargez la dernière version de WordPress

root@CT-LAMP:/tmp# wget https://wordpress.org/latest.tar.gz

On extrait l’archive

root@CT-LAMP:/tmp# tar -xzvf latest.tar.gz

Créez le dossier qui va accueillir notre site, attention il doit correspondre au nom donné dans le fichier de configuration

root@CT-LAMP:~# mkdir /var/www/monsite

Supprimez le dossier de base de Apache « html’

root@CT-LAMP:~# rm -R /var/www/html

Et déplacez tout le contenu du dossier WordPress dans votre nouveau dossier

root@CT-LAMP:~# mv /tmp/wordpress/* /var/www/monsite

Copiez avant l’attribution des droits, le fichier wp-config.php

root@CT-LAMP:~# cp /var/www/monsite/wp-config-sample.php /var/www/monsite/wp-config.php

Créez le fichier .htaccess avec le contenu ci-dessous

root@CT-LAMP:~# nano /var/www/monsite/.htaccess


# BEGIN WordPress

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

Attribuez le dossier et son contenu de votre site à www-data utilisateur et groupe

root@CT-LAMP:~# chown -R www-data:www-data /var/www/monsite

Modifiez les droits des dossiers et des fichiers de votre site

root@CT-LAMP:~# find /var/www/monsite -type d -exec chmod 750 {} \;
root@CT-LAMP:~# find /var/www/monsite -type f -exec chmod 640 {} \;

Afin d’augmenter la sécurité de WordPress nous allons générer de nouvelles clés

root@CT-LAMP:~# curl -s https://api.wordpress.org/secret-key/1.1/salt/

Remplacez les clés de « démonstration » qui sont dans le fichier wp-config.php par les nouvelles clés

root@CT-LAMP:~# nano /var/www/monsite/wp-config.php


define('AUTH_KEY',         'XXXXXXXXXXXX');
define('SECURE_AUTH_KEY',  'XXXXXXXXXXXX');
define('LOGGED_IN_KEY',    'XXXXXXXXXXXX');
define('NONCE_KEY',        'XXXXXXXXXXXX');
define('AUTH_SALT',        'XXXXXXXXXXXX');
define('SECURE_AUTH_SALT', 'XXXXXXXXXXXX');
define('LOGGED_IN_SALT',   'XXXXXXXXXXXX');
define('NONCE_SALT',       'XXXXXXXXXXXX');

Dans ce même fichier (wp-config.php), se trouve la configuration de la base de données, modifiez les valeurs en fonction de ce que vous aviez mis lors de la création de la base et de l’utilisateur dans la partie MariaDB

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'nom_de_ma_base' );

/** Database username */
define( 'DB_USER', 'NOMUTILISATEUR' );

/** Database password */
define( 'DB_PASSWORD', 'LE_MOT_DE_PASSE_QUE_JE_VEUX' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

Ajoutez également cette petite ligne à la fin de votre fichier wp-config.php pour pouvoir forcer WordPress à utiliser PHP pour l’installation des extensions plutôt qu’un FTP

define('FS_METHOD', 'direct');

Redémarrez Apache

root@CT-LAMP:~# systemctl restart apache2

Tout est maintenant prêt ! Lancez un navigateur et entrez l’adresse IP de votre serveur dans la barre d’adresse, vous serez alors redirigé vers la page d’installation de WordPress.

0 Commentaires

Ecrire un commentaire

XHTML: Vous pouvez utiliser les balises : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>