74 lines
2.3 KiB
Markdown
74 lines
2.3 KiB
Markdown
---
|
|
categories: web CMS
|
|
title: Howto Drupal
|
|
---
|
|
|
|
* Documentation : <https://www.drupal.org/documentation>
|
|
|
|
[Drupal](https://www.drupal.org/) est un CMS libre écrit en PHP.
|
|
|
|
## Pré-requis
|
|
|
|
* Un serveur web (Apache/Nginx/...)
|
|
* PHP 5.5+
|
|
* Une base de donnée (MySQL/Mariadb 5.5+, PostgreSQL 9.1+)
|
|
|
|
Pour plus de détails, voir [la documentation de Drupal](https://www.drupal.org/docs/user_guide/en/install-requirements.html)
|
|
|
|
### Apache
|
|
|
|
Drupal est livré avec des fichiers `.htaccess` qui utilisent un nombre variés de directives.
|
|
La configuration Apache doit donc contenir au minimum :
|
|
|
|
~~~{.apache}
|
|
AllowOverride AuthConfig Limit FileInfo Indexes Options=Indexes,MultiViews,ExecCGI,Includes
|
|
~~~
|
|
|
|
|
|
### PHP
|
|
|
|
Certains ajustements sont nécessaires
|
|
|
|
#### Web ( FPM / libapache2-mod-php )
|
|
|
|
*TODO?*
|
|
|
|
#### CLI
|
|
|
|
C'est surtout pour `composer` et `drush` qui nécessitent :
|
|
|
|
* (composer) Le non blocage de la fonction `putenv()`
|
|
* (composer) Autoriser l'ouverture d'url (allow_url_fopen
|
|
* (drush) Aucune fonction désactivée (ie: disable_functions vide) sinon drush refuse de fonctionner....
|
|
|
|
## Installation
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
~~~
|
|
$ composer create-project drupal-composer/drupal-project:8.x-dev foo_project --stability dev --no-interaction
|
|
~~~
|
|
|
|
|
|
## Optimisation
|
|
|
|
* Drupal 7 : <https://www.drupal.org/docs/7/managing-site-performance-and-scalability/optimizing-drupal-to-load-faster-server-mysql>
|
|
* Drupal 8 : <https://www.valuebound.com/resources/blog/a-beginners-guide-to-performance-optimization-drupal-8>
|
|
|
|
### watchdog
|
|
|
|
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/>
|
|
|
|
## Sécurité
|
|
|
|
### CVE-2018-7600 // SA-CORE-2018-002
|
|
|
|
Règle mod_security de protection (théorique)
|
|
|
|
~~~
|
|
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"
|
|
~~~
|
|
|
|
## |