Composer installeren
De site was in het begin niet opgezet met Composer. Vroeger of later kom je dan toch in de problemen. Ik moest eerst uitzoeken hoe je Composer installeert en hoe je de site kunt omzetten van niet- naar wel-composerized. Eén van de ingewikkeldste dingen maar uiteindelijk is het gelukt. Ik blijf voorlopig in de directory boven public_html. (pjella.nl): de project root. Eerst composer installeren.
Om Composer op te halen en te installeren, heb ik op de Command Line gezet:
curl -sS https://getcomposer.org/installer | php
Toen volgde:
Composer (version 2.4.4) successfully installed to: ........pjella.nl/composer.phar
Use it: php composer.phar
Om te voorkomen dat je telkens voor composer moet intypen: php composer.phar, tikte ik in:
alias composer='/..../composer.phar'
Daardoor kun je een commando beginnen met php composer .....
Composerize
Vervolgens moest mijn nog niet gecomposeriseerde site klaargemaakt voor werken met Composer.
Daarvoor ging ik naar https://github.com/grasmash/composerize-drupal voor de instructies van Composerize.
Ik vulde in, zoals daar wordt geschreven:
composer global require grasmash/composerize-drupal
Daardoor wordt in de public_html-directory de site geschikt gemaakt voor Composer. De vendor-directory wordt naar de directory gehaald waar ik bezig ben. En er wordt een composer.json-bestand gemaakt. Na
composer update "drupal/core-*" --with-all-dependencies
Wordt er ook een composer.lock-bestand gemaakt.
Composer.json
In het nieuwe composer.json-bestand in de project-root moet je nu alle modules nog aangeven die al geïnstalleerd zijn in jouw systeem:
"require": { "php": "^5.5.9|>=7.0.8", "composer/installers": "^1.2.0", "drupal/admin_toolbar": "^3.3", "drupal/adminimal_theme": "^1.6", "drupal/asset_injector": "^2.12", "drupal/block_class": "^1.3",
Als dat goed staat, moet je weer composer update "drupal/core-*" --with-all-dependencies doen en dan worden alle modules geupdatet.
Daarna heb ik Search API gedownload en geïnstalleerd met:
composer require 'drupal/search_api:^1.28'
Gelukt: het wordt toegevoegd aan het stukje 'require'.
Je kunt Composer zelf ook updaten met: composer self-update
Mijn fout was eerst dat ik in een verkeerde directory zat, nl. in de web-root i.p.v. in de project-root, en dan werd het juist niet in de web-root gezet.
Het kan zijn dat je door een te hoge php-versie niet kunt updaten. Dan kun je achter het commando typen: --ignore-platform-req=php+
Drush
Ik had drush nooit gebruikt, maar je kunt er op de command line wat handigheidjes mee en als je alles goed snapt, misschien wel meer.
Voor de installatie van drush, typ je composer require drush/drush.
Voor clear cache: ./vendor/bin/drush cache:rebuild
Voor updaten van de db: ./vendor/bin/drush updb
Overschrijven van htaccess
Voorkom overschrijven van htaccess
Iedere keer als je composer update uitvoert, worden diverse bestanden vervangen door de laatste versie. Ook als er in Drupal niets is veranderd aan htaccess, krijg je de composer-versie van htaccess geïnstalleerd en dat is onhandig als je een regel aan htaccess had toegevoegd. Om te voorkomen dat je dat telkens handmatig moet aanpassen kun je composer het ontbrekende deel erin laten zetten. Het duurde lang voordat ik het aan de praat had maar ik heb het nu in orde. In composer.json staat een gedeelte:
"extra": { "drupal-scaffold": { "locations": { "web-root": "./de-directory-die web-root-is/" } },
Daar moet een stukje tussen worden gezet dat ervoor zorgt dat er aan het einde van het htaccess-bestand een stukje wordt aangeplakt. Uiteindelijk ziet het er dan uit als:
"extra": { "drupal-scaffold": {
"locations": { "web-root": "./public_html/" },
"file-mapping": { "[web-root]/het-htaccessbestandje": { "append": "./patches/htaccess-toevoeging.txt" } } },
Vergeet het kommaatje voor "file-mapping" niet.
Het "append-stuk" zorgt voor het plakken van een stukje tekst uit ./patches/htaccess-toevoeging.txt. De dir ./patches staat in de project-root.
Info
Rare melding
Na een versiewisseling van 10.5 naar 10.7 kon ik niet verder met de update wegens een melding
De libmysqlclient driver versie 3.1.20 is lager dan de minimum vereiste versie. Upgrade naar libmysqlclient versie 5.5.3 of nieuwer, of verander de mysql drivers naar MySQLnd versie 5.0.9 of nieuwer.
De oplossing vond ik op drupal.org forum
Ik zette het vinkje aan bij nd_pdo_mysql in php-extensies en daarna was de melding weg.
Bootstrap
Ik probeer bootstrap te begrijpen en te starten. Ik experimenteerde met Bootstrap Barrio en Bootstrap 5. Heel ingewikkeld omdat er telkens gesproken wordt van Node.js maar dat is nu duidelijk.
Uiteindelijk heb ik dat weten te installeren door gebruik te maken van https://help.pebblehost.com/en/dedicated-servers/how-to-install-nodejs-on-a-dedicated-server.
Info over Bootstrap, de documentatie, staat op https://getbootstrap.com/docs/5.0/getting-started/javascript/#using-bootstrap-as-a-module.
https://www.drupal.org/docs/contributed-themes/bootstrap-45-barrio-sass-starter-kit/installation was voor het installeren van de Barrio SASS Starter Kit. Het script om een subtheme te maken werkt.
Misschien is dit nog eens een goede link: https://ostraining.com/blog/drupal/how-to-use-bootstrap-5-and-sass-in-drupal-9/
Bootstrap wel gelukt
Het is gelukt om Bootstrap Barrio SASS te installeren met de volgende handleiding: https://www.drupal.org/docs/contributed-themes/bootstrap-45-barrio-sass-starter-kit/installation
Het hele verhaal van node.js en daarvoor nog nvm moet zich afspelen in de dir van het pjella_bs5_sass thema. Nvm is wel geïnstlleerd ,aar het moet worden geactiveerd met
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Zie daarvoor: https://heynode.com/tutorial/install-nodejs-locally-nvm/
Daarna volgt het verhaal met installatie van node.js en gulp zoals in de handleiding.
Radix kon ik uiteindelijk ook installeren met de kennis van hierboven.