,

CMS TYPO3 auf VPS installieren

Lesedauer 5 Minuten

Inhaltsverzeichnis

0. Überblick

  • Verwendetes System: Debian 11 64 bit
  • Genutzter User: Ich nehme alles als „root“ vor
  • Testsystem: VPS General Purpose
  • Zeitdauer: ca. 5 Minuten
  • Schwierigkeit: Einfach. Nur Code kopieren 😉
  • Besonderheiten:
    • Grundlage ist folgende Anleitung: Traefik Reverseproxy installieren Diese Anleitung muss zuerst ausgeführt werden.
    • Die Installation von Docker / Docker Compose wird hier vorausgesetzt.

1. Typo3 installieren

1.1 Einleitung

Typo3 ist eine open source Content Management System (CMS). Laut typo3.com nutzen derzeit 500.000 Webseiten im Internet dieses CMS und gibt ca. 1500 Erweiterungen dazu. Typo3 ist ein sehr mächtiges CMS, welches jedoch keinen so leichten Einstieg wie beispielsweise WordPress bietet.

1.2 Infos zu yml Dateien

Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Du kannst den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator

1.3 Vorbereitung

Diese Anleitung basiert auf dem aktuellen Debian 10 Betriebssystem. Typo3 werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.

Um Typo3 neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik. Die Anleitung dazu findest du hier: https://www.easyname.at/blog/vps/anwendungen/traefik-reverseproxy-auf-vps-installieren

1.3.1 Verzeichnis erstellen

Wir erstellen uns ein neues Verzeichnis, in welchem wir später alle Daten von Typo3 abspeichern. Dazu geben wir folgendes in der Konsole ein:

mkdir -p /opt/containers/typo3/{database,fileadmin,typo-build,typo3conf,uploads}

Du kannst hier auch ein anderes Verzeichnis verwenden. Musst dann aber die gesamte Anleitung entsprechend anpassen.

1.3.2 docker-compose.yml erstellen

Nun können wir mit der eigentlichen „Installation“ von Typo3 beginnen. Dazu öffnest du folgende Datei:

nano /opt/containers/typo3/docker-compose.yml

Nun kopierst du folgenden Code in die Datei. Dieser Code ist unser Bauplan für unseren Typo3 Container.

version: '2'

services:

typo3-db:

image: mariadb:latest

container_name: typo3-db

environment:

- MARIADB_USER=typo3

- MARIADB_DATABASE=typo3

- MARIADB_PASSWORD=sicher12!

- MARIADB_CHARACTER_SET=utf8mb4

- MARIADB_COLLATE=utf8mb4_unicode_ci

- MARIADB_RANDOM_ROOT_PASSWORD=1

volumes:

`- ./database:/var`/lib/mysql

networks:

- default

restart: unless-stopped

typo3:

build: ./typo-build

container_name: typo3

restart: unless-stopped

volumes:

`- ./fileadmin:/var`/www/html/fileadmin

`- ./typo3conf:/var`/www/html/typo3conf

`- ./uploads:/var`/www/html/uploads

networks:

- default

- proxy

depends_on:

- typo3-db

labels:

- "traefik.enable=true"

- "traefik.http.routers.typo3.entrypoints=http"

- "traefik.http.routers.typo3.rule=Host('typo.euredomain.de')" # Hier eure URL eingeben #

- "traefik.http.middlewares.typo3-https-redirect.redirectscheme.scheme=https"

- "traefik.http.routers.typo3.middlewares=typo3-https-redirect"

- "traefik.http.routers.typo3-secure.entrypoints=https"

- "traefik.http.routers.typo3-secure.rule=Host('typo.euredomain.de')" # Hier eure URL eingeben #

- "traefik.http.routers.typo3-secure.tls=true"

- "traefik.http.routers.typo3-secure.tls.certresolver=http"

- "traefik.http.routers.typo3-secure.service=typo3"

- "traefik.http.services.typo3.loadbalancer.server.port=80"

- "traefik.docker.network=proxy"

- "traefik.http.routers.typo3-secure.middlewares=secHeaders@file"

networks:

proxy:

external: true

Nun müssen wir noch einiges anpassen.

1.3.3 Hostname anpassen

Nun musst du noch den Hostnamen anpassen, über welchen später Moodle erreichbar sein soll.

Diese beiden Zeilen musst du anpassen.

- "traefik.http.routers.typo3-app.rule=Host('typo.euredomain.de')"

- "traefik.http.routers.typo3-app-secure.rule=Host('typo.euredomain.de')"

In meinem Fall also:

- "traefik.http.routers.typo3.rule=Host('typo.testbereich.net')"

- "traefik.http.routers.typo3-secure.rule=Host('typo.testbereich.net')"

Wenn du Typo3 direkt auf deiner „Hauptdomain“ betreiben willst, dann änderst du es folgendermaßen ab:

"traefik.http.routers.typo.rule=Host('www.euredomain.de','euredomain.de')"

"traefik.http.routers.typo-secure.rule=Host('www.euredomain.de','euredomain.de')"

1.3.4 Datenbank Passwort anpassen

Nachdem du den Hostnamen angepasst hast, musst du noch das Datenbank Passwort anpassen. Vergib ein langes, sicheres Kennwort.

Folgende Zeile musst du ändern:

  • MARIADB_PASSWORD=sicher12!

Ich ändere also meine Kennwörter ab. Dies könnte beispielsweise so sein:

  • MARIADB_PASSWORD=Fhas23!da4

1.3.5 Dockerfile anlegen

Nun legen wir noch die Datei an, welche später unseren Typo3 Container baut. Dazu gibst du folgendes ein:

nano /opt/containers/typo3/typo-build/Dockerfile

In die Datei kopierst du folgendes:

# Docker image for TYPO3 CMS

# Copyright (C) 2016-2020 Martin Helmich martin@helmich.me

# and contributors https://github.com/martin-helmich/docker-typo3/graphs/contributors

#

# This program is free software: you can redistribute it and/or modify

# it under the terms of the GNU General Public License as published by

# the Free Software Foundation, either version 3 of the License, or

# (at your option) any later version.

#

# This program is distributed in the hope that it will be useful,

# but WITHOUT ANY WARRANTY; without even the implied warranty of

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

# GNU General Public License for more details.

#

# You should have received a copy of the GNU General Public License

# along with this program. If not, see https://www.gnu.org/licenses/.

FROM php:7.4-apache-buster

LABEL maintainer="Martin Helmich typo3@martin-helmich.de"

# Install TYPO3

RUN apt-get update && \

`apt-get` install -y --no-install-recommends \

wget \

# Configure PHP

libxml2-dev libfreetype6-dev \

libjpeg62-turbo-dev \

libmcrypt-dev \

libpng-dev \

libpq-dev \

libzip-dev \

zlib1g-dev \

# Install required 3rd party tools

graphicsmagick && \

# Configure extensions

docker-php-ext-configure gd --with-libdir=/usr/include/ --with-jpeg --with-freetype && \

docker-php-ext-install -j$(nproc) mysqli soap gd zip opcache intl pgsql pdo_pgsql && \

`echo 'always\_populate\_raw\_post\_data` = -1\nmax_execution_time = 240\nmax_input_vars = 1500\nupload_max_filesize = 32M\npost_max_size = 32M' > /usr/local/etc/php/conf.d/typo3.ini && \

# Configure Apache as needed

a2enmod rewrite && \

`apt-get` clean && \

`apt-get` -y purge \

libxml2-dev libfreetype6-dev \

libjpeg62-turbo-dev \

libmcrypt-dev \

libpng-dev \

libzip-dev \

zlib1g-dev && \

`rm -rf /var`/lib/apt/lists/* /usr/src/*

RUN cd /var/www/html && \

`wget` -O download.tar.gz https://get.typo3.org/10.4.17 && \

echo "05a9f6352b2506b2a3446d0e8d18cefb7ed5e25c0ee5f1aff80ccf68fdc775c6 download.tar.gz" > download.tar.gz.sum && \

sha256sum -c download.tar.gz.sum && \

tar -xzf download.tar.gz && \

rm download.* && \

ln -s typo3_src-* typo3_src && \

ln -s typo3_src/index.php && \

ln -s typo3_src/typo3 && \

cp typo3/sysext/install/Resources/Private/FolderStructureTemplateFiles/root-htaccess .htaccess && \

mkdir typo3temp && \

mkdir typo3conf && \

mkdir fileadmin && \

mkdir uploads && \

touch FIRST_INSTALL && \

`chown -Rwww-data`. .

1.3.6 Ordnerberechtigungen anpassen

Nun passen wir noch die Berechtigungen an, damit Typo3 später auf unsere Ordner zugreifen kann. Gib dazu folgendes ein:

chown www-data:www-data /opt/containers/typo3/fileadmin/

chown www-data:www-data /opt/containers/typo3/uploads

chown www-data:www-data /opt/containers/typo3/typo3conf

Nun sind wir fertig mit der Vorbereitung.

2. Typo3 starten

Als erstes „bauen“ wir unseren Container. Gib dazu folgendes ein:

cd /opt/containers/typo3/

docker compose build 

Nun können wir Typo3 starten. Dazu gibst du folgendes ein:

docker compose -f /opt/containers/typo3/docker-compose.yml up -d 

Jetzt gehst du mit deinem Browser auf die Webseite. Dies ist bei mir https://typo.testbereich.net

Typo3 starten - Website im Browser

Hier sollte jetzt alles grün sein.

Anschließend gibst du diese Daten ein sowie das Kennwort, welches du im Schritt 1.3.4 vergeben hast.

Daten und Kennwort eingeben TYPO3

Nun wählen wir die Datenbank „typo3“ aus.

Datenbank typo3 auswählen

Hier musst du noch einen Nutzernamen sowie Passwort vergeben für den Administrator Account.

Nutzernamen und Passwort für Administrator Account vergeben TYPO3

Jetzt bist du fertig mit der Installation.

TYPO3 Installation abgeschlossen

Klickt hier aber noch NICHT weiter. Wir müssen noch eine Einstellung (TYPO3 Exception 1588095935 — TYPO3 Exceptions master documentation) anpassen.

Gib dazu folgendes ein:

nano /opt/containers/typo3/typo3conf/LocalConfiguration.php

Scrolle nun ganz nach unten und füge dort folgende Zeile noch ein:

'security.backend.enforceReferrer' => false,

Dies sollte dann so aussehen.

Einstellungen für TYPO3 anpassen

Nun kannst du im Webbrowser weitermachen und dich ganz normal anmelden mit deinem neu erstellten Administrator Account.

TYPO3 Login im Webbrowser

Hier hast du nun alle Einstellungen und kannst Typo3 anpassen.

TYPO3 Backend im Webbrowser

easyname ist ein erfolgreicher und bekannter österreichischer Anbieter von Cloud-Services, Domains sowie Webhosting bis hin zur Server-Infrastruktur und gehört seit 2020 zur dogado group.
Das Unternehmen ist seit 2006 in Österreich erfolgreich am Markt und inzwischen auch in vielen anderen Ländern weltweit tätig. Sowohl das Team als auch die gehosteten Daten befinden sich in Österreich.

easyname liegt die Datensicherheit besonders am Herzen und stellt daher zu jedem Hosting-Paket auch kostenlose SSL-Zertifikate zur Verfügung. Mit intuitiven Tools zur Erstellung von Websites und Webshops und mit Easy Install Apps wie WordPress, Joomla oder PrestaShop können alle easyname-Kunden schnell in die Online-Welt einsteigen.