Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

« Installer Drupal avec Composer » : différence entre les versions

De AJLSM
Aller à la navigation Aller à la recherche
 
Ligne 253 : Ligne 253 :
<syntaxhighlight lang="bash">$ drush cr</syntaxhighlight>
<syntaxhighlight lang="bash">$ drush cr</syntaxhighlight>
Modifier le password :
Modifier le password :
<syntaxhighlight lang="bash">$ drush user-password admin "motdepasse"</syntaxhighlight>
<syntaxhighlight lang="bash">$ drush upwd admin "motdepasse"</syntaxhighlight>
Créer un nouvel utilisateur et password :
Créer un nouvel utilisateur et password (user:create) :
<syntaxhighlight lang="bash">$ drush ucrt root --password="motdepasse"</syntaxhighlight>
<syntaxhighlight lang="bash">$ drush ucrt root --password="motdepasse"</syntaxhighlight>



Dernière version du 9 mars 2023 à 13:59

Installation de Drupal pour Pleade, avec composer =

[modifier | modifier le wikicode]

La documentation se trouve ici : https://github.com/drupal-composer/drupal-project

Un projet GitHub permet de créer une installation Drupal de base, pilotée par Composer.

https://github.com/drupal-composer/drupal-project

Composer doit être installé préalablement en local ou globalement.

Voici la commande à lancer (dans le répertoire où l'on veut installer Drupal) pour faire une installation basique de Drupal avec Composer :

$ composer create-project drupal/recommended-project <nom du projet>

Ou pour installer une version particulière

$ composer create-project drupal/drupal-project:<version de drupal à installer. Exemple : >9.3.2 <nom du projet>

Création de la base de données MySQL du projet

[modifier | modifier le wikicode]

Avant de finaliser l'installation de Drupal, il faut créer la base de données MySQL pour le projet. Avec l'utilisateur root :

$ mysql -u root -p

Saisir le mot de passe MySQL.

Dans MySQL :

mysql> drop database [nom-du-projet]_drupal; create database [nom-du-projet]_drupal default character set utf8 default collate utf8_general_ci; grant all privileges on [nom-du-projet]_drupal.* to ajlsm@localhost

Par exemple, pour le projet apbp :

mysql> drop database apbp_drupal; create database apbp_drupal default character set utf8 default collate utf8_general_ci; grant all privileges on apbp_drupal.* to ajlsm@localhost

Ensuite :

mysql> quit;

Création du FQDN

[modifier | modifier le wikicode]

Créer le nom de domaine et le faire pointer vers le serveur où se trouve Drupal.

Création de la configuration apache

[modifier | modifier le wikicode]

Créer le fichier de configuration :

$ cd /etc/apache2/sites-available
$ touch [FQND].conf (par exemple : touch apbp.pleade.com.conf)
$ sudo vim [FQND].conf (par exemple : sudo vim apbp.pleade.com.conf)

Le fichier de configuration doit avoir les droits suivants :

$ -rw-r--r-- 1 root root ...

Ajouter au minimum la configuration suivante :

<VirtualHost *:80>
        ServerName [FQFN] (par exemple : ServerName apbp.pleade.com)
        LimitRequestFieldSize 81920
        ProxyIOBufferSize 8192

        RewriteEngine On
        RewriteOptions inherit

  ### Drupal ###
  DocumentRoot  /[PATH-VERS-DRUPAL-DU-PROJET/web (par exemple : DocumentRoot  /home/ajlsm/recette/pau-bearn-pyrennes/drupal/apbp/web)
  <Directory "/[PATH-VERS-DRUPAL-DU-PROJET/web"> (par exemple : <Directory "/home/ajlsm/recette/pau-bearn-pyrennes/drupal/apbp/web">)
   <IfModule mod_version.c>
     <IfVersion < 2.4>
       Order allow,deny
       Allow from all
     </IfVersion>
     <IfVersion >= 2.4>
        Options Indexes FollowSymLinks MultiViews
       Require all granted
        AllowOverride All
     </IfVersion>
   </IfModule>
  </Directory>

        AddDefaultCharset utf-8
        ErrorLog /var/log/apache2/[nom-du-projet].errors.log (par exemple : ErrorLog /var/log/apache2/apbp.errors.log)
        CustomLog /var/log/apache2/[nom-du-projet].access.log combined (par exemple : CustomLog /var/log/apache2/apbp.access.log combined)
        
</VirtualHost>

Activer la configuration apache :

$ sudo a2ensite [FQND].conf (par exemple : sudo a2ensite apbp.pleade.com.conf)

Relancer le service Apache :

$ sudo service apache2 reload

Finalisation de l'installation de Drupal

[modifier | modifier le wikicode]

Aller à l'URL du FQDN, par exemple http://apbp.pleade.com/ L'installation de Drupal se fait depuis l'interface et suppose la création de certains fichiers et leur modification. Si vous ne réalisez pas toutes les étapes suivantes au préalable, elles seront demandées lors de la finalisation de l'installation depuis l'interface de Drupal.

Création du répertoire sites/default/translations

[modifier | modifier le wikicode]

Dans le répertoire du projet Drupal :

$ cd web/sites/default/
$ mkdir files
$ cd files/
$ mkdir translations

Création des fichiers de configuration

[modifier | modifier le wikicode]

On re-copie les fichiers de configuration par défaut, puis on les modifie :

$ cd default/
$ cp default.settings.php settings.php
$ cp default.services.yml services.yml

Modification des droits du répertoire /web/sites/defaut

[modifier | modifier le wikicode]

Pour poursuivre l'installation, on modifie provisoirement les droits d'écriture :

$ cd ../
$ sudo chmod -R 777 default

Modification de la configuration de setting.php

[modifier | modifier le wikicode]
$ vim settings.php

Ajouter en bas du fichier, au minimum, la configuration d'accès à la base de données :

/**
 * Dans la configuration ci-dessous, remplacer nom-du-projet (en conservant _drupal) et mot-de-passe, par les bonnes valeurs
 */
$config_directories['sync'] = '../config/sync';
$databases['default']['default'] = array (
  'database' => 'nom-du-projet_drupal',
  'username' => 'ajlsm',
  'password' => 'mot-de-passe',
  'prefix' => '',
  'host' => 'localhost',
  'port' => '3306',
  'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
  'driver' => 'mysql',
);

$settings['config_sync_directory'] = '.';

Changer les droits d'écriture des fichiers de configuration

[modifier | modifier le wikicode]
$ cd ../
$ sudo chmod 555 default
$ cd default/
$ sudo chmod 644 settings.php
$ sudo chmod 644 services.yml

Poursuite de l'installation avec les thèmes et modules spécifiques

[modifier | modifier le wikicode]

Drupal est maintenant installé et fonctionnel. Chaque projet a un tronc commun de modules, dont le module Pleade. Les informations suivantes permettent de terminer l'installation du projet.

Commandes composer importantes

[modifier | modifier le wikicode]

Les commandes suivantes sont nécessaires pour installer et gérer Drupal.

Installer les dépendances listées dans le fichier composer.json

composer install

Mettre à jour le fichier du projet composer.lock

composer update

Installer un module ou un thème

composer require drupal/LE_NOM_DU_MODULE_OU_DU_THEME

Désinstaller un module ou un thème.

composer remove drupal/LE_NOM_DU_MODULE_OU_DU_THEME
Notice :
On peut récupérer des configurations ou des types de thèmes, etc. avec Drupal Console, outil de maintenance du backend.

Installation du thème Barrio Bootstrap

[modifier | modifier le wikicode]
$ composer require 'drupal/bootstrap_barrio:^5.5'

Utiliser la dernière version du thème.

Créer un sous-thème de Barrio

[modifier | modifier le wikicode]

Voir la documentation officielle : https://www.drupal.org/docs/8/themes/barrio-bootstrap-4-drupal-89-theme/bootstrap-barrio-installation/creating-a-custom-barrio-sub-theme

Installation des modules de base

[modifier | modifier le wikicode]

Une fois le sous-thème configuré, installer les modules suivants :

Administration

[modifier | modifier le wikicode]

Barre d'administration évoluée

composer require 'drupal/admin_toolbar'
composer require 'drupal/admin_toolbar_tools'
composer require 'drupal/rename_admin_paths'
composer require 'drupal/menu_admin_per_menu'
composer require 'drupal/backup_migrate'
composer require 'drupal/pathauto'
composer require 'drupal/toolbar_menu'
composer require 'drupal/userprotect'
composer require 'drupal/allowed_formats'
composer require 'drupal/field_group'

Contrôle du pollupostage

[modifier | modifier le wikicode]
composer require 'drupal/captcha'
composer require 'drupal/mailsystem'
composer require 'drupal/mimemail:^1.0@alpha'

Pour mimemail, installer la dernière version.

composer require 'drupal/role_delegation:^1.2'

Permet à un utilisateur avec un rôle particulier de créer d'autres utilisateurs, en limitant l'administration du CMS à cette seule action. Par exemple, permettre à un WEBMASTER de créer un nouvel utilisateur ÉDITEUR. Ou à un ÉDITEUR de créer un nouvel utilisateur ÉDITEUR.

composer require 'drupal/crop'
composer require 'drupal/image_widget_crop'
composer require 'drupal/imce'
composer require 'drupal/image_effects:^3.2'

Nécessite les librairies suivantes :

composer require 'drupal/paragraphs'
composer require 'drupal/metatag'
composer require 'drupal/schema_metatag:^2.2'

Pour schema_metatag, installer la dernière version.

Voir la documentation du module :

composer require 'drupal/styles_api'
composer require 'drupal/ds:^3.13'
composer require 'drupal/block_styles:^2.0'

Pour ds et block_styles, installer la dernière version.

Voir la documentation de ces modules :

composer require 'drupal/views_slideshow'

Nécessite l'installation des librairies suivantes :

  • jquery.cycle
  • jquery.hoverIntent.js
  • json2.js
  • jquery.pause.js

On peut aussi utiliser cette méthode, si les paquets sont toujours présents  :

mkdir -p libraries/jquery.cycle && cd $_ && wget https://malsup.github.io/jquery.cycle.all.js  && mkdir -p ../../libraries/jquery.hoverIntent && cd $_ && wget https://raw.githubusercontent.com/briancherne/jquery-hoverIntent/master/jquery.hoverIntent.js  && mkdir -p ../../libraries/json2 && cd $_ && wget https://raw.githubusercontent.com/douglascrockford/JSON-js/master/json2.js  && mkdir -p ../../libraries/jquery.pause && cd $_ && wget https://raw.githubusercontent.com/tobia/Pause/master/jquery.pause.js

Installation du module Pleade

[modifier | modifier le wikicode]

Le module Pleade est accessible en SVN : projet drupal.

Il doit être installé dans Drupal "à la main" en plaçant le répertoire du module Pleade dans web/modules/custom/

Une fois le répertoire copié, finir l'installation en suivant la documentation accessible dans le README du module.

Travailler dans Drupal en mode "Debug"

[modifier | modifier le wikicode]

Le mode debug permet d'afficher, en commentaire" des suggestion de HOOK directement dans le code HTML. Voir la documentation sur la modification des fichiers templates twig : https://www.drupal.org/node/1903374

Important :
Une fois le développement du site terminé, il faut désactiver le mode debug, car les performances s'en ressentent..

Activer le mode debug

[modifier | modifier le wikicode]

Dans le fichier /sites/default/service.yml, chercher twig.config: et, quelques lignes de commentaires plus loin,

  1. Modifier la valeur de debug: false à debug: true.
  2. Modifier la valeur de auto_reload: null à auto_reload: true.
  3. Modifier la valeur de cache: true à cache: false.

Désactiver le mode debug

[modifier | modifier le wikicode]

Une fois le développement terminé et avant le passage en production, remettre les paramètres de twig.config: à leur valeur par défaut.

Dans le fichier /sites/default/service.yml, chercher twig.config: et, quelques lignes de commentaires plus loin :

  1. Modifier la valeur de debug: true à debug: false .
  2. Modifier la valeur de auto_reload: true à auto_reload: null.
  3. Modifier la valeur de cache: false à cache: true.

Utiliser drush et la console de Drupal

[modifier | modifier le wikicode]

Les commandes suivantes permettent d'effectuer certaines actions sans utiliser le back-office de Drupal.

Utiles en cas de debbogage ou de problème d'accès, par exemple, installer/désinstaller un module ré-initialisation du mot de passe d'un utilisateur,..

Quelques commandes drush

[modifier | modifier le wikicode]

Afficher la liste des options :

$ drush list

Afficher les logs ( watchdog:show) :

$ drush ws

Vider les caches :

$ drush cc

Reconstruire la base de données :

$ drush cr

Modifier le password :

$ drush upwd admin "motdepasse"

Créer un nouvel utilisateur et password (user:create) :

$ drush ucrt root --password="motdepasse"

Quelques commande Drupal console

[modifier | modifier le wikicode]

Lister les commandes de Drupal Console :

$ ./vendor/bin/drupal list

Desinstaller le module :

$ ./vendor/bin/drupal mou rename_admin_paths

(le nom du module)

Réactivation du module :

$ ./vendor/bin/drupal moi rename_admin_paths

(le nom du module)

Voir les logs de la database de Drupal :

$ ./vendor/bin/drupal dbb

Vider les caches :

$ ./vendor/bin/drupal cr

Ajouter une classe associée à la page en cours, dans le body

[modifier | modifier le wikicode]

Permet d'associer finement un affichage particulier en fonction du contexte de la page.

Par exemple, pour la page "Panier" chargée en embed depuis l'instance de Pleade, l'ajout de la classe context-archives-en-ligne-baskethtml permet de créer un affichage spécifique.

Pour ajouter une classe contextuelle dans le body :

Modifiez le fichier du thème html.html.twig en ajoutant ou modifiant set body_classes (le fichier se trouve typiquement dans /theme/custom/[nom-du-theme]/templates/)

{%
  set body_classes = [
  logged_in ? 'user-logged-in',
  not root_path ? 'path-frontpage' : 'path-' ~ root_path|clean_class,
  node_type ? 'page-node-type-' ~ node_type|clean_class,
  db_offline ? 'db-offline',
  current_path ? 'context' ~ current_path|clean_class,
  ]
%}
<body{{ attributes.addClass(body_classes) }}>