Nieuws

5 min leestijd
Drupal op Azure

We zijn altijd op zoek naar nieuwe manieren om onze workflows te verbeteren. Een groot deel van die flow, is hosting van onze websites, dus we hebben Microsoft Azure onderzocht om te zien of we het kunnen gebruiken en in welke mate. Als testscenario hebben we geprobeerd er een basis Drupal 8 website op te hosten. In ons achterhoofd hebben we ook geprobeerd dit te realiseren zonder veel geld uit te geven.

Na het spelen met het uitgebreide admin panel, hebben we vastgesteld dat er meerdere mogelijkheden zijn om onze Drupal 8 website te hosten. De aanbevolen methode is het gebruik van een lege webapp die verbonden is met een database.

Een tweede methode is het gebruik van een vooraf geconfigureerde webapp voor Drupal 8. Deze methode is echter niet schaalbaar zoals de aanbevolen methode.

Ten slotte kunt u ook gebruik maken van Bitnami, maar dit is gewoon een VPS die u naar wens kunt configureren zodat we deze niet gaan gebruiken.

We raken alleen de aanbevolen manier aan in dit artikel.

Om Drupal te kunnen gebruiken hebben we een codebase nodig. Er zijn twee opties om de codebase op te halen, beide hebben "composer" nodig. Dus na het maken van een webapp met SQL, zorg ervoor dat je Composer als extensie toevoegt.

Nadat u composer hebt ingeschakeld, kunt u een nieuwe Drupal 8-installatie maken of gebruik maken van een composer.json uit een reeds bestaand project.

Als u het package drupal-composer/drupal-project voor uw project gebruikt, kunt u problemen hebben met de composer zelf. De volgende fout kan optreden:

> scripts/composer/post-install.sh

'scripts' is not recognized as an internal or external command,

operable program or batch file.

Script scripts/composer/post-install.sh handling the post-install-cmd event returned with error code 1

An error has occurred during web site deployment.

Loading composer repositories with package information\r\nInstalling dependencies from lock file\r\nNothing to install or update\r\nGenerating optimized autoload files\r\n> scripts/composer/postinstall.sh\r\n'scripts' is not recognized as an internal or external command,\r\noperable program or batch file.\r\nScript scripts/composer/post-install.sh handling the post-install-cmd event returned with error code 1\r\nD:\Program Files (x86)\SiteExtensions\Kudu\61.60316.2745\bin\Scripts\starter.cmd D:\home\SiteExtensions\ComposerExtension\Hooks\deploy.cmd

De reden hiervoor is dat het gebruikte pakket enkele wijzigingen aanbrengt aan de composer.json en een post install script toevoegt. Dit script werd geschreven voor Unix maar Windows. Dus een verandering in het composer.json bestand om cmd te gebruiken is hier nodig:

"scripts": {

"post-install-cmd": "/scripts/composer/post-install.sh"

},

## Change to ##

"scripts": {

"post-install-cmd": "bash ./scripts/composer/post-install.cmd"

},

Na het wijzigen van het script, moet u (het oorspronkelijke script herschrijven tot commando's die Windows kan lezen).

Nu kunnen we de installatie en/of update van de composer veilig uitvoeren.

Een volgend probleem kan zich voordoen, vooral op de package die in dit voorbeeld werd gebruikt. Wanneer u nu de frontend probeert te bezoeken, zal u 2 foutmeldingen zien:

  • U heeft geen toestemming om deze directory of pagina te bekijken.
  • De source die u zoekt is verwijderd, van naam veranderd of tijdelijk niet beschikbaar.

Beide berichten zijn er omdat index.php zich niet in de root van het project bevindt. Omdat we de package drupal-composer/drupal-project gebruiken, zit onze index.php in het web/map.

Om het te laten werken, moeten we toegang krijgen tot het Azure portaal en naar de "Applicatie-instellingen" van onze webapp navigeren. Onderaan vindt u "Virtuele toepassingen en directory's" met één invulvakje:

virtual_apps_and_directories

Nadat je deze configuratie hebt opgeslagen en je de website hebt 'vernieuwd/gefreshed', zou je het Drupal installatieproces moeten zien.

Nu ben je klaar om te beginnen met de ontwikkeling van uw Drupal-site op Microsoft Azure! pal installatieproces.

drupal_installation_process