====== Installation de Drupal 9 avec Composer sous Ubuntu 22.04 ====== Installation réalisée sur une machine de développement sous Ubuntu 22.04. Sources: * [[https://www.youtube.com/watch?v=depHuH_TO5c]] ===== Apache et PHP ===== L'installation de **PHP** entraîne l'installation de **Apache** : sudo apt install php Installation de **Composer** : sudo apt install curl curl -s https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer 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 ===== MariaDB ===== Voir [[mysql:installation_mariadb_ubuntu_2204|]] ===== Création du projet ===== :!: **Ne pas utiliser Composer en tant que root !** :!: **D'abord installer dans notre dossier $HOME en tant qu'utilisateur restreint, ensuite on le déplace vers /var/www ** Créer le projet dans **/home/marc/drupal9** : cd /home/marc composer create-project drupal/recommended-project drupal9 > 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. Déplacer le dossier vers **/var/www/drupal9** : sudo mv /home/marc/drupal9/ /var/www Changer le propriétaire et les droits du dossier (modifiable par le groupe) : sudo chown -R www-data:www-data /var/www/drupal9/ sudo chmod -R 775 /var/www/drupal9/ Pour que l'utilisateur **marc** puisse écrire dans le dossier, il faut l'ajouter au groupe **www-data** si ce n'est pas encore fait : sudo usermod -aG www-data marc su - marc id -nG ----- ===== Virtual Host ===== Créer un fichier **/etc/apache2/sites-available/drupal9.localhost.conf** :!: Le **DocumentRoot** doit pointer vers le sous-dossier **/web** :!: ServerName drupal9.localhost ServerAdmin marc@localhost DocumentRoot /var/www/drupal9/web Options Indexes FollowSymLinks Multiviews AllowOverride all Require all denied Require all granted Allow from all ErrorLog ${APACHE_LOG_DIR}/drupal9.localhost/error.log CustomLog ${APACHE_LOG_DIR}/drupal9.localhost/access.log combined Tester et activer le nouveau site : sudo a2ensite drupal9.localhost.conf sudo apachectl configtest sudo systemctl reload apache2 Accéder à l'adresse [[http://drupal9.localhost]] pour suivre les étapes d'installation. ===== Base de données ===== Créer une base de données et un utilisateur ayant tous les droits sur cette base de données. mariadb -u admin -p Créer la base de données : MariaDB [(none)]> create database DATABASE_NAME; Créer un utilisateur ayant tous les droits sur cette base de données : MariaDB [(none)]> grant all privileges on DATABASE_NAME.* TO 'USER_NAME'@'localhost' identified by 'PASSWORD'; Appliquer les privilèges : MariaDB [(none)]> flush privileges; MariaDB [(none)]> exit ===== 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 /var/www/drupal9/web sudo chmod 0555 ./sites/default sudo chmod 0444 ./sites/default/settings.php