Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
Installer Drupal avec Composer
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
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'
Autres
[modifier | modifier le wikicode]composer require 'drupal/backup_migrate'
composer require 'drupal/pathauto'
composer require 'drupal/toolbar_menu'
composer require 'drupal/userprotect'
composer require 'drupal/allowed_formats'
Champs
[modifier | modifier le wikicode]composer require 'drupal/field_group'
Contrôle du pollupostage
[modifier | modifier le wikicode]composer require 'drupal/captcha'
Courriel
[modifier | modifier le wikicode]composer require 'drupal/mailsystem'
composer require 'drupal/mimemail:^1.0@alpha'
Pour mimemail, installer la dernière version.
Droits
[modifier | modifier le wikicode]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.
Media
[modifier | modifier le wikicode]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 :
- crop : utiliser la dernière version : https://cdnjs.com/libraries/cropper : cropper.min.js et cropper.css
Paragraphes
[modifier | modifier le wikicode]composer require 'drupal/paragraphs'
SEO
[modifier | modifier le wikicode]composer require 'drupal/metatag'
composer require 'drupal/schema_metatag:^2.2'
Pour schema_metatag, installer la dernière version.
Voir la documentation du module :
Styles
[modifier | modifier le wikicode]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 :
- https://www.drupal.org/project/block_styles
- https://www.drupal.org/project/ds
- https://www.drupal.org/node/644706
Vues
[modifier | modifier le wikicode]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
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,
- Modifier la valeur de debug: false à debug: true.
- Modifier la valeur de auto_reload: null à auto_reload: true.
- 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 :
- Modifier la valeur de debug: true à debug: false .
- Modifier la valeur de auto_reload: true à auto_reload: null.
- 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) }}>