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