Hvordan lage et nettsted med TYPO3 - fra start til mål. Etappe 1 - installasjon.

TYPO3 er en lite kjent publiseringsløsning her i Norge, men som i en del andre land, f.eks Tyskland er klar markedsleder i flere segmenter. Det historiske ryktet har vært, TYPO3 har sin bakgrunn tilbake på slutten av 90 tallet, er bratt læringskurve (særlig for utviklere) og rotete kodebase. Uten å gå inn på akkurat dette i detalj, så skal jeg gjennom en kombinasjon av artikler og videoer vise hvordan man installerer og setter opp et nettsted med TYPO3, vise at TYPO3 er et moderne CMS, og ikke så vanskelig. Som eksempel skal jeg nye private nettsider.

Disposisjonen av artiklene er som følger. For hele serien brukes TYPO3 versjon 9.x som eksempel. TYPO3 CMS 9 LTS vil lanseres til høsten, og med en lang rekke markante forberinger bruker vi denne som demo. Men det meste vil også gjelde TYPO3 CMS 8 LTS.

Etappe 1 - installasjon

  • Krav til server
  • Installasjon av TYPO3 via Composer - selve progamvaren
  • Første oppstart - database, adminbruker osv
  • Omtale av tradisjonell installasjon
  • Backend - en kort gjennomgang
  • Installer nødvendige tillegg/extensions

Etappe 2 - implementer design

  • Hvordan TYPO3 lager sidene
  • TypoScript på 5 minutter - lage en ferdig side basert på bootstrap.
  • Ferdige design

Etappe 3 - Bootstrap Package og T3kit

  • Bootstrap package
  • T3kit

 

Krav til server

TYPO3 9.x krever PHP 7.2, Mysql 5.5, 5.7, MariaDB 10.2. I tillegg GraphicsMagick eller ImageMagick v6 (bildebehandling). Det er også en del ulike PHP-tillegg som bør installeres.

En oversikt finner du her, https://github.com/TYPO3/TYPO3.CMS/blob/TYPO3_8-7/INSTALL.md. Er laget for TYPO3 8.7, men  gjelder for det meste også 9.x

Installasjon av TYPO3 via Composer - selve progamvaren

Fra og med TYPO3 CMS 7 kan installasjoen gjøres med Composer, https://getcomposer.org/. Composer er et verktøy for å installere prosjekt/appilikasjoner og håndtere avhengigheter i PHP. Og da TYPO3 er basert på PHP og har en del interne avhengigheter, og avhenger i nyeste versjon av rammeverk som Symphony, Doctrine med flere er Composer et egnet verktøy.

For hjelp til installasjon av Composer vises det til https://getcomposer.org/

TYPO3 kan hentes og installeres ved hjelp av en enkel Composer kommando, men jeg foretrekke å sette opp composer.json - filen som styrer oppsettet manuel for bedre kontroll.

{
    "name": "linnearad/www.eriksvendsen.no",
    "description": "Setting up site for testing TYPO3 9.x",
    "type": "project",
    "license": "GPL-2.0-or-later",
    "authors": [
        {
            "name": "Erik Svendsen",
            "role": "developer",
            "email": "erik@linnearad.no",
            "homepage": "https://www.linnearad.no/"
        }
    ],
    "repositories": [
        {
            "type": "composer",
            "url": "https://composer.typo3.org/"
        }
    ],
    "require": {
        "typo3/minimal": "^9.2"
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "extra": {
        "typo3/cms": {
            "cms-package-dir": "{$vendor-dir}/typo3/cms",
            "web-dir": "www"
        }
    }
}

Det finnes en grei oppskift på installere med Composer i 5 minutter her, https://typo3.com/blog/how-to-install-typo3-using-composer-in-less-than-5-minutes/. 

Men jeg skal kort gå gjennom det viktige i composer.json. Ønskes mer informasjon, finner man omfattende forklaring på https://getcomposer.org/doc/04-schema.md#properties.

  • name: Navnet på prosjektet i dette tilfellet. Skrives som utvikler/prosjektnavn.
  • description: Bare en beskrivelse på pakken (prosjektet).
  • type: I dette tilfellet bruker vi project (prosjekt)
  • license: Definere lisensen - for TYPO3 må man bruke GPL-2.0-or-later
  • authors:  Hvem som er utvikler og/eller ansvarlig
  • repositories: Hvor skal pakken, programmet, biblioteka hentes fra. Standard hentes de fra packagist, men man kan hente fra egne pakkebrønner, og fra git, github. TYPO3 har sitt eget, som det referes til her. Jeg kommer senere tilbake til bruk av private pakkebrønner, f.eks github
  • require: Lister pakker som kreves av denne "pakken". I og med at vi når har et prosjekt - så er det "require" som bestemmer hva som skal installeres. I dette tilfellet har vi definert at vi skal hente ned en pakke som heter typo3/minimal i versjon >=9.2 men < 9.3. Dette er en metapakke som installerer en del andre pakker. Den installerer ikke hele TYPO3, men det mest nødvendige.
  • minimum-stability: Om man tkun tillater pakker som er stabile eller pakker som er dev, RC, beta. Vi velger dev fordi vi skal installere egenutvikla pakker.
  • prefer-stable: Med verdien "true" vil stabile pakker hentes om det finnes. 
  • extra: Innstillinger her definer hvor webroot er samt en del andre instillinger for TYPO3. Disse brukes av spesifikke script under installasjonen.

Og så beklager jeg om det skulle være noen unøyaktigheter. Jeg er ingen Composer spesialist. Men tror dette er nok hjelp til å bruke Composer.

Installasjonen!

Da logger jeg inn på serveren for å få tilgang til kommandolinje. Manøvrer meg til katalogen hvor jeg skal ha nettstedet. Personlig har jeg en helt identisk logikk for alle server, nemlig /var/www/sites/domenenavn/ - så i dette tilfellet så manøvrer jeg meg til /var/www/sites, og så lager jeg katalogen www.eriksvendsen.no her, og skifter eier på denne til webbruker (f.eks www-data) . Flytter meg så til denne katalogen og skifter bruker til webbruker eller bruker i webbruker sin gruppe. Composer skal nemlig ikke kjøres som root, og det er viktig at man kjører med en bruker som gjør at webbruker etterpå får lese og skrivetilgang.

Det neste jeg gjør er å lage composer.json fila

nano composer.json

Kopierer så inn koden - som jeg har laget fra før og lagrer fila. Neste er

composer install

Nå vil Composer installere TYPO3 samt en del bibliotek som TYPO3 bruker.

Når Composer er ferdig, så flytter jeg meg til www - som er egentlig webroot for www.eriksvendsen.no. Her lager jeg ei tom fil med navnet FIRST_INSTALL

touch FIRST_INSTALL

Så fyrer jeg opp nettleseren og skriver www.eriksvendsen.no. Da skal man få opp installasjonssida til TYPO3. Her får man varsler om eventuelle mangler osv. Følg instruksjonene videre. Og da sitter man med en fungerende installasjon av TYPO3.

Videoen under viser dette litt mer i detalj.

Tradisjonell installasjon

TYPO3 kan også installeres gjennom å laste ned TYPO3 (tar.gz, zip), pakke den ut og så kjøre installprosessen derfra. Prosessen er beskrevet her for versjon 8.7, https://docs.typo3.org/typo3cms/InstallationGuide//QuickInstall/GetAndUnpack/Index.html.

Prossen er identisk for versjon 9.x - du bare endre versjonsnummer - f.eks som følger

wget get.typo3.org/9.2 -O typo3_src-9.2.x.tar.gz

Kort om backend

Normal innlogging til TYPO3 backend er <domene>/typo3/.

Backend til TYPO3 består av som skjembildet over viser av 3 distinkte områder, en toppmeny, sidemeny til venstre og et område som inneholder innhold/funksjonaliteten som er valgt.

Toppmenyen: Se bilde 1 (under) for forklaring av funksjonalitet. Toppmenyen vil være mer eller mindre lik for alle brukere, med unntak av "Info om installasjon".

Sidemeny: Se bilde 2 (under) for grov forklaring av funksjonalitet. Sidemenyen vil variere avhengig av brukerens rettigheter og installert funksjonalitet. En vanlig bruker vil kun se den funkjsonaliteten bruker er gitt tilgang til, primært tilgang til innholdsrelaterte funksjoner. Administrasjonsverktøy er kun tilgjengelig for de med rettigheter til å gjøre endringer for installasjonen.

Innholdsområde: Se bilde 3 (under). Innholdet her vil variere avhengig av funksjonalitet valgt i sidemeny, i dette tilfelle har vi et sidetre og område hvor vi legger inn innhold.

http://www.typo3manual.com/typo3-version-8/, forklarer forholdsvis mye om hvordan håndtere innhold.

Installere nødvendige extensions

I og med at vi har installert ved hjelp av Composer og brukte "typo3/minimal" så er ikke alt vi trenger installert. Dvs, faktisk kunne vi laget en nettside med det utgangspunktet vi har, men det er en del funksjonalitet som faktisk vi ønsker. Samtidig er det en av fordelen med å installere via Composer for verjon 9.x. Man kan installere akkurat det av systemextensions som man ønsker eller trenger.

I dette tilfellet skal jeg sette opp en privat nettside/blog. Jeg trenger da ikke funksjonalitet som arbeidsflyt/versjoner, innlogging av nettstedsbrukere. Trenger heller ikke mulighet til notater i backend, sortere sider, lage handlinger osv. Å ha en installasjon som inneholder kun det man trenger gir økt sikkerhet og økt ytelse.

Men hva trenger vi da!

For det første har vi ikke installert nødvendig funksjonalitet som på en enkel måte kan "rendrer" ulike elementer på nettsiden. Kan også være greit med enklere oppsett av maler (templates). TypoScript og maler er en nøkkel i TYPO3 som etappe 2 vil vise. Så kan det være greitt med i søppelbøtte, samt kunne se hvordan nettsidene ser ut i fra backend. De 4 systemextension installeres med følgende kommander i komandolinje. De trenger ikke versjon, den finner de ut av slev.

composer require typo3/cms-tstemplate
composer require typo3/cms-fluid-styled-content
composer require typo3/cms-recycler
composer require typo3/cms-viewpage

I tillegg vil jeg øke sikkerhet knyttet til innlogging. TYPO3 er som enterprise CMS regnet for å være svært sikkert, men vi har faktisk selv for nettsider som ikke bruker https mulighet for å kryptere innloggingen via bruk av RSA og nøkler. Så da installer vi dette også

composer require typo3/cms-rsaauth

Vi skal også følge anbefalingen fra opprinnelig installasjon om å installere adminpanel

composer require typo3/cms-adminpanel

Innstallasjon skjer altså ved at vi i kommandolinje skriver:

composer require <packagename> - i dette tilfellet composer require typo3/cms-tstemplate

Videoen under viser kort hva som må gjøres og hva som blir resultatet.

Og så har jeg glemt at vi bør ha en editor på plass. Det er greitt å kunne legge inn lenker i tekst, bruke overskrifter etc. TYPO3 bruker CKEditor, så får å få denne på plass så skriver vi.

composer require typo3/cms-rte-ckeditor

Da skulle jeg ha alt på plass.

Siste ord for etappe 1

Da var vi ferdig med etappe 1