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