====== 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