- Accueil
- Info légales
- Aide (FAQ)
- Les tags de ce site
- Bloc note
- Articles techniques
- Notes system
- Divers articles
- Drupal
- Notes ITIL 2007
- Notes MS
- Dans le quartier...
- Emploi
- Recettes de cuisine et adresses gourmandes
- mes applis ubuntu préferées
- Divers acronymes du monde social
- Internet 2018
- P2 meublé à louer - quartier du Poteau 75018
- apcos - réseaux sociaux et outils
- Articles techniques
- Divers liens
- Fun
- Mon CV IT
- Nouveautés
srv17 : install drupal 8
Sur srv ubuntu17 (lamp php7), composer 1.2.2 installé globalement. Drupal8 (8.3.2) avec drush 8.1.11, Librairie GD 2.2.4.
(Sur cette vm, il y a aussi un drupal 7 en /var/www/dru7).
conf srv
fichier hosts (préparé pour 2 sous-sites et un "main" vierge" en sites/default): drucomp1 druc1 druc2 srv17
Cette vm a 2 disques, drupal-composer est installé sur ce 2e disque (label d2).
Rappel: Il faut monter via /mnt et non via /media. Logué avec un compte user de dev (pas en root), créer un dossier (vide) en /mnt nommé ici d2 (genre: chown user:www-data /mnt/d2 ; chmod o+g=rwx
/mnt/d2
). Par commodité, j'ai créé un dossier dossier de travail nommé w (un lien est en /home/user/w -> /mnt/d2/w) où j'ai installé drupal-composer avec un
composer create-project drupal-composer/drupal-project:8.x-dev drucomp1 --stability dev --no-interaction
Mais on n'en n'est pas encore là :) C'est juste pour dire que le Documentroot sera /mnt/d2/w/drucomp1 (les dumps et divers docs en w).
db Mysql
chaque sous-site a sa base (pas de prefixe de table). Maria à tester :)
conf apache
Voir un PJ le .zip qui regroupe les fichiers de conf (les chemins sont indiqués ici). Pour /etc/apache2/apache2.conf
on ne le touche qu'une fois (voir lignes 172)
3 fichiers dans /etc/apache2/conf-enabled/ et /etc/apache2/sites-enabled/ (voir pj, faire les liens et les sudo a2enconf druc1 ; sudo a2ensite druc1 ; sudo service apache2 reload
). Vérifier avec un sudo apache2ctl -S
note: pour nginx, voir leur site pour le fichier de conf des virtual hosts drupal 8 (cf ce test d'install sur un pi lemp raspbian jessie)
C'est là qu'on lance le composer create-project, qui installe :
* drupal 8.3.2 dans "drucomp1/web",
* drush 8.1 dans "drucomp1/vendor/drush/drush", twig dans vendor/twig/twig...
* en créant cette arborescence là (le .json est donc en /mnt/d2/w/drucomp1/composer.json)...
conf drupal (multi-site)
avant la 1ere install (prérequis)
Renommer (puis modifier) drucomp1/web/sites/example.sites.php en sites.php : cp example.sites.php sites.php ; vi sites.php ; sudo chown user:www-data sites.php ; sudo chmod 404 sites.php
$sites = array(
'drucomp' => 'default',
'druc1' => 's01',
'druc2' => 's02',
);
Créer les dossiers "drucomp1/config/sync", config/sync1 et sync2 (avé les bons droits), vérifier les droits des divers settings.php, .yml et .YAML...
Utile: ajouter les PATH (dans ~/.bashrc : PATH=$PATH:/mnt/d2/w/drucomp1/vendor/drush/drush; export PATH;
)
Préparation du dossier drucomp1/web/sites/default
Il faut décommenter des lignes tout en bas de settings.php (pour activer le settings.local.php) ou mieux, utiliser :
/**
* Fichier /w/drucomp1/web/sites/default/settings.php de la vm srv17 - 14 mai 2017
* A l'ajout d'une nouvelle vhost, 3 modifs à faire ici: la DB, /config/sync en /config/syncX et
* trusted_host_patterns
*/
$settings['trusted_host_patterns'] = [
'^drucomp1$',
];
...
if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
include $app_root . '/' . $site_path . '/settings.local.php';
}
$config_directories['sync'] = '../config/sync';
$databases['default']['default'] = array (
'database' => 'NOM-DB',
'username' => 'NOMUSER',
'password' => 'MOT2PASSE',
'prefix' => '',
'host' => 'localhost',
'port' => '3306',
'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
'driver' => 'mysql',
);
$settings['install_profile'] = 'standard';
Le services.yml a des conf pour twig, configuration du cookie_domain
pour rester logué quand on parcours divers sous-sites (à tester).
Install de la version "default" (à ne faire qu'une seule fois)
Vérifier les droits des divers settings.php, .yml et .YAML (drupal doit pouvoir y écrire)... Copier le dossier default sous un autre nom (pour préparer l'installation suivante) et lancer l'installation.
Le status report indique qu'il faut reprotéger les fichiers de conf.
drush st ; drush @drucomp1 ard
à chaque nouvel ajout de virtualhost
Ici la nouvelle vhost "drucX" sera hébergée dans sites/s0X
Créer/vérifier le dossier "drucomp1/config/syncx", modifier/vérifier /etc/hosts, copier les 2 fichiers de conf apache (activer la vhost). Préparer le sous-dossier sites/s0X (drupal va y écrire le hash-salt...). Créer la db (à configurer dans le s0X/settings.php) :
$ mysql -u root -p
mysql> CREATE DATABASE IF NOT EXISTS nom-base CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> CREATE USER drupaluser IDENTIFIED BY 'sonmot2passe';
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON nom-base.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'sonmot2passe';
mysql> FLUSH PRIVILEGES;
mysql> \q
Créer son alias en /drucomp1/drush/site-aliases/aliases.drushrc.php (remplacer druc1 par nom-du-site):
$aliases['druc1'] = array(
'root' => '/mnt/d2/w/drucomp1/web',
'uri' => 'http://druc1',
);
Revérifier settings.php (y rechercher les chaines : config_directories
password
et trusted_host_patterns
)
Installer via le navigateur install.php (en fr directement), drupal 8 indique https://www.drupal.org/server-permissions via un message "supprimer les droits en écriture sur sites/s0X et sites/s0X/settings.php
Reprotéger sites/s0X et divers fichiers de conf
Le rapport indique: le répertoire sites/s02, sites/s02/settings.php settings.local.php et services.yml + "Il est recommandé de le désactiver" au sujet de la reconstruction d'accès (paramètre rebuild_access de settings.php)
=> cd drucomp1/web/sites ; sudo chmod g-w s02 ; sudo chmod g-w s02/se*.*
Le paramètre rebuild_access n'est pas dans settings.php mais dans le settings.local.php
backup total via drush
drush @sites arb
indique le chemin des dossiers - car il crée un dossier par site (sql+fichiers, ici par ex en /home/nom-user/drush-backups/archive-dump/201705141647xx/
- les 3 dossiers compressés font à peu près 38Mo)
Fichier attaché | Taille |
---|---|
![]() | 5.48 Ko |