Drupal 8 Multisite
De volgende gids beschrijft de stappen die nodig zijn om een Drupal 8-multisiteconfiguratie op te zetten. Deze gids is een work in progress en bevat slechts voorbeeldconfiguraties. Andere opties — zoals HTTPS, verschillende webservers en databases of geavanceerde virtuele hostconfiguraties — zijn ook beschikbaar.
Het is vermeldenswaard dat het gebruik van het Aegir-hostingsysteem de voorkeursmethode is. Aegir automatiseert het complexe installatieproces met behulp van veilige best practices, waaronder automatische configuratie van virtuele hosts voor Apache en Nginx, HTTPS-ondersteuning, Composer-opdrachten en meer. Zie de Platform Setup Documentation — in Aegir-termen: een multisite codebase.
Procesoverzicht:
1. Installeer een Drupal 8-instantie die zal fungeren als de hoofdsite van onze multisite-installatie. In dit voorbeeld wordt de hoofdsite d8multisite
genoemd, toegankelijk via d8multisite.com
en geïnstalleerd op /var/www/d8multisite
.
2. Maak een multisite met de naam site1
, toegankelijk via site1.d8multisite.com
.
3. Configureer site1
zodat deze zijn eigen modules heeft, onafhankelijk van de hoofdsite.
Stap 1: Maak de hoofdsite aan
Begin met het installeren van een kopie van Drupal 8 op je server. Raadpleeg de Drupal 8 Installatiedocumentatie als je niet bekend bent met het proces.
1.1: Maak een database voor de hoofdsite, bijvoorbeeld d8multisite
.
1.2: Download en pak Drupal 8 uit in je webroot.
1.3: Maak een virtuele hostdefinitie aan voor de hoofdsite. Zie virtuele hostconfiguratie. Apache-voorbeeld:
ServerAdmin me@domain.com DocumentRoot /var/www/d8multisite ServerName d8multisite.com ServerAlias www.d8multisite.com Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted ErrorLog ${APACHE_LOG_DIR}/d8multisite_error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/d8multisite_access.log combined
1.4: Voltooi de Drupal-installatie op d8multisite.com
.
Stap 2: Configureer de eerste multisite-instantie
2.1: Maak een map voor site1
: /d8multisite/sites/site1.d8multisite.com
2.2: Maak een nieuwe database aan voor site1
, bijvoorbeeld d8multisite_site1
2.3: Kopieer example.sites.php
naar sites.php
cp sites/example.sites.php sites/sites.php
2.4: Bewerk sites.php
en voeg toe:
$sites['site1.d8multisite.com'] = 'site1.d8multisite.com';
2.5: Maak een virtuele host aan voor site1
:
ServerAdmin me@domain.com DocumentRoot /var/www/d8multisite ServerName site1.d8multisite.com Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted ErrorLog ${APACHE_LOG_DIR}/site1-d8multisite_error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/site1-d8multisite_access.log combined
2.6: Kopieer het standaard instellingenbestand naar de nieuwe sitemap:
cp sites/default/default.settings.php sites/site1.d8multisite.com/settings.php
2.7: Bezoek site1.d8multisite.com
om de Drupal-installatie te voltooien.
Stap 3: Activeer sitespecifieke modules
Om site1
zijn eigen modules te laten hebben:
- Maak een
modules
-map insite1
:/d8multisite/sites/site1.d8multisite.com/modules
- Geef Apache schrijfrechten:
chown www-data /d8multisite/sites/site1.d8multisite.com/modules
- Controleer:
- Installeer Pathauto op de hoofdsite via Drush:
drush dl pathauto
- Ga naar de map van
site1
en installeer Display Suite:drush dl ds
- Bevestig dat:
- Pathauto beschikbaar is op beide sites
- Display Suite alleen beschikbaar is op
site1
- Installeer Pathauto op de hoofdsite via Drush:
Opmerking: Dit geldt op dezelfde manier voor thema’s, bibliotheken en bestanden. Verder testen en documentatie zijn nodig.
Gebruik van Drush met Multisites
Je kunt de -l
-optie gebruiken:
drush -l example.com command
Of gebruik een site-alias:
drush @alias command
Om site-aliases te bekijken:
drush site:alias
Voorbeeldoutput:
@sub1.dev:
root: /var/www/mydomain.com/web
uri: "https://sub1.mydomain.com"
@default.dev:
root: /var/www/mydomain.com/web
uri: "https://sub2.mydomain.com"
@third.dev:
root: /var/www/mydomain.com/web
uri: "https://thirddomain.com"
Om een Drush-opdracht voor een specifieke site uit te voeren:
drush @sub1 updb
Opmerking: Vermijd het gebruik van “.dev” in de aliasnaam zelf.