mirroir readonly du Gitit wiki.evolix.org (attention, ne rien commiter/merger sur ce dépôt) https://wiki.evolix.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

HowtoDrupal.md 3.5 KiB

2 years ago
2 years ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. ---
  2. categories: web CMS
  3. title: Howto Drupal
  4. ---
  5. * Documentation : <https://www.drupal.org/documentation>
  6. [Drupal](https://www.drupal.org/) est un CMS libre écrit en PHP.
  7. ## Pré-requis
  8. * Un serveur web (Apache/Nginx/...)
  9. * PHP 5.5+
  10. * Une base de donnée (MySQL/Mariadb 5.5+, PostgreSQL 9.1+)
  11. Pour plus de détails, voir [la documentation de Drupal](https://www.drupal.org/docs/user_guide/en/install-requirements.html) notamment :
  12. * [pré-requis pour Drupal 7](https://www.drupal.org/docs/7/system-requirements/)
  13. * [pré-requis pour Drupal 8](https://www.drupal.org/docs/8/system-requirements/)
  14. ### Apache
  15. Drupal est livré avec des fichiers `.htaccess` qui utilisent un nombre varié de directives.
  16. La configuration Apache doit donc contenir au minimum :
  17. ~~~{.apache}
  18. AllowOverride AuthConfig Limit FileInfo Indexes Options=Indexes,MultiViews,ExecCGI,Includes
  19. ~~~
  20. Le `DocumentRoot` d'Apache doit correspondre au dossier `web` qui se trouve à la racine du dossier du projet
  21. ### Nginx
  22. Un exemple complet de vhost Nginx pour Drupal est accessible sur [dans la documentation de Nginx](https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/)
  23. ### PHP
  24. Certains ajustements sont nécessaires
  25. #### Web ( FPM / libapache2-mod-php )
  26. *TODO?*
  27. #### CLI
  28. C'est surtout pour `composer` et `drush` qui nécessitent :
  29. * (composer) Le non blocage de la fonction `putenv()`
  30. * (composer) Autoriser l'ouverture d'url (allow_url_fopen
  31. * (drush) Aucune fonction désactivée (ie: disable_functions vide) sinon drush refuse de fonctionner....
  32. ## Installation
  33. Il existe [plusieurs méthodes pour installer Drupal](https://www.drupal.org/docs/8/install/step-1-get-the-code). Mais la méthode d'amorcer un nouveau site/projet avec composer.
  34. Ainsi, une installation par défaut va se faire avec la commande suivante va créer une nouvelle installation et récupérer toutes les dépendances avec composer.
  35. ~~~
  36. $ composer create-project drupal-composer/drupal-project:8.x-dev foo_project --stability dev --no-interaction
  37. ~~~
  38. On peut en suite, aller directement à l'addresse du site pour obtenir l'interface d'installation du site.
  39. ### Cron
  40. ~~~
  41. $ crontab -l
  42. 42 * * * * php /home/foo/www/vendor/bin/drush cron --root /home/foo/www/ 2&>1 >/dev/null
  43. ~~~
  44. ## Optimisation
  45. * Drupal 7 : <https://www.drupal.org/docs/7/managing-site-performance-and-scalability/optimizing-drupal-to-load-faster-server-mysql>
  46. * Drupal 8 : <https://www.valuebound.com/resources/blog/a-beginners-guide-to-performance-optimization-drupal-8>
  47. ### watchdog
  48. Désactiver le logging non nécessaire en prod... surtout dans la base de données : <https://www.karelbemelmans.com/2015/05/drupal-watchdog-logging-dblog-vs-syslog/>
  49. ## Sécurité
  50. ### Annonces de sécurité
  51. Nous recommandons aux développeurs de garder un oeuil sur [les annonces de sécurité](https://www.drupal.org/security) faites par l'équipe Drupal.
  52. ### CVE-2018-7600 // SA-CORE-2018-002
  53. Règle mod_security de protection (théorique)
  54. ~~~
  55. SecRule ARGS_GET_NAMES|ARGS_POST_NAMES|REQUEST_COOKIES_NAMES "^#" "t:none,log,deny,msg:'CVE-2018-7600/Drupal-SA-CORE-2018-002 -- Deny # in (cookie|query|post) names',id:300000001"
  56. ~~~
  57. ## Plomberie
  58. ### An automated attempt to create the directory ../config/sync failed, possibly due to a permissions problem.
  59. Ça arrive quand on a initialisé un projet Drupal depuis composer. Il semble que ce soit [un vieux bug non corrigé](https://github.com/drupal-composer/drupal-project/issues/274)
  60. La solution est de créer un dossier `config/sync` a la racine du projet, avec des droits d'écritures pour le serveur web.