====== Installation de Drupal 9 avec Composer sous Ubuntu 20.04 ======
Installation réalisée sur une machine de développement sous Ubuntu 20.04.
Sources:
* [[https://www.youtube.com/watch?v=depHuH_TO5c]]
===== Prérequis =====
* Apache 2
* PHP + Composer
* MySQL ou MariaDB
Les outils et extensions PHP suivantes :
sudo apt install zip unzip
sudo apt install php-mbstring php-xml php-gd php-curl php-zip
Vérifier que le module **rewrite** est activé :
sudo apache2ctl -M
Sinon l'activer :
sudo a2enmod rewrite
sudo systemctl restart apache2
===== Choix du Template =====
Deux templates sont disponibles :
* **drupal/recommended-project**
* [[https://www.drupal.org/docs/develop/using-composer/using-composer-to-install-drupal-and-manage-dependencies]]
* C'est le template officiel de Drupal contenant juste le core.
* ''composer create-project drupal/recommended-project my_site_name''
* **drupal-composer/drupal-project**
* [[https://github.com/drupal-composer/drupal-project]]
* Inclut la même chose que le template officiel, en plus d'autres choses
* ''composer create-project drupal-composer/drupal-project:9.x-dev my_site_name --no-interaction''
===== Installation =====
Dans cet exemple j'utilise le template **drupal-composer/drupal-project**.
L'installation se fera dans le dossier **/home/marc/prgweb/drupal9/test1/**.
cd /home/marc/prgweb/drupal9
composer create-project drupal-composer/drupal-project:9.x-dev test1 --no-interaction
Si des extensions PHP manquent, composer s'arrête et liste les extensions à installer.
Redémarrer ensuite la commande composer jusqu'à ce que tout soit installé sans erreur.
===== Virtual Host =====
Créer un fichier **/etc/apache2/sites-available/test1.localhost.conf**
:!: Le **DocumentRoot** doit pointer vers le sous-dossier **/web** :!:
ServerName test1.localhost
ServerAdmin marc@localhost
DocumentRoot /home/marc/prgweb/drupal9/test1/web
Options Indexes FollowSymLinks Multiviews
AllowOverride all
Require all denied
Require all granted
Allow from all
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Activer le nouveau site
sudo a2ensite test1.localhost.conf
sudo systemctl reload apache2
Accéder à l'adresse [[http://test1.localhost]] pour suivre les étapes d'installation.
===== Dossier 'config' =====
cd /home/marc/prgweb/drupal9/test1
sudo mkdir config
sudo chown www-data:www-data config/
===== Base de données =====
Voir la page [[mysql:installation_mariadb_ubuntu_2004]] pour la création d'un utilisateur et de sa base de données dédiée.
===== Sécuriser le fichier Settings =====
**Une fois l'installation terminée**, Drupal informe que les droits d'écriture
devraient être supprimés sur les éléments suivants :
* Le dossier **sites/default**
* le fichier **sites/default/settings.php**
Mais il ne faut le faire qu'une fois que **toute** l'installation est terminée :-)
cd /home/marc/prgweb/drupal9/test1/web
sudo chmod 0555 ./sites/default
sudo chmod 0444 ./sites/default/settings.php