Jean ROCHARD
Je partage ma passion de Wordpress dans des articles techniques sur les plugins, thèmes, nouveautés geek et optimisation SEO "on-site".
Jean ROCHARD

@jean_rochard

Chez Terre Digitale, on mange du Wordpress dès le petit-dej'.
Petit guide pour mettre en place les Facebook Instant Articles à partir de vos posts Wordpress : https://t.co/lSbzdM6z9j - 7 mois ago

Dans l’article sur comment choisir un hébergement pour votre site wordpress, je vous ai parlé du choix de Gandi et de son offre « simple hosting » qui est, selon moi, à la fois grand public (et donc abordable) et à la fois efficace et performante. Seul hic, pas d’installation en 1-clic de WordPress et donc des manipulations à prévoir (ce qui vaut souvent mieux d’ailleurs qu’une mauvaise installation rapide…). Aujourd’hui, on va aller plus vite avec WP-CLI !

Je précise que je n’ai aucune action ni programme d’affiliation avec gandi, c’est juste un choix parmi tant d’autres que je vous propose dans ce tutoriel. 1&1 propose par exemple WP-CLI pré-installé ; vous pourriez aussi adapter ce script pour le faire fonctionner sur un de leur hébergement wordpress. La console SSH d’OVH fonctionnerait également.

Que fait ce script ?

Pour  passer d’une installation qui dure 40 minutes à une installation réalisée en 3 minutes, je vous donne mon script WP-CLI qui va vous installer WordPress, le paramétrer, le nettoyer et installer des plugins en 1 seule ligne de commande. Oui, c’est possible !

Vous pouvez voir le script ici. Voici ce qu’il fera pour vous et avec une seule ligne de commande :

  • Nettoyage d’une installation précédente (fichiers, base de données et user mysql supprimés pour le nom de base passé en paramètre en considérant que le user a le même nom que la base)
  • création de la base de données et du user
  • téléchargement de la dernière version de WordPress en Français
  • création du fichier wp-config.php (avec préfixes de table « site_ » au lieu de « wp_ » )
  • installation initiale de WordPress
  • paramétrage des permaliens en structure /%postname%/ (avec modification du .htaccess)
  • paramétrage du site en invisible pour les moteurs de recherche (noindex)
  • paramétrage de la timezone à celle de Paris
  • nettoyage des articles et pages par défaut
  • nettoyage des widgets par défaut
  • nettoyage de akismet et hello dolly
  • nettoyage des thèmes twentythirteen et twentyfourteen (on ne garde que twentyfifteen)
  • installation et activation de ma liste de plugins (à ajouter manuellement : redirection et ithemes-security) :
    • wordpress-seo (yoast) pour le référencement
    • backwpup pour le backup
    • black-studio-tinymce-widget pour avoir un éditeur visuel de widgets
    • contact-form-7 et really-simple-captcha pour les formulaires de contact
    • ewww-image-optimizer pour optimiser les images
    • ricg-responsive-images pour avoir des images réellement adaptatives
    • wp-optimize pour nettoyer sa base de données
    • rel-nofollow-checkbox pour avoir une option « nofollow » pour les liens
    • disable-emojis pour supprimer une fonctionnalité inutile à partir de WordPress 4.2
    • wp-htaccess-editor pour éditer le htaccess directement dans WordPress
    • varnish-http-purge pour gérer la purge du cache varnish de gandi
    • automatic-updater pour automatiser les mises à jour
  • installation non activée de :
    • W3-totalcache pour le plugin de cache
    • Autoptimize pour la minification du code
    • zero-spam pour l’anti-spam des commentaires (non activé)
  • paramétrage de ewww-image-optimizer (suppression exif)
  • création d’un fichier robots.txt optimisé pour WordPress, avec lien vers le sitemap par défaut de wordpress-seo
  • protection par .htaccess contre brute force attacks avec création d’un fichier .htpasswd (à la racine du répertoire virtuel et pas dans le répertoire web) et mises à jour de 2 fichiers .htaccess (celui à la racine du répertoire web et un dans wp-admin)
  • déplacement du fichier wp-config.php à la racine et chmod 600 sur celui ci (opération de sécurité)

En option (à décommenter dans le code du script en enlevant le # au début des lignes) :

  • création et activation d’un thème enfant pour twenty fifteen
  • création de 3 pages de contenus (Accueil, A propos, Contact)
  • intégration du shortcode contactform7 dans la page « Contact »
  • création d’un menu principal avec ces 3 pages
  • positionnement de la page « Accueil » comme page statique d’atterrissage du site

Enfin, le script se terminera par un étape de nettoyage des fichiers de configuration créés.

Qu’est ce que WP-CLI ?

WP-CLI est un outil qui va permettre d’administrer WordPress entièrement en lignes de commande. Il est donc très pratique pour réaliser des scripts d’installation et de paramétrage et pour automatiser ses processus (mises à jour, maintenances d’une flotte de sites…).

Suivez bien les étapes ci dessous maintenant.

1) Créer une instance Gandi Simple Hosting

Pour simplifier les choses, je vous propose de choisir votre nom de domaine et votre hébergement « Simple Hosting » chez Gandi. Ce n’est pas obligatoire mais cela évite un paramétrage de DNS pour lier votre nom de domaine à votre hébergement. Pour ce faire, suivez le processus en vous aidant de ce guide si besoin.

Une fois vos achats réalisés, l’espace d’hébergement lié à votre nom de domaine (répertoire virtuel) est créé par défaut. Si c’est un autre nom de domaine que vous souhaitez lier à votre hébergement, suivez ce tutoriel.

2) Executer le script sur votre serveur

BENE FACERE vous garantit que son script n’est pas malveillant mais il peut encore comporter des bugs ou ne pas prendre en compte toutes les configurations possibles. Il va supprimer / modifier / ajouter des fichiers et intervenir sur une base de données (suppression / ajout de user et de base). Il vous est proposé gratuitement et son exécution se fait sous votre responsabilité. BENE FACERE ne pourra être tenu responsable de tout problème faisant suite à son utilisation sur votre serveur. Lancer ce scipt implique la lecture et l’acceptation de cet avertissement.

Dans votre interface gandi, activez l’accès SSH :

consoleSSH

Il nous faut maintenant un outil qui va vous permettre de vous connecter à votre serveur en SSH et d’utiliser les lignes de commande. Si vous utilisez Firefox, vous pouvez installer l’extentsion FireSSH. Pour Chrome, l’extension SSH est ici. Cliquez alors sur le lien « se connecter » de la ligne « Console SSH » et saisissez le paramétrage (host : console.dc0.gpaas.net, puis login et mot de passe).

Sinon, vous pouvez aussi installer putty sur votre ordinateur Windows (c’est la solution que je vous conseille). Attention par contre, ne changez pas la taille de votre fenêtre putty car cela perturbera l’affichage du terminal.

Une fois connecté sur votre serveur, rendez-vous à la racine de votre répertoire virtuel (mais PAS dans htdocs) avec la commande suivante, puis téléchargez le script :

cd web/vhosts/VOTRE_NOM_DE_DOMAINE
curl -O https://raw.githubusercontent.com/benefacere/wpgandi/master/wpgandi.sh

Il reste à l’exécuter avec les paramètres suivants (séparés par un espace et dans l’ordre) :

  • nom de la base de données du site Worpdress (le user mysql sera identique)
  • user admin du site wordpress
  • mail du user admin du site WordPress

Cela donne (il vous faudra juste remplacer ces arguments par vos propres valeurs) :

bash wpgandi.sh dbname wpuser wpmail

Le script va vous demander immédiatement un password, c’est celui de la base de données. Si vous n’avez rien paramétré manuellement à ce niveau, validez simplement par la touche « Entrée », sinon saisissez le. Et c’est parti ! Le résultat va ressembler à cela :

consolewpgandi

Une erreur possible est que le script ne trouve pas la version française de WordPress ; dans ce cas il faut éditer le script et forcer la version à la dernière version mineure (exemple : revenir à la 4.2 à la place de la 4.2.1 en ajoutant –version=4.2 à la ligne avec « core download » ).

Enfin, quand il est terminé, récupérez bien les mots de passe qui ont générés et supprimez le script :

rm wpgandi.sh

Vous pouvez tester votre site, il est prêt à être développé ! Personnellement, je créé souvent les sites directement sur l’hébergement plutôt qu’en local (ou sur un hébergement temporaire lorsqu’il s’agit d’une refonte) car je trouve que c’est la solution la plus productive pour réaliser un site vitrine qui aura peu ou pas de développement spécifique et qui sera livré dans le mois suivant le démarrage du projet.

N’hésitez pas à me laisser vos commentaires ou propositions d’amélioration.

PS : merci à WP-SPREAD pour son article sur WP-CLI !