====== Déploiement du site sur un serveur ======
Déploiement d'un site Drupal 10 sur un serveur Ubuntu 22.04.
===== 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 php-mysql
Vérifier que le module **rewrite** est activé :
sudo apache2ctl -M
Sinon l'activer :
sudo a2enmod rewrite
sudo systemctl restart apache2
===== Activer les extensions PHP =====
sudo vi /etc/php/8.1/apache2/php.ini
Décommenter les lignes suivantes :
extension=gd
extension=mbstring
extension=pdo_mysql
sudo systemctl reload apache2.service
===== MariaDB =====
* [[mysql:installation_mariadb_ubuntu_2204|]]
* [[mysql:installation_mariadb_fedora_38|]]
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
===== Création du projet =====
:!: **Ne pas utiliser Composer en tant que root !**
Créer le projet temporairement dans **/home/marc/drupal10** :
cd /home/marc
composer create-project drupal/recommended-project drupal10
> 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 projet vers **/var/www/drupal10** :
sudo mv /home/marc/drupal10/ /var/www
Changer le propriétaire et les droits du dossier (modifiable par le groupe) :
sudo chown -R www-data:www-data /var/www/drupal10/
sudo chmod -R 775 /var/www/drupal10/
===== Virtual Host + HTTPS =====
Créer un fichier **/etc/apache2/sites-available/drupal.marclebrun.be.conf**
ServerName drupal.marclebrun.be
ServerAdmin marc@domaine.com
DocumentRoot /var/www/drupal10/web
Options Indexes FollowSymLinks Multiviews
AllowOverride all
Require all denied
Require all granted
Allow from all
ErrorLog ${APACHE_LOG_DIR}/drupal10/error.log
CustomLog ${APACHE_LOG_DIR}/drupal10/access.log combined
Créer le dossier pour les fichiers **.log**
sudo mkdir /var/log/apache2/drupal10
sudo chown root:adm /var/log/apache2/drupal10
Tester et activer le nouveau site :
sudo a2ensite drupal.marclebrun.be.conf
sudo apachectl configtest
sudo systemctl reload apache2
Ajouter un certificat **let's encrypt** pour le nouveau site :
sudo certbot certonly --apache
Si besoin voir [[apache:activer_https_avec_lets_encrypt_ubuntu2204]]
Modifier le fichier de configuration d'Apache :
ServerName drupal.marclebrun.be
ServerAdmin marc@domaine.com
RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
ServerName drupal.marclebrun.be
ServerAdmin marc@domaine.com
DocumentRoot /var/www/drupal10/web
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all denied
Require all granted
allow from all
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/drupal.marclebrun.be/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/drupal.marclebrun.be/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/drupal.marclebrun.be/chain.pem
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCompression off
SSLOptions +StrictRequire
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
ErrorLog ${APACHE_LOG_DIR}/drupal10/error.log
CustomLog ${APACHE_LOG_DIR}/drupal10/access.log combined
Re-tester et recharger la config d'Apache :
sudo apachectl configtest
sudo systemctl reload apache2
Accéder à l'adresse [[https://drupal.marclebrun.be]] pour suivre les étapes d'installation de **Drupal**.
===== Trusted Host =====
Éditer le fichier ''/sites/default/settings.php'' et spécifier toutes les variante
du(des) nom(s) de domaine auxquelles le site est autorisé à répondre :
sudo chmod a+w sites/default/settings.php
sudo vi sites/default/settings.php
sudo chmod a-w sites/default/settings.php
$settings['trusted_host_patterns'] = [
'^marclebrun\.be$',
'^.+\.marclebrun\.be$',
'^marclebrun\.com$',
'^.+\.marclebrun\.com$',
];