{{tag>serveur internet cms}} ---- {{ http://upload.wikimedia.org/wikipedia/commons/c/ca/Wordpress-logo.png?245}} ====== WordPress ====== [[wpfr>WordPress]] est le [[:CMS]] le plus utilisé du monde. En 2018 il représente presque un tiers des sites Internet ! C'est un projet né en 2003, ce qui est ancien pour une technologie du [[:Web]]. Cause et conséquence de cette gigantesque communauté : il propose une quantité sidérante d'extensions qui étendent ses fonctionnalités au delà du raisonnable (plus de 54000 plugins sur le dépôt officiel en 2018). [[https://codex.wordpress.org/images/e/e1/twentyelevendefault1.png|{{https://codex.wordpress.org/images/e/e1/twentyelevendefault1.png?0x200}}]] [[https://codex.wordpress.org/images/e/e1/dashboard-welcome.png|{{https://codex.wordpress.org/images/e/e1/dashboard-welcome.png?0x200}}]] [[https://codex.wordpress.org/images/9/99/pages-edit-page.png|{{https://codex.wordpress.org/images/9/99/pages-edit-page.png?0x200}}]] [[https://codex.wordpress.org/images/0/08/managefiles.png|{{https://codex.wordpress.org/images/0/08/managefiles.png?0x200}}]] [[https://codex.wordpress.org/images/f/fa/appearance-install-theme-step1.png|{{https://codex.wordpress.org/images/f/fa/appearance-install-theme-step1.png?0x200}}]] Il ne faut pas confondre //[[https://fr.wordpress.com/|WordPress.com]]// qui est une plateforme de blog commerciale gérée par [[wpfr>Automattic]], et //WordPress//, le CMS dont il est question ici et dont le site officiel est [[https://fr.wordpress.org/|fr.wordpress.org]]. ===== Installation ===== 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]]. La plupart des hébergeurs web proposent une installation de WordPress simplifiée ("//en 1 clic//"). WordPress étant une solution destinée à être déployée sur un serveur, toutes les manipulations dont nous traiterons ici se feront en ligne de commande. ==== Prérequis ==== Pour installer WordPress vous aurez besoin d'un [[:web#serveurs|serveur HTTP]], de [[:PHP]], et d'un serveur de base de données MySQL ([[:MySQL]] ou [[:MariaDB]]). Sur un hébergement web géré par l'hébergeur, ces prérequis devraient déjà être en place, donc toutes ces étapes devraient être inutiles. N'hésitez pas à contacter le support de l'hébergeur si ce n'est pas le cas. [[:apache2|Apache]] est le serveur HTTP le plus couramment utilisé, et cette configuration (en conjonction avec MySQL et PHP) s'appelle une pile [[:LAMP|LAMP]]. Donc pour installer [[:apache2|Apache]], [[:PHP]] et [[:MySQL]] ou [[:MariaDB]], suivez [[:LAMP#installation|cette documentation]]. Une fois la pile [[:LAMP]] installée (avec les modules PHP les plus courants), on active le module [[:apache2#mod_rewrite]], dont a aussi besoin WordPress : sudo a2enmod rewrite Nous allons ensuite créer un [[:apache2#hotes_virtuels|hôte virtuel]] pour WordPress, dont la racine sera ///var/www/wordpress// : sudo nano /etc/apache2/sites-available/wordpress.conf Ce qui ouvre avec [[:nano|l'éditeur nano]] un fichier dans lequel nous allons coller : ServerName wordpress DocumentRoot /var/www/wordpress AllowOverride all Require all granted ErrorLog /var/log/apache2/error.wordpress.log CustomLog /var/log/apache2/access.wordpress.log combined Si un nom de domaine pointe sur le serveur, on l'indique à la place de //wordpress// pour la directive //ServerName//.\\ (//Ctrl+X// puis //O// pour quitter en sauvegardant) Finalement, on active l'hôte virtuel et on recharge la configuration d'Apache : sudo a2ensite wordpress sudo systemctl reload apache2 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// : 127.0.0.1 wordpress Si votre serveur est sur le [[:Web]], pensez à [[:apache2#securite|sécuriser]] l'accès au site en particulier en forçant [[:apache2#HTTPS]]. ==== Installation de WordPress ==== === Copie des fichiers === Tout d'​abord téléchargeons la dernière version de WordPress : wget https://fr.wordpress.org/wordpress-latest-fr_FR.zip Ensuite nous allons extraire le contenu du zip à la racine de notre hôte virtuel (///var/www/wordpress// dans cet exemple) : sudo unzip wordpress-latest-fr_FR.zip -d /var/www On va renforcer légèrement la sécurité en attribuant des [[[[:apache2#permissions|droits]] un peu restrictifs aux fichiers : sudo chown www-data:www-data /var/www/wordpress -R sudo find /var/www/wordpress -type d -exec chmod 755 {} \; sudo find /var/www/wordpress -type f -exec chmod 644 {} \; (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 === Pour créer la base de données qu'utilisera WordPress, le plus simple est de se connecter avec le client [[:MySQL]] : sudo mysql -u root On arrive alors sur la console SQL sur laquelle nous allons entrer ces commandes (en remplaçant //mot_de_passe//) : CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO 'WordPress'@'localhost' IDENTIFIED BY 'mot_de_passe'; FLUSH PRIVILEGES; EXIT 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. === 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. Cliquez sur //C'est parti !// et renseignez les différents champs : * **Nom de la base de données** : //wordpress// * **Identifiant** : //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 //WordPress//) * **Adresse de la base de données** : //localhost// * **Préfixe des tables** : //wp_// Après avoir cliqué sur //Lancer l'installation//, on tombe sur un second formulaire. Il s'agit cette fois de définir un administrateur pour WordPress. Les champs sont assez clairs.\\ Le **titre du site** sera visible par les internautes.\\ Concernant le **mot de passe** il est conseillé de conserver celui proposé par défaut qui est très fort. Vous pouvez par exemple le sauvegarder dans un gestionnaire de mots de passe tel que [[:keepassx|KeePass]].\\ Il est conseillé également de renseigner une **adresse de messagerie** existante, ce qui vous permettra de récupérer votre mot de passe en cas de perte, ou de faire fonctionner les notifications par courriel. ===== Utilisation ===== ==== Extensions ==== Pour installer des extensions, depuis l'administration allez sur //Extension// -> //Ajouter// : vous aurez accès à toutes les extensions de la [[https://wordpress.org/plugins/browse/popular/|base de données officielle de WordPress]]. Nous n'allons évidemment pas dresser la liste exhaustive des plus de 50000 extensions disponibles, mais certaines d'entre elles sont incontournables : * //**[[https://fr.wordpress.org/plugins/wp-super-cache/|WP Super Cache]]**// : confère à WordPress une fonctionnalité d'optimisation indispensable pour accélérer l'affichage du site, et alléger la charge de travail côté serveur. * //**[[https://fr.wordpress.org/plugins/wp-force-ssl/|WP Force SSL]]**// : force l'utilisation de [[:apache2#HTTPS]], ce qui évite que le contenu web et les variables d'identifications des utilisateurs transitent en clair sur Internet. * //**[[https://fr.wordpress.org/plugins/polylang/|Polylang]]**// : incontournable pour les sites multilingues. La qualité des extensions de WordPress est très variable. De plus, chacune est potentiellement source de lenteurs et de failles de sécurités. N'installez que des extensions qui vous sont indispensables et en lesquelles vous avez confiance. ==== Thèmes ==== Pour installer un thème, depuis l'administration allez sur //Apparence// -> //Thèmes// -> //Ajouter// : vous aurez accès à tous les thèmes de la [[https://wordpress.org/themes/|base de données officielle de WordPress]]. 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. ==== 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 ===== ==== Mot de passe administrateur perdu ==== Vous pouvez modifier le mot de passe de l'administrateur WordPress en vous connectant à la console MySQL sudo mysql -u root Puis en entrant les commandes suivantes : USE wordpress; UPDATE wp_users SET user_pass=MD5('mot_de_passe') WHERE user_login = 'admin'; EXIT 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 * [[http://wpfr.net/|wpfr.net]] : communauté francophone * [[http://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 ---- //Contributeurs : [[:utilisateurs:krodelabestiole]], [[:utilisateurs:psychederic|Psychederic]]//