esup-multi

Arborescence des pages

Vous regardez une version antérieure (v. /wiki/spaces/ESUPMULTI/pages/1480556577/Installer+et+configurer+Wordpress) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 18) afficher la version suivante »


Documentation en cours de rédaction / reconstruction

TODO:

  • Rédaction d'un contenu multilingue
  • GraphQL
    • Création compte GraphQL en lecture seule + création d'un token d'accès
    • Exemple de requête
  • Pour aller plus loin
    • Création d'un nouveau custom type => plugin Multi Custom Types
    • Création d'un nouveau custom field => plugin Multi Custom Types
    • Ajouter des champs traduisibles => plugin Multi Custom Types

Installation locale

La version fournie avec Multi permet une installation locale rapide avec Docker.

services:

  wordpress-db:
    container_name: wordpress-db
    image: bitnami/mariadb:latest
    volumes:
      - ./wp-data/mariadb_data:/bitnami/mariadb
    environment:
      MARIADB_ROOT_PASSWORD: rootpassword
      MARIADB_DATABASE: wordpress
      MARIADB_USER: wordpress
      MARIADB_PASSWORD: wordpress
    ports:
      - '3306:3306'
    networks:
      - wordpress-network

  wordpress:
    container_name: wordpress
    image: bitnami/wordpress:latest
    restart: unless-stopped
    ports:
      - '9090:8080'
    networks:
      - wordpress-network
    environment:
      # Variables spécifiques à Bitnami WordPress
      WORDPRESS_BLOG_NAME: "Mon Blog"
      WORDPRESS_USERNAME: admin
      WORDPRESS_PASSWORD: password
      WORDPRESS_EMAIL: admin@example.com
      WORDPRESS_BLOG_URL: http://localhost:9090
      WORDPRESS_SKIP_INSTALL: ${WORDPRESS_SKIP_INSTALL:-no}
      WORDPRESS_TABLE_PREFIX: wp_
      WORDPRESS_INSTALL_LOCALE: 'fr_FR' # Propre au script init-wordpress.sh

      # Connexion à la base de données
      WORDPRESS_DATABASE_HOST: wordpress-db
      WORDPRESS_DATABASE_PORT_NUMBER: 3306
      WORDPRESS_DATABASE_USER: wordpress
      WORDPRESS_DATABASE_PASSWORD: wordpress
      WORDPRESS_DATABASE_NAME: wordpress

      # Variables supplémentaires
      WORDPRESS_EXTRA_WP_CONFIG_CONTENT: |
        define('WP_ENVIRONMENT_TYPE', 'local');
        define('WP_DEBUG_DISPLAY', false);

      # Sécurité supplémentaire avec un serveur proxy Nginx
#      NGINX_UPLOADS_PROXY: 'http://localhost:8080'
#      WORDPRESS_HTACCESS_OVERRIDE_NONE: no
#      WORDPRESS_ENABLE_HTACCESS_PERSISTENCE: yes

    volumes:
      - ./wp-data/wordpress_data:/bitnami/wordpress
      - ./docker-entrypoint-init.d:/docker-entrypoint-init.d:ro
#      - ./wp-data/uploads:/var/www/html/wp-content/uploads # Ne pas monter directement dans /opt/bitnami/wordpress/wp-content/ car sinon l'init de l'image tombe en erreur
    depends_on:
      - wordpress-db

#  nginx:
#    container_name: nginx
#    image: nginx:latest
#    ports:
#      - '8080:80'
#    volumes:
#      - ./nginx.conf:/etc/nginx/nginx.conf:ro
#      - ./wp-data/uploads:/var/www/html/wp-content/uploads:ro
#    networks:
#      - wordpress-network
#    depends_on:
#      - wordpress

networks:
  wordpress-network:

Modifier les variables d'environnement du fichier pour coller à la configuration souhaitée puis monter les images docker via :

$ docker compose up -d

Votre instance de Wordpress devrait alors être accessible à l'adresse : http://localhost:9090 

La configuration Nginx permet de créer un proxy afin de délivrer les assets de manière statique. Elle n'a pas trop d'utilité sur une installation locale.
Cf plus bas pour configurer Nginx sur serveur.

Configurer Wordpress

A la première connexion il est important de suivre la configuration suivante, en essayant de respecter l'ordre pour éviter tous éventuels problèmes ou effets de bord inattendus vis à vis de l'utilisation un peu particulière qui est faite du CMS

Configurer les langues disponibles

Dans le menu latéral gauche, cliquez sur Langues > Configuration.

Sélectionnez les langues dont vous avez besoin et cliquez sur le bouton Ajouter une nouvelle langue

Cliquez sur Continuer
N'autorisez pas la traduction des médias, puis revenir à l'administration en cliquant sur le bouton Retour au tableau de bord.

Il est nécessaire ensuite de sélectionner les collections qui bénéficieront des traductions. Pour cela, dans le menu latéral gauche, cliquez sur Langues > Réglages, puis dépliez la section Types de publication personnalisés et taxonomies.

Sélectionnez les collections suivantes :

  • Canaux de notifications (channels)
  • Formulaire de contact (contact_us)
  • Informations importantes (important_news)
  • Page de login (login)
  • Services (features)
  • Pages statiques (static_pages)
  • Widgets (widgets)

Puis cliquez sur Enregistrer les modifications

Enfin dans le menu supérieur, cliquez sur Afficher toutes les langues et sélectionnez Français. Ceci permettra de n'afficher que le contenu en français dans le listing des articles.

Vérifier les mises à jour

Cliquer sur Mises à jour dans le menu latéral gauche et vérifier si des maj sont disponibles pour le core mais aussi les plugins et les traductions.

Si oui alors procédez aux mises à jour.

On vérifie les mises à jour après la configuration des langues car l'utilisation de nouvelles langues va débloquer les mises à jour de nouveaux fichiers de langues.

Configurer Pods

Par défaut, Wordpress ne propose que 4 types par défaut : Articles, Médias, Pages et Commentaires. On ne peut pas y toucher n'y même y ajouter des champs.
Pods est donc l'extension qui nous permet de créer des collections personnalisées dans Wordpress. 

Lien vers le plugin : https://fr.wordpress.org/plugins/pods/

Le plugin multi-wordpress-config permet déjà un paramétrage automatique assez conséquent de Pods, mais certaines options doivent tout de même être sélectionnées manuellement.

Rendez vous dans Pods Admin > Composants puis désactivez le composant Templates. Étant donné que nous allons faire une utilisation headless de Wordpress, cette fonctionnalité ne nous sera pas utile.

De même, au niveau de Pods Admin > Réglages vous pouvez passer la fonctionnalité Dynamic Features à Disable All Dynamic Features in Pods (penser à enregistrer la modification avec le bouton en bas de page)

Configurer WPGraphQL

Par défaut, Wordpress ne propose que du REST comme API disponible.
Pour pouvoir interfacer le connecteur CMS avec, qui lui gère les échanges en GraphQL, il est nécessaire d'utiliser un plugin supplémentaire : WPGraphQL

Liens vers le plugin : https://wordpress.org/plugins/wp-graphql/

Normalement, à l'ouverture de l'administration de Wordpress, vous devriez voir un bloc en haut de la page vous demandant d'aider WPGraphQL en envoyant des données, cliquez sur le bouton No Thanks.

Ensuite, rendez vous dans GraphQL > Settings puis modifiez la configuration comme suit :

  • Restrict Endpoint to Authenticated Users : Cochez la case "Limit the execution of GraphQL operations to authenticated requests..."
  • Enable Batch Queries : Décochez la case "WPGraphQL supports batch queries..."
  • Enable GraphiQL IDE : Décochez la case "GraphiQL IDE is tool for exploring the GraphQL Schema and test GraphQL operations..."
  • GraphiQL IDE Admin Bar Link : Décochez la case "Show GraphiQL IDE Link in the Wordpress Admin Bar."

Pensez à enregistrer en cliquant sur le bouton Enregistrer les modifications en bas de page.

Vous pouvez réactiver les 2 derniers points si des fois vous voulez faire des essais de requêtes GraphQL sur votre structure.

Importer les données

L'image Wordpress sur le projet Multi est accompagnée d'un set de données. Vous pourrez les trouver dans le dossier env/local/docker/wordpress/imports/.
Le fichier 0 - data.xml contient l'ensemble des données pour toutes les collections présentes. Si vous ne souhaitez pas importer toutes les données mais seulement celles de quelques collections, vous trouverez un fichier de données par collection.
Il est cependant recommandé de respecter l'ordre suggéré par les numéros de fichiers car certains jeux de données dépendent d'autres collections.

Pour importer les données dans Wordpress, sélectionnez Outils > Importer dans la barre latérale gauche, puis cliquez sur Lancer l'outil d'importation en bas du bloc.

Cliquez ensuite sur Choisir un fichier et sélectionnez le fichier de données souhaité. Puis cliquez sur Téléverser et importer le fichier.
Enfin sur la page suivante, sélectionner admin (admin) à assigner aux articles et cliquer sur le bouton Envoyer (ne pas cocher Téléverser et importer les fichiers joints).

Optimisation et sécurité du CMS

Désactiver toutes les options relatives aux commentaires

Les commentaires n'étant d'aucune utilité dans notre cas d'usage, toutes les options en rapport peuvent être désactivées.

Dans la barre latérale gauche, Réglages > Commentaires et décochez les options inutiles.

Santé du site

Wordpress met à disposition un outil permettant d'améliorer les performances et la sécurité. Pour cela, cliquez sur Outils > Santé du site dans la barre latérale gauche et suivez les suggestions afin d'améliorer le fonctionnement de votre instance.

Erreurs rencontrées

Failed to execute /docker-entrypoint-init.d/init-wordpress.sh

Vérifier les droits sur le fichier init-wordpress.sh

chmod 755 init-wordpress.sh
chmod +x init-wordpress.sh


  • Aucune étiquette