Les 1

(Pdf-versie)

Inleiding

In deze module Drupal Gevorderd starten we met het bespreken van Drupal 9. We gaan een Drupal 8 site omvormen naar een Drupal 9, een cleane Drupal 9 installeren met Composer. Composer zal in deze module ook een veel grotere rol spelen. Het is een manier om veel sneller, efficiënter en veiliger te werken met Drupal. Het zal even een sprong in het duister zijn, maar eens je ermee weg bent, zal je niets liever meer willen gebruiken. Bovendien is het ook zo dat sommige modules met composer MOETEN worden geïnstalleerd. Ik denk bijvoorbeeld aan Webform.

De planning voor de eerste lessen:

  • Drupal 8 naar 9
  • Clean install van drupal 9 met composer
  • Verder bouwen met modules

Van Drupal 8 naar Drupal 9

In dit uitgebreide stappenplan gaan we onze Drupal 8 website omvormen naar een Drupal 9 website. Dit stappenplan is geheel gebasseerd op mijn eigen website drupalschool.be. In een ideale wereld passen jullie onderstaande toe op jullie eigen bestaande Drupal 8 sites. Heb je geen eigen Drupal 8 website, dan kan je deze oefening zien als informatie. Voor die mensen zal het volgende onderdeel dan weer interessanter zijn; het installeren van een Drupal 9 met composer.

Composer 2.0

Tot voor kort was het onmogelijk om composer te gebruiken op de starters-paketten van Neostrada. Je had te weinig geheugen. Met de komst van Composer 2.0 is dit gelukkig opgeloist. Je bent dus niet meer verplicht om naar een Premium-pakket over te stappen. Deze versie van composer moet echter wel nog worden geïnstalleerd.

  1. Maak een backup van uw site met softaculous
  2. Maak een map aan in de root van uw site. Dat is de hoofdmap. Die dat je ziet wanneer je klikt op bestandsbeheer.
  3. De naam van de map is eender. Ik gebruik mycomposer

mycomposer

  1. Ga naar Terminal
  2. Open de gemaakte map met volgend commando:

cd mycomposer

  1. Onderstaand commando voer je uit om de nieuwe composer in uw map te plaatsen:

curl -sS http://getcomposer.org/installer | php

  1. Met bovenstaande heb je nu de nieuwe composer in de map gedownload. Deze werkt nog niet. Het probleem is ook dat er steeds een verwijzing zal worden gemaakt naar de oude composer. We moeten hiervoor een alias aanmaken om te verwijzen naar de nieuwe composer. Ga eerst een map omhoog met volgend commando:

cd ../

  1. Voer nu het onderstaande commando uit. Met NANO kan je bestanden rechtstreeks bewerken in composer. Uiteraard is het ook mogelijk om dit te doen via het bestandsbeheer.

nano .bash_profile

  1. Op een nieuwe lijn plaats je nu volgende alias:

alias composer='php ~/mycomposer/composer.phar'

nano

  1. Gebruik onderstaande toetsencombinatie om het bestand op te slaan. Druk daarna op ENTER

Ctrl + O

  1. Gebruik onderstaande toetsencombinatie om nano te verlaten:

Ctrl + X

  1. Typ nu onderstaande om de verbinding te verbreken:

exit

  1. Druk op Reconnect om opnieuw te verbinden

reconect

  1. Typ volgend commando om te kijken of je nu in de nieuwe versie van Composer werkt:

composer --version

versie

Drush versie 10

Ook Drush is een veelgebruikte optie. Deze kent ook een update en deze kan je ook maar beter doen alvorens verder te gaan.

  1. Ga opnieuw in de hoofdmap van het domein staan.

cd ~/

  1. Maak een map mydrush aan of kies zelf een naam die je dan later in alias correct toevoegt.

mkdir mydrush

  1. Navigeer naar de nieuwe map mydrush

cd mydrush

  1. Om drush te downloaden geef je onderstaande commando in:

composer require drush/drush 

  1. Er worden nu een heel aantal bestanden gedownload. Laat dit lopen tot alles geïnstalleerd is.
  2. Drush zelf zal je vinden in de map vendor/drush/drush
  3. Nu moeten we net als bij composer nog een alias aanmaken om het globaal op het domein te kunnen gebruiken.
  4. Ga naar de hoofdmap van het domein.

cd ~/

  1. Open .bash_profile met nano

nano .bash_profile

  1. Zet onder lijn waar je daarnet de composer alias hebt geplaatst nu de drush alias.

alias drush="php ~/mydrush/vendor/drush/drush/drush"

Voor de zekerheid

Installeer nu eerst voor de zekerheid de module libraries met composer. Ik kreeg problemen door dat niet gedaan te hebben op enkele sites.

  1. Ga naar Terminal
  2. Navigeer naar de map public_html (of uw subdomain)

cd public_html

  1. Geef onderstaand commando in voor het installeren van de module libraries:

composer require 'drupal/libraries:^3.0@beta'

  1. Heb je webform draaien, dan installeer je die ook best eerst met composer:

composer require 'drupal/webform:^6.0'

Is uw Drupal 8 er klaar voor?

  1. Maak eerst een bakcup via Softaculous op het Cpanel
  2. Zorg dat de huidige website up to date is, zowel de kern als de modules
 
backup
  1. Installeer de module Upgrade Status. (met composer!)
  2. De module vind je na installatie terug onder Rapporten. Deze module toont u een hele boel informatie. Het is de bedoeling om bovenaan 100% te bekomen. Dan is uw site er klaar voor. De informatie is op te delen in verschillende categorieën:
 
1
Toont een algemeen beeld van de hosting. Zo is hier de databank van groot belang en de php-versie. Indien de databank nog niet voldoende hoog is, dan contacteer je de support van de hosting. Ze brengen dat dan wel in orde. De php-versie kan je zelf instellen via het Cpanel.
 
2
Hieronder zie je modules die je niet compatibel zijn met Drupal 9. Echter heb je deze modules ook niet geïnstalleerd. Je kan ze met andere woorden verwijderen. Hoe je deze correct verwijderd zie je iets lager.
 
3
De modules die hieronder vermeld staan zullen waarschijnlijk werken eens je ze het geüpdatet. Echter ga je na het updaten best opnieuw checken of dit wel zo is. Indien blijkt dat er geen update aangeboden wordt, dan heb je waarschijnlijk een te oude versie van deze module. Best is dan om deze module te verwijderen en opnieuw te installeren indien deze echt noodzakelijk is op uw site.
 
4
Helaas, de lijst hieronder is niet compatibel met Drupal 9. Je zal voor al deze modules een alternatief moeten verzinnen om vervolgens al deze modules te verwijderen.
 
5
Dit is fijn. Alles dat je hier ziet staan, draait op Drupal 9.
 
100
 

Modules verwijderen

  1. Het eerste wat je moet doen is het deïnstalleren van de module via de interface. Dat doe je via Uitbreidingen - Deïnstalleren

deinstalleren

  1. De tweede stap is het verwijderen van de map zelf. Dat kan je eigenlijk doen via Composer, maar ook via het Bestandsbeheer. Ik leg het hieronder even uit via Composer:

Mappen verwijderen met composer

  1. Ga naar het Cpanel van uw site
  2. Kies Terminal

terminal

  1. Navigeer eerst naar de map waarin de modulemap of themamap zich bevind. Wanneer deze in public_html zit dan navigeer je eerst naar die map. Vervolgens moet je in de map modules zitten. Er bestaat een kans dat je dan reeds aan de map komt, echter kan het ook zijn dat deze in de map Contrib zit, onder de map modules. Om aan de map contrib te geraken zou geef je volgende commando's, na elk onderstaand commando bevestig je met Enter.

cd public_html

cd modules

cd contrib

  1. Om nu een map te verwijderen gebruik je het volgende commando, het laatste deel van dit commando is de naam van de map. Bevestig opnieuw met Enter

rm -rf honeypot

  1. Indien de modules werden geïnstalleerd met composer dan moet je ze ook met composer verwijderen:

composer remove drupal/naam van de module

Modules verplaatsen

Om een goede werking te verzekeren is het van beland dat alle modules zich in de map contrib bevinden. Ze moeten dus worden verplaatst

  1. Maak een backup met softaculous
  2. Zorg dat je bent ingelogd op de site
  3. Ga naar het bestandsbeheer via Cpanel
  4. Navigeer naar de map Modules
  5. Selecteer alle modules die niet in de map Contrib zitten
  6. Klik rechts op die selectie en kies Move
  7. Typ het pad naar waar deze moeten worden verplaatst

contrib

  1. Ga naar uw site. De kans bestaat dat je een whitscreen krijgt. Probeer dit op te lossen met een update van de databank (/update.php)

Overzetten naar Drupal 9

  1. Maak eerst een backup van uw site via Softacoulus
  2. Verwijder de module Upgrade Status, deze werkt niet in Drupal 9. De module deïnstalleren en de map verwijderen via FTP (of composer)
Volgende stappen werden opgesteld door Jurgen Morel, deze kan je ook nalezen op drupal.family
 
  1. We geven eerst nodig schrijftoegang via composer:. Gebruik de volgende drie commando's. Na elk commando druk je op Enter.
chmod 777 sites/default
find sites/default -name "*settings.php" -exec chmod 777 {} \;
find sites/default -name "*services.php" -exec chmod 777 {} \;
 
  1. Vervolgens moet u zowel de Drupal 9-versie de door de kern aanbevolen pakketten en pakketten met dev-afhankelijkheden binnenhalen als afhankelijkheden. We gebruiken --no-update om te voorkomen dat er in de verkeerde volgorde wordt geïnstalleerd
composer require drupal/core-recommended:^9.1 drupal/core-composer-scaffold:^9.1 drupal/core-project-message:^9.1 --update-with-dependencies --no-update
 
  1. Voer nu de update van de code zelf uit:
composer update
 
  1. In settings.php moet één en ander worden aangepast. Zo gebruikt drupal 9 geen $settings['install_profile'] meer. Afhankelijk van hoe je site werd geïnstalleerd staat die setting wel of niet in de settings.php. Indien deze er staat moet die dus verwijderd worden. Zoek naar $settings['install_profile']. Meestals staat daar dan  = 'standaard'; achter. Verwijder de volledige lijn.
  2. Een tweede regel die in settings.php moet worden aangepast is de sync map. In drupal 8 werd die aangeduid met $config_directories['sync']. Drupal 9 gebruikt $settings['config_sync_directory']. Deze moet dus gewijzigd worden. Vervang $config_directories['sync'] door $settings['config_sync_directory']. Wat er achter staat (= 'site/default/...) blijft staan. 
  3. Wanneer alles is ge-update is het tijd om de database te updaten. Doe dit op de ouderwetse manier met /update.php
  4. Verwijder de tijdelijk schrijftoegang van beveiligde bestanden en mappen. Druk na elk commando op Enter
chmod 755 sites/default
find sites/default -name "*settings.php" -exec chmod 644 {} \;
find sites/default -name "*services.yml" -exec chmod 644 {} \;
jupla

Clean Install van Drupal 9 met Composer

Ben je van plan een nieuwe site op te starten dan is het aan te raden van deze in Drupal 9 te maken. Daarnaast is het eigenlijk ook heel verstandig om dit volledig met Composer te beheren.  Dat gaat dan over het installeren Drupal, het installeren van modules en het updaten van zowel de kern als de modules
 

Installatie van de kern

  1. Zorg ervoor dat je met Composer 2.0 en Drush 10 werkt. Zie hoger om dit in orde te brengen.
  2. Ga naar het Cpanel
  3. Maak indien nodig een subdomein aan, indien niet nodig, dan werk je gewoon in public_html
  4. Kies voor MySQL Databases in Cpanel
d
  1. Maak een databank aan, je mag deze zelf een naam geven
d
  1. Keer terug en maak nu een nieuwe gebruiker aan, ook hier mag je zelf kiezen hoe die gaat heten en welk wachtwoord deze krijgt
user
  1. Koppel nu de nieuwe gebruiker aan de nieuwe databank
user data
  1. Kies voor ALL PRIVILEGES
privileges
  1. Open de Terminal
  2. Verwijder het eerder gemaakte subdomein
rm -rf clean9.drupalfun.nl/
  1. We gaan nu de installatie doen van Drupal 9, in ons domein, zonder de installatie reeds uit te voeren:
composer create-project drupal/recommended-project 'clean9.drupalfun.nl' --no-install
  1. Navigeer nu naar de map
cd clean9.drupalfun.nl
  1. Bewerk composer.json
nano composer.json
  1. Pas dit bestand zodanig aan dat:
    1. "web-root": "web/" vervangen wordt door "web-root": "./"
    2. alles onder "inistaller-paths" ga je bekijken, je haalt alle woorden 'web' weg, drush laat je staan
f
  1. Gebruik nu onderstaand commando om drupal 9 te installeren:
composer install

Installatie van de site

  1. Surf naar uw nieuwe site
  2. Kies als taal voor ENGELS (De site kan je later vertalen)
taal
  1. Kies Standaard
  2. Vul nu de gegevens in van de eerder aangemaakte databank
f
  1. Configureer de website, aan te raden om Receive email notifications af te zetten. Is dat op een 'echte' site dan misschien wel. Het gaat hier over mails betreffende updates.
dink
  1. Via het Cpanel nog even de https redirect instellen (via Domains)
https
 

Importeren in Softaculous

Door het installeren van de site via bovenstaande weg, zullen we deze niet terugvinden in Softaculous. Echter zou dat wel handig zijn voor het nemen van bijvoorbeeld backups:

  1. Ga naar het Cpanel
  2. Open Softaculous
  3. Kies links voor Drupal
  4. Kies rechts voor Import
  5. Kies Autodetect
  6. Start de scan
  7. Er zal een melding verschijnen dat het gelukt is
  8. Kijk eens bij de installaties. Je zal de nieuwe site zien staan.

clean