====== DRUPAL 8 - Création d'un nouveau projet ====== ===== Installation ===== * Préparer à l'avance l'**espace d'hébergement sur le VPS4** : * https://hr333262390.reseller.mis.ovh.net:8443 * Nouveau serveur virtuel * Accès FTP * Version PHP 7.x * Base de données * Pour l'accès SSH, dans "Web Hosting Access", "System user", "Access to the server over SSH", sélectionner "/bin/bash" * Télécharger **dernière version de DRUPAL 8** (https://www.drupal.fr/) * **Transférer cette version** sur l'espace d'hébergement nouvellement crée (VPS4) * Extraire l'archive DRUPAL et la zipper * Transférer le fichier zip Via le File Manager de Plesk car plus rapide qu'un transfert FTP fichier par fichier * Extraire l'archive à la racine (répertoire httpdocs) * Ouvrir le site internet et **démarrer l'installation** * Langue: Française * Profil d'installation: Standard * Configuration de la base de données * Modifier le préfixe des tables (acronyme du site sur 2-3 caractères max + "_") * Configurer le site * email admin : domaine@cmantika.com * Vérifications des mises à jour (sans les notifications) * Fuseau horaires Paris * Si Erreur concernant l'accès au serveur de traduction, récupérer le fichier de trad directement depuis la page https://localize.drupal.org/download et le place dans le répertoire sites/default/files/translations * Dupliquer le **fichier robots.txt** (afin de garder une version pour la future PROD). Remplacer le contenu du nouveau fichier par les 2 lignes suivantes afin d'éviter l'indexation du site en DEV : User-agent: * Disallow: / * Mettre en place à la racine le **fichier .htpasswd** contenant la ligne (afin de sécuriser l'accès) cmantika:$apr1$nBs9xXsG$S5oVLpbaQeeOACYYsfHvA1 * Ajouter en haut du **fichier .htaccess** les lignes suivantes et remplacer le chemin (xxx) vers le fichier .htpasswd (normalement il s'agit de l'url du site, ex : site.cmantika.com) AuthName "Ce site requiert un mot de passe" AuthType Basic AuthUserFile "/var/www/vhosts/xxx/httpdocs/.htpasswd" Require valid-user * Mettre à jour le **ficher sites/default/settings.php** en y ajoutant les lignes suivantes dans la section "Trusted host configuration". Pour cette manipulation, modifier temporairement les droits d'accès au fichier si besoin. $settings['trusted_host_patterns'] = array( '^domain\.cmantika.com$', // remplacer domain par le sous domaine (ex : atlantic-eau ou ensemble) ); ===== Configuration ===== * Installer **drush** via SSH (avec les accès FTP) composer require drush/drush * **Télécharger** les 2 modules module_filter et admin_toolbar composer require drupal/module_filter composer require drupal/admin_toolbar composer require drupal/pathauto * Activer ces modules en se rendant dans la section **Extension** du BO * Module filter * Admin Toolbar * Admin Toolbar Extra Tools * Pathauto (confirmer l'activation de modules dont dépend Pathauto) * **Configurer les paramètres de compte** dans /admin/config/people/accounts (ou Configuration/Personnes/Paramètres de compte) * Dans PARAMÈTRES DE CONTACT * Décocher "Activer le formulaire de contact personnel par défaut pour les nouveaux utilisateurs" * Dans INSCRIPTION ET ANNULATION * Cocher Administrateurs seulement * **Créer une nouvelle page** (Contenu / Ajouter du contenu / Basic Page) * Titre = Accueil * Dans les **paramètres de base du site** : /admin/config/system/site-information (Configuration/Système/Paramètres de base du site) * Mettre à jour si besoin le nom et le slogan du site * Dans Page d'accueil par défaut, mettre node/1 * Dans **Système de fichier** : /admin/config/media/file-system (Configuration/Médias/Système de fichier) * Saisir /tmp dans le champs Dossiers temporaires * **Télécharger** les modules de base composer require drupal/mail_login composer require drupal/twig_tweak composer require drupal/paragraphs composer require drupal/swiftmailer composer require drupal/mailsystem composer require drupal/imce composer require drupal/field_group composer require drupal/devel composer require drupal/block_class composer require drupal/link_attributes composer require drupal/blockgroup composer require drupal/tvi composer require drupal/twig_field_value composer require drupal/entity_clone composer require drupal/webform composer require drupal/easy_breadcrumb * Installer manuellement le **module "Transliterate filenames for uploads"** * [[https://www.drupal.org/project/transliterate_filenames|https://www.drupal.org/project/transliterate_filenames]] * Activer ces modules en se rendant dans la section **Extension** du BO * Dans **Formats de texte et éditeurs** : /admin/config/content/formats (Configuration/Rédaction de contenu/Formats de texte et éditeurs) * Placer "Full HTML" en premier * Configurer le format "Full HTML" * Dans CONFIGURATION DE LA BARRE D'OUTILS, remplacer le bouton "Image" de la barre active par celui de la liste des boutons disponibles, libellé au survol: "Insert images using Imce File Manager". * Dans **Imce File Manager** : /admin/config/media/imce, (Configuration/Média/Imce File Manager) * Modifier le profil Admin "Admin profile" * Dans la section DOSSIERS, ajouter le libellé "medias" après 1. / * Dans la **configuration du type de contenu Basic page** : /admin/structure/types/manage/page (Structure/Types de contenu/Basic Page/Modifier) * Changer le titre en "Page". * Supprimer ou remplacer la description anglaise (idem pour le type de contenu Article) * Dans **Performance** : /admin/config/development/performance (Configuration/Development/Performance) * Décocher les coches dans Optimisations de la bande passante et vider les caches * Dans **Motifs** : /admin/config/search/path/patterns (Configuration/Recherche et metadonnées/Alias d'URL/Motifs) * Créer un motif principal pour la génération automatique des urls * Type de motif = Contenu * Pattern = [node:title] * Type de contenu = Article et Page * Étiquette = Motif général (exemple) ===== Création d'un nouveau thème ===== Source : https://www.drupal.org/docs/8/theming * Télécharger le starter theme : * https://www.dropbox.com/s/2vpfc2ehigrw6qi/starter_theme.zip?dl=0 * _partage (2)/_ressources/drupal/Drupal 8/starter_theme.zip * Renommer le theme, les fichiers et les contenus du thème en remplaçant le libellé starter_theme par le nom du site (en minuscule, sans accents, sans espaces). * Installer le theme dans le répertoire /themes/custom * Activer le via /admin/appearance (Menu Apparence), en cliquant sur "Définir comme paramètre par défaut" ===== Gestion des caches ===== Afin de pouvoir développer sereinement sans devoir vider les caches toutes les 2 secondes, il est utile de désactiver certains caches **pendant la phase de développement** Source : https://gai.co.in/disable-drupal-8-caching-during-development - Copier et renommer le fichier sites/example.settings.local.php en sites/default/settings.local.php. - Si besoin modifier temporairement les droits d'accès en écriture au répertoire sites/default - Dans le fichier settings.local.php file, trouver la section commençant par "Disable the render cache". - Décommenter la ligne suivante :$settings['cache']['bins']['render'] = 'cache.backend.null'; - Dans le fichier settings.local.php file, trouver la section commençant par "Disable Dynamic Page Cache". - Décommenter la ligne suivante :$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null'; - Dans le fichier sites/default/settings.php, trouver la section commençant par "settings.local.php". - Si besoin modifier temporairement les droits d'accès en écriture - Décommenter le code suivant : if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) { include $app_root . '/' . $site_path . '/settings.local.php'; } - Ouvrir le fichier sites/development.services.yml et modifier le contenu afin d'obtenir (désactivation du cache Twig) : parameters: http.response.debug_cacheability_headers: true twig.config: debug: true auto_reload: true cache: false services: cache.backend.null: class: Drupal\Core\Cache\NullBackendFactory - Vider les caches (îcone Drupal 8 / Vider tous les caches)