Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wordpress [Le 17/06/2018, 00:03]
krodelabestiole [Installation de WordPress] -u root inutile avec sudo (l'user est déjà root)
wordpress [Le 15/01/2024, 15:53] (Version actuelle)
krodelabestiole ancienne révision (Le 01/06/2020, 09:09) restaurée
Ligne 1: Ligne 1:
 {{tag>​serveur internet cms}} {{tag>​serveur internet cms}}
----- + 
-{{  ​http://upload.wikimedia.org/wikipedia/commons/c/ca/​Wordpress-logo.png?245}}+{{  ​https://s.w.org/style/images/about/WordPress-logotype-standard.png?260}}
  
 ====== WordPress ====== ====== WordPress ======
Ligne 21: Ligne 21:
 ===== Installation ===== ===== Installation =====
  
-<​note>​Le site officiel propose 2 documentations concernant l'​installation de WordPress : [[https://​fr.wordpress.org/​txt-install/​|une succincte]],​ l'​autre [[http://​codex.wordpress.org/​fr:​Installer_WordPress|plus complète]].</​note>​+<​note>​Le site officiel propose 2 documentations concernant l'​installation de WordPress : [[https://​fr.wordpress.org/​txt-install/​|une succincte]],​ l'​autre [[https://​codex.wordpress.org/​fr:​Installer_WordPress|plus complète]].</​note>​
  
 <note tip>La plupart des hébergeurs web proposent une installation de WordPress simplifiée ("//en 1 clic//"​).</​note>​ <note tip>La plupart des hébergeurs web proposent une installation de WordPress simplifiée ("//en 1 clic//"​).</​note>​
Ligne 42: Ligne 42:
 <​code>​sudo a2enmod rewrite</​code>​ <​code>​sudo a2enmod rewrite</​code>​
  
-Nous allons ensuite créer un [[:​apache2#​hotes_virtuels|hôte virtuel]] pour WordPress, dont la racine sera ///​var/​www/​wordpress// :+Nous allons ensuite créer un [[:​apache2#​hotes_virtuels|hôte virtuel]] pour WordPress, dont la racine sera ''​/​var/​www/​wordpress'' ​:
 <​code>​sudo nano /​etc/​apache2/​sites-available/​wordpress.conf</​code>​ <​code>​sudo nano /​etc/​apache2/​sites-available/​wordpress.conf</​code>​
 Ce qui ouvre avec [[:​nano|l'​éditeur nano]] un fichier dans lequel nous allons coller : Ce qui ouvre avec [[:​nano|l'​éditeur nano]] un fichier dans lequel nous allons coller :
 <file - wordpress.conf><​VirtualHost *:80> <file - wordpress.conf><​VirtualHost *:80>
-        ServerName wordpress+        ServerName wordpress.localhost
         DocumentRoot /​var/​www/​wordpress         DocumentRoot /​var/​www/​wordpress
         <​Directory /​var/​www/​wordpress>​         <​Directory /​var/​www/​wordpress>​
Ligne 55: Ligne 55:
         CustomLog /​var/​log/​apache2/​access.wordpress.log combined         CustomLog /​var/​log/​apache2/​access.wordpress.log combined
 </​VirtualHost></​file>​ </​VirtualHost></​file>​
-Si un nom de domaine pointe sur le serveur, on l'​indique à la place de //wordpress// pour la directive ​//ServerName//.\\ +Si un nom de domaine pointe sur le serveur, on l'​indique à la place de ''​wordpress.localhost'' ​pour la directive ​''​ServerName''​.\\ 
-(//Ctrl+X// puis //O// pour quitter en sauvegardant)+(''​Ctrl+X'' ​puis ''​O'' ​pour quitter en sauvegardant)
  
 Finalement, on active l'​hôte virtuel et on recharge la configuration d'​Apache : Finalement, on active l'​hôte virtuel et on recharge la configuration d'​Apache :
 <​code>​sudo a2ensite wordpress <​code>​sudo a2ensite wordpress
 sudo systemctl reload apache2</​code>​ sudo systemctl reload apache2</​code>​
- 
-Si on n'a pas spécifié de vrai nom de domaine, on édite le fichier ///​etc/​hosts//​ côté client afin de renseigner l'IP du serveur pour le domaine //​wordpress//​ : 
-<file - hosts>​127.0.0.1 wordpress</​file>​ 
  
 <note important>​Si votre serveur est sur le [[:Web]], pensez à [[:​apache2#​securite|sécuriser]] l'​accès au site en particulier en forçant [[:​apache2#​HTTPS]].</​note>​ <note important>​Si votre serveur est sur le [[:Web]], pensez à [[:​apache2#​securite|sécuriser]] l'​accès au site en particulier en forçant [[:​apache2#​HTTPS]].</​note>​
Ligne 74: Ligne 71:
 <​code>​wget https://​fr.wordpress.org/​wordpress-latest-fr_FR.zip</​code>​ <​code>​wget https://​fr.wordpress.org/​wordpress-latest-fr_FR.zip</​code>​
  
-Ensuite nous allons extraire le contenu du zip à la racine de notre hôte virtuel (///​var/​www/​wordpress// dans cet exemple) :+Ensuite nous allons extraire le contenu du zip à la racine de notre hôte virtuel (''​/​var/​www/​wordpress'' ​dans cet exemple) :
 <​code>​sudo unzip wordpress-latest-fr_FR.zip -d /​var/​www</​code>​ <​code>​sudo unzip wordpress-latest-fr_FR.zip -d /​var/​www</​code>​
  
 On va renforcer légèrement la sécurité en attribuant des [[[[:​apache2#​permissions|droits]] un peu restrictifs aux fichiers : On va renforcer légèrement la sécurité en attribuant des [[[[:​apache2#​permissions|droits]] un peu restrictifs aux fichiers :
 <​code>​sudo chown www-data:​www-data /​var/​www/​wordpress -R <​code>​sudo chown www-data:​www-data /​var/​www/​wordpress -R
-sudo find /​var/​www/​wordpress ​-type d -exec chmod 755 {} \; +sudo chmod --wx,​u+rwX,​g+rX,​o+rX ​/​var/​www/​wordpress</​code>​ 
-sudo find /​var/​www/​wordpress ​-type f -exec chmod 644 {} \;</​code>​ +(WordPress [[https://​codex.wordpress.org/​Updating_WordPress#​File_Ownership|exige]] que les fichiers ​soient modifiables par le serveur __et__ ​appartiennent à ''​www-data'' ​pour faire fonctionner les mises à jour automatiques)
-(WordPress [[https://​codex.wordpress.org/​Updating_WordPress#​File_Ownership|exige]] que les fichiers appartiennent à //www-data// __et__ soient modifiables par le serveur ​pour faire fonctionner les mises à jour automatiques)+
  
 === Création de la base de données === === Création de la base de données ===
Ligne 88: Ligne 84:
 <​code>​sudo mysql</​code>​ <​code>​sudo mysql</​code>​
  
-On arrive alors sur la console SQL sur laquelle nous allons entrer ces commandes (en remplaçant ​//mot_de_passe//) :+On arrive alors sur la console SQL sur laquelle nous allons entrer ces commandes (en remplaçant ​''​mot_de_passe''​) :
 <code mysql>​CREATE DATABASE wordpress; <code mysql>​CREATE DATABASE wordpress;
-GRANT ALL PRIVILEGES ​ON wordpress.* TO 'WordPress'​@'​localhost' IDENTIFIED WITH mysql_native_password BY '​mot_de_passe';+CREATE USER '​wpuser'​@'​localhost'​ IDENTIFIED BY '​mot_de_passe';​ 
 +GRANT ALL ON wordpress.* TO 'wpuser'​@'​localhost';​
 FLUSH PRIVILEGES; FLUSH PRIVILEGES;
-EXIT</​code>​ +QUIT;</​code>​ 
-Il faut remplacer ​//mot_de_passe// par un vrai mot de passe complexe qu'on note pour la prochaine étape.+Il faut remplacer ​''​mot_de_passe'' ​par un vrai mot de passe complexe qu'on note pour la prochaine étape.
  
-On vient de créer la base de donnée ​//wordpress// à laquelle l'​utilisateur ​//​WordPress// ​aura accès.+On vient de créer la base de donnée ​''​wordpress'' ​à laquelle l'​utilisateur ​''​wpuser'' ​aura accès.
  
 === Installation via l'​interface web === === Installation via l'​interface web ===
  
-WordPress devrait alors être accessible à l'​​adresse [[http://​wordpress/​]],​ et cette adresse nous redirige sur une interface qui nous permet de finaliser l'​installation.+WordPress devrait alors être accessible à l'​​adresse [[http://​wordpress.localhost/]], et cette adresse nous redirige sur une interface qui nous permet de finaliser l'​installation.
  
 Cliquez sur //​C'​est parti !// et renseignez les différents champs : Cliquez sur //​C'​est parti !// et renseignez les différents champs :
-  * **Nom de la base de données** : //wordpress// +  * **Nom de la base de données** : ''​wordpress''​ 
-  * **Identifiant** : //​WordPress//​ +  * **Identifiant** : ''​wpuser''​ 
-  * **Mot de passe** : le mot de passe qu'on a noté à l'​étape précédente (lors de la création de la base de donnée et de l'​utilisateur ​//​WordPress//​+  * **Mot de passe** : le mot de passe qu'on a noté à l'​étape précédente (lors de la création de la base de donnée et de l'​utilisateur ​''​wpuser''​
-  * **Adresse de la base de données** : //localhost// +  * **Adresse de la base de données** : ''​localhost''​ 
-  * **Préfixe des tables** : //wp_//+  * **Préfixe des tables** : ''​wp_''​
 Après avoir cliqué sur //Lancer l'​installation//,​ on tombe sur un second formulaire. Après avoir cliqué sur //Lancer l'​installation//,​ on tombe sur un second formulaire.
  
Ligne 115: Ligne 112:
  
 ===== Utilisation ===== ===== Utilisation =====
 +
 +==== Contenu éditorial ====
 +
 +La contenu éditorial de WordPress est principalement de deux types :
 +  * les //pages//, qui sont les éléments constituants des "sites classiques",​ et sont en général structurées par arborescence (menu, sous-menu)
 +  * les //​articles//,​ qui sont les éléments constituants des blogs, et sont liés à une notion d'​actualité (tri par date)
  
 ==== Extensions ==== ==== Extensions ====
Ligne 135: Ligne 138:
  
 <note important>​De la même manière que les autres extensions, les thèmes peuvent être source de failles de sécurité. N'​utilisez que des thèmes fiables et maintenus, et maintenez-les à jour autant que possible.</​note>​ <note important>​De la même manière que les autres extensions, les thèmes peuvent être source de failles de sécurité. N'​utilisez que des thèmes fiables et maintenus, et maintenez-les à jour autant que possible.</​note>​
-==== Contenu éditorial ==== 
  
-La contenu éditorial de WordPress est principalement de deux types : 
-  * les //pages//, qui sont les éléments constituants des "sites classiques",​ et sont en général structurées par arborescence (menu, sous-menu) 
-  * les //​articles//,​ qui sont les éléments constituants des blogs, et sont liés à une notion d'​actualité (tri par date) 
 ===== Problèmes courants ===== ===== Problèmes courants =====
 +
 +==== Changement de domaine ====
 +
 +WordPress a la mauvaise idée de stocker en dur (en base de données, par défaut, et / ou en fichier de configuration) le nom de domaine utilisé lors de son installation,​ et s'​obstine à rediriger dessus même lorsqu'​il est appelé depuis une autre adresse.
 +
 +Ce comportement pose problème lors d'un changement de nom de domaine, pour une mise en production par exemple.
 +
 +Par défaut on peut modifier ce nom de domaine depuis l'​interface d'​administration -> //​Réglages//​ -> //​Général//​ -> //Adresse web de WordPress (URL)// et //Adresse web du site (URL)//.
 +
 +Si ces champs sont grisés et non modifiables,​ cela signifie que ces infos sont spécifiées en dur dans le fichier de configuration de WordPress. Il vous faut dans ce cas [[:​tutoriel:​comment_modifier_un_fichier|éditer manuellement]] le fichier ''​wp-config.php''​ (à la racine de WordPress) et ajuster les lignes suivantes :
 +<file - wp-config.php>​
 +define( '​WP_HOME',​ '​http://​example.com'​ );
 +define( '​WP_SITEURL',​ '​http://​example.com'​ );
 +</​file>​
 +
 +Par ailleurs il est fort probable que votre ancien nom de domaine apparaisse également dans le contenu éditorial de votre site (chemin vers une image ou autre lien hypertexte). Dans ce cas la méthode la plus simple est de lancer un remplacement automatisé de votre ancien nom de domaine vers votre nouveau dans le fichier SQL, entre son export depuis son ancien emplacement,​ et son import sur le nouveau serveur. Vous pouvez effectuer cela par exemple avec un éditeur de texte ou avec la commande [[:sed]] :
 +<​code>​sed -i "​s/​http\:​\/​\/​ancien\.example\.com/​https\:​\/​\/​nouveau\.example\.com/​g"​ wordpress.sql</​code>​
  
 ==== Mot de passe administrateur perdu ==== ==== Mot de passe administrateur perdu ====
  
 Vous pouvez modifier le mot de passe de l'​administrateur WordPress en vous connectant à la console MySQL Vous pouvez modifier le mot de passe de l'​administrateur WordPress en vous connectant à la console MySQL
-<​code>​sudo mysql -u root</​code>​+<​code>​sudo mysql</​code>​
 Puis en entrant les commandes suivantes : Puis en entrant les commandes suivantes :
-<​code>​USE wordpress;+<​code ​mysql>USE wordpress;
 UPDATE wp_users SET user_pass=MD5('​mot_de_passe'​) WHERE user_login = '​admin';​ UPDATE wp_users SET user_pass=MD5('​mot_de_passe'​) WHERE user_login = '​admin';​
 EXIT</​code>​ EXIT</​code>​
-où //wordpress// est le nom de votre base de données, ​//admin// le nom d'​utilisateur de l'​administrateur,​ et //mot_de_passe// est votre nouveau mot de passe. +où ''​wordpress'' ​est le nom de votre base de données, ​''​admin'' ​le nom d'​utilisateur de l'​administrateur,​ et ''​mot_de_passe'' ​est votre nouveau mot de passe.
-===== Liens utiles =====+
  
-  ​* [[http://​fr.wordpress.org/​|fr.wordpress.org]] : site officiel +===== Aller plus loin ===== 
-  * [[http://​wpfr.net/​|wpfr.net]] : communauté francophone + 
-  * [[http://​www.geekeries.fr/​|www.geekeries.fr]] : présentations de ressources WordPress+==== Multisite ==== 
 + 
 +WordPress permet de gérer plusieurs sites depuis une instance unique. Cette fonctionnalité consiste à afficher différents contenus et différents thèmes en fonction du nom de domaine appelé. On peut ainsi gérer plusieurs sites distincts pour les internautes depuis une interface unique et un même compte administrateur. De plus on a un seul [[:CMS]] à maintenir à jour. 
 + 
 +Pour que cela fonctionne il faut avant tout que les différents [[wpfr>​https://​fr.wikipedia.org/​wiki/​Nom_de_domaine|noms de domaine]] pointent tous sur votre serveur web.\\ 
 +Il faut également que notre serveur web affiche WordPress pour chacun de ces noms de domaine. Si on utilise [[:​apache2|Apache]] il faut par ex. ajouter chacun de ces noms de domaine à la directive [[https://​httpd.apache.org/​docs/​2.4/​fr/​mod/​core.html#​serveralias|ServerAlias]] de notre [[:​apache2#​hotes_virtuels|VirtualHost]]. 
 + 
 +Voici un exemple grâce auquel WordPress pourra prendre en charge les domaines ''​example.com'',​ ''​example.org'',​ ainsi que n'​importe quel sous-domaine de ''​example.com''​ : 
 + 
 +<file - wordpress.conf><​VirtualHost *:80> 
 +        ServerName example.com 
 +        ServerAlias example.org *.example.com 
 +        DocumentRoot /​var/​www/​wordpress 
 +        <​Directory /​var/​www/​wordpress>​ 
 +                AllowOverride all 
 +                Require all granted 
 +        </​Directory>​ 
 +        ErrorLog /​var/​log/​apache2/​error.wordpress.log 
 +        CustomLog /​var/​log/​apache2/​access.wordpress.log combined 
 +</​VirtualHost></​file>​ 
 + 
 +Une fois ce fichier modifié on recharge la configuration d'​[[:​apache2|Apache]] : 
 +<​code>​sudo systemctl reload apache2</​code>​ 
 + 
 +==== WP-CLI === 
 + 
 +Comme indiqué sur la page d'​accueil du projet : "​[[https://​wp-cli.org/​fr/​|WP-CLI]] est un ensemble d’outils en ligne de commande pour gérer vos installations WordPress. Vous pouvez mettre à jour les extensions, configurer des installations multisite et beaucoup plus sans avoir recours à un navigateur web."​ 
 + 
 +Comme WP-CLI est exécuté par l'​utilisateur Linux courant, cela permet par ex. d'​améliorer la sécurité de WordPress en effectuant ses mises à jour malgré des permissions plus strictes pour le serveur. Ou encore d'​écrire des scripts [[:​tutoriel:​script_shell|bash]] ou [[:Make]] pour déployer WordPress de manière automatisée (WP-CLI permet par ex. d'​exporter / importer la base de données en remplaçant au passage toutes les occurrences de l'URL locale par celle du nom de domaine de production, et d'​activer ou de désactiver des plugins). 
 + 
 +==== Composer ==== 
 + 
 +Il existe deux projets permettant de déployer WordPress au moyen de [[:​Composer]]. Il s'agit de [[https://​roots.io/​bedrock/​|Bedrock]] et [[https://​wordplate.github.io/​|WordPlate]]. Ce sont des options très pratiques en particulier pour les développeurs web. En plus de simplifier l'​installation ils intègrent de nombreux outils et le dépôt [[https://​wpackagist.org/​|WordPress Packagist]] qui permet d'​installer les extensions et les thèmes de WordPress comme de simples librairies PHP. 
 + 
 +Les deux projets sont légèrement différents,​ vous trouverez de très bons tutoriels en français [[https://​www.grafikart.fr/​tutoriels/​wordpress-bedrock-1305|ici pour Bedrock]] et [[https://​www.grafikart.fr/​tutoriels/​wordplate-973|là pour Wordplate]]. 
 + 
 +===== Voir aussi ===== 
 + 
 +  ​* [[https://​fr.wordpress.org/​|fr.wordpress.org]] : site officiel 
 +  * [[https://​wpfr.net/​|wpfr.net]] : communauté francophone 
 +  * [[https://​www.geekeries.fr/​|www.geekeries.fr]] : présentations de ressources WordPress
   * [[https://​www.grafikart.fr/​tutoriels/​wordpress|www.grafikart.fr]] : tutoriels pour les développeurs   * [[https://​www.grafikart.fr/​tutoriels/​wordpress|www.grafikart.fr]] : tutoriels pour les développeurs
  
----- +----
  
 //​Contributeurs : [[:​utilisateurs:​krodelabestiole]],​ [[:​utilisateurs:​psychederic|Psychederic]]//​ //​Contributeurs : [[:​utilisateurs:​krodelabestiole]],​ [[:​utilisateurs:​psychederic|Psychederic]]//​
  • wordpress.1529186585.txt.gz
  • Dernière modification: Le 17/06/2018, 00:03
  • par krodelabestiole