GNU/Linux >> Tutoriels Linux >  >> Linux

Installer WordPress sur Linux avec Apache

Cet article explique comment installer WordPress® sur un serveur Web Linux® avec Apache®.

WordPress, un outil de blogging open source populaire, utilise PHP et MySQL® pour gérer le contenu et l'interface du site.

Important :Rackspace Support ne prend pas en charge la configuration de WordPress. Cet article fournit des étapes comme solution optimale, mais vos développeurs doivent les examiner attentivement avant de les mettre en œuvre afin d'éviter les temps d'arrêt inattendus.

Prérequis

Exécutez toutes les commandes en tant qu'utilisateur non root avec sudo privilèges.

Pour cette installation, installez une pile LAMP sur le serveur. LAMP inclut Linux®, Apache, MySQL et PHP). Si vous les avez déjà installés, passez à la section suivante. Sinon, reportez-vous à notre article sur la façon d'installer une pile LAMP sur les distributions basées sur RHEL 7.

Créer une base de données MySQL et un utilisateur pour WordPress

Comme mentionné précédemment, WordPress utilise une base de données relationnelle pour gérer le contenu. Cet exemple utilise MariaDB, installé précédemment, pour créer un utilisateur et une base de données à utiliser par WordPress. Effectuez les étapes suivantes pour créer une base de données et un utilisateur WordPress :

  1. Exécutez la commande suivante pour vous connecter à MySQL avec l'utilisateur root :
$ mysql -u root -p
  1. Créez la base de données nommée wpdatabase . N'oubliez pas que toutes les instructions MySQL doivent se terminer par un point-virgule (; ):
CREATE DATABASE wpdatabase;
  1. Créez un utilisateur que WordPress utilisera pour travailler sur cette base de données. Définissez l'utilisateur comme wpuser avec mot de passe password :
CREATE USER wpuser@localhost IDENTIFIED BY 'password';
  1. Accordez à l'utilisateur les autorisations nécessaires pour gérer l'ensemble de la base de données :
GRANT ALL PRIVILEGES ON wordpress.* TO wpuser@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
  1. Quitter l'interface MySQL :
exit

Cette procédure complète les exigences de WordPress MySQL. Vous n'êtes pas obligé de créer une base de données et un utilisateur spécifiques pour WordPress, mais nous vous le recommandons vivement pour des raisons de sécurité.

Installer WordPress

Effectuez les étapes suivantes pour installer WordPress :

  1. Exécutez les commandes suivantes pour installer les packages PHP qui permettent à WordPress de redimensionner les images en vignettes et permettent à la base de données MySQL d'accéder aux fonctions nécessaires :
$ sudo yum install php74-gd php74-mysqlnd
$ sudo service httpd restart
  1. Téléchargez la dernière version de WordPress dans le répertoire d'accueil de votre serveur :
$ cd ~
$ wget http://wordpress.org/latest.tar.gz
  1. Extraire tous les fichiers du dossier compressé :
$ tar xzvf latest.tar.gz

Cette commande crée un répertoire appelé wordpress dans votre répertoire personnel qui contient tous les fichiers dont WordPress a besoin pour fonctionner correctement.

  1. Exécutez la commande suivante pour copier le wordpress répertoire vers /var/www/html , qui contient tous les fichiers de la page Web, et conserve les autorisations par défaut :
$ sudo mv ~/wordpress/ /var/www/html/example.com
  1. Créez un dossier dans lequel WordPress peut stocker tous les fichiers téléchargés :
$ mkdir /var/www/html/example.com/wp-content/uploads
  1. Les étapes précédentes créent une page d'exemple WordPress sur votre serveur Web. Cependant, pour que cela fonctionne sans problème, vous devez changer la propriété des fichiers en votre utilisateur FTP ou l'utilisateur et le groupe Apache afin que WordPress puisse accéder à tous les fichiers avec les autorisations appropriées. Exécutez la commande suivante :
$ sudo chown -R FTP_USER:apache /var/www/html/example.com

Configurer WordPress

Bien que vous effectuiez la majeure partie de la configuration via une interface graphique (GUI) sur la page Web, vous devez apporter certaines modifications à la configuration sur le serveur. Effectuez les étapes suivantes pour configurer le serveur :

  1. Passez au dossier où se trouvent tous les fichiers Web :
$ cd /var/www/html
  1. Parce que WordPress a besoin d'un fichier de configuration appelé wp-config.php , qui n'existe pas, exécutez la commande suivante pour copier le fichier d'exemple et le renommer :
$ sudo cp wp-config-sample.php wp-config.php
  1. Modifiez le fichier de configuration avec l'éditeur de texte comme nano ou vi. Cet exemple utilise vi :
$ sudo vi wp-config.php
  1. Spécifiez les informations de la base de données dans les paramètres MySQL section. Entrez le nom de la base de données et les informations d'identification de l'utilisateur définies sur Créer une base de données MySQL et un utilisateur pour WordPress section, semblable à l'exemple suivant :
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wpdatabase');

/** MySQL database username */
define('DB_USER', 'wpuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

Sécuriser WordPress

Modification des autorisations de fichiers

Selon la documentation WordPress, la modification des autorisations de fichiers à la racine du document de votre site Web augmentera la sécurité de votre site Web.

$ find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
$ find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;

Dans votre configuration vHost ou dans le .htaccess, vous pouvez placer le bloc suivant pour empêcher les scripts d'être accessibles par aucun utilisateur.

# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>


# BEGIN WordPress

Désactiver l'exécution de PHP dans le répertoire des téléchargements

Lorsqu'un site Wordpress est compromis, il y a souvent des portes dérobées téléchargées dans des répertoires inscriptibles qui se déguisent en fichiers Wordpress légitimes. Une étape que vous pouvez suivre pour ajouter à votre stratégie de sécurité existante consiste à désactiver l'exécution de PHP dans certains répertoires.

L'une des plus courantes consiste à désactiver l'exécution de PHP dans le répertoire wp-content/uploads. Cela peut être effectué par :

$ vim /var/www/vhosts/example.com/wp-content/uploads/.htaccess
[...]
# Prevent PHP execution
<Files *.php>
deny from all
</Files>
[...]

AVERTISSEMENT : Cela peut casser votre thème s'il nécessite l'exécution de PHP dans le répertoire wp-content/uploads. Si vous constatez que quelque chose ne fonctionne pas, annulez simplement votre modification et le site recommencera à fonctionner.

Bloquer les attaques xmlrpc.php

Wordpress utilise XML-RPC pour exécuter à distance des fonctions dans Wordpress. Souvent, des parties malveillantes tenteront d'exploiter xmlrpc.php en le forçant brutalement, ce qui peut envoyer des milliers de requêtes au serveur Web, et donc causer des problèmes de conflit de ressources.

Une attaque xmlrpc.php peut être détectée en vérifiant les journaux d'accès du site. Si vous voyez des centaines ou des milliers de requêtes dans un court laps de temps qui ressemblent à ce qui est ci-dessous, c'est un signe que xmlrpc.php est attaqué :

$ tail /var/log/httpd/example.com-access.log
[...]
123.123.123.123 - - [2/Jun/2022:15:45:02 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
123.123.123.123 - - [2/Jun/2022:15:45:02 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
123.123.123.123 - - [2/Jun/2022:15:45:03 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
[...]

Vous pouvez atténuer les attaques par force brute xmlrpc.php dans Apache en plaçant ce qui suit dans le fichier .htaccess :

$ vim /var/www/vhosts/example.com/.htaccess
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>

Forcer SSL sur les connexions wp-admin

$ vim /var/www/vhosts/example.com/wp-config.php
[...]
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
/* That's all, stop editing! Happy blogging. */
[...]

Terminer la configuration dans l'interface graphique

Vous pouvez maintenant accéder à votre page WordPress en naviguant sur http:// . Entrez la langue d'installation, les informations sur le site et l'utilisateur pour accéder au portail de l'administrateur lorsque vous y êtes invité. Une fois cette configuration terminée, le système vous redirige vers le tableau de bord WordPress principal.

Pour accéder à ce tableau de bord à tout moment, rendez-vous sur http:///wp-login.php ou http:///wp-login.php .

Conclusion

WordPress est un système de gestion de contenu (CMS) très intuitif qui vous permet de créer une page Web de blog, rapidement et gratuitement. Après avoir suivi les étapes de cet article, vous pouvez commencer à utiliser votre site WordPress.


Linux
  1. Installer phpMyAdmin sur Ubuntu 20.04 avec Apache

  2. Installer phpMyAdmin sur Debian 11 avec Apache

  3. Installer phpMyAdmin sur Ubuntu 22.04 avec Apache

  4. Installez WordPress avec Docker Compose, Nginx, Apache avec SSL

  5. Configurer un sous-domaine avec Apache sous Linux

Installez WordPress 4.0 avec Nginx 1.6 sur Linux Mint 17

Comment installer WordPress avec Apache dans Ubuntu 20.04

Installer WordPress avec Nginx sur Ubuntu 18.04

Comment installer WordPress sur CentOS 7.1 avec Apache

Installer WonderCMS sur Rocky Linux 8

Installer Windows 10 sur Linux avec VirtualBox