-
Notifications
You must be signed in to change notification settings - Fork 1
Testumgebung mit Podman
Die Docker-Alternative Podman eignet sich sehr gut für schnelle Tests und Demos.
Mit Podman Desktop ist es besonders einfach, eine Testumgebung aufzusetzen. Daher wird empfohlen, diese Software als erstes zu installieren. Es gibt Downloads für Linux, macOS und Windows.
Als Testumgebung eignet sich beispielsweise die aktuelle stabile Version von Debian (bookworm). Das entsprechende Image docker.io/debian:bookworm-slim kann in Podman Desktop heruntergeladen werden. Alternativ gibt es auch die Testversion von Debian (trixie) mit dem Image docker.io/debian:trixie-slim.
Mit dem zuvor installierten Image startet man einen Container, am einfachsten in Podman Desktop. Dabei ist es wichtig, den Container-Port 80 auf einen Host-Port zu mappen. Die Anleitung gilt für den Host-Port 8080.
Optional kann man auch einen passenden Namen für den Container und den im Container gestarteten Host wählen.
Alternativ kann man einen Container aus der Kommandozeile so starten:
mkdir -p $HOME/kitodo
podman run -it --replace --name kitodo --publish 127.0.0.1:8080:80 --volume $HOME/kitodo:/mnt docker.io/library/debian:bookworm-slim
Die Installation von TYPO3 folgt der offiziellen Installationsanleitung.
Alle Befehle werden dabei in der Konsole des zuvor gestarteten Podman-Containers eingegeben.
Zunächst werden die Voraussetzungen für die Installation sichergestellt:
apt-get update
apt-get install -y apache2 mariadb-server libapache2-mod-php locales php-curl php-gd php-intl php-mysql php-xml php-zip composer
# apt-get install -y ghostscript graphicsmagick graphicsmagick-imagemagick-compat
# Install optional tools.
apt-get install -y vim-tiny
sed -i 's/^# *de_DE.UTF-8/de_DE.UTF-8/' /etc/locale.gen
locale-gen
PHP_VERSION=$(php -r '$v = explode(".", PHP_VERSION); echo $v[0] . "." . $v[1];')
cat <<eod >/etc/php/$PHP_VERSION/mods-available/typo3.ini
; Settings for Typo3:
; memory_limit >= 256MB
memory_limit=256M
; max_execution_time >= 240 seconds
max_execution_time=240
; max_input_vars >= 1500
max_input_vars=1500
; PHP JIT compiler must be activated. Needed for proper Fluid parsing
pcre.jit=1
eod
phpenmod typo3
# Füge eine apache2 Konfiguration hinzu:
cat <<eod >/etc/apache2/sites-available/typo3.conf
ServerName $(hostname)
<Directory /var/www/>
AllowOverride All
</Directory>
eod
# Aktiviere die config:
a2enmod alias authz_core deflate expires filter headers rewrite setenvif
a2ensite typo3
Dann folgt die Installation von TYPO3:
# Hier die gewünschte Version von TYPO3 (11, 12 oder 13) einstellen.
TYPO3_VERSION=12
TYPO3_INSTALL_DB_DBNAME=typo3_$TYPO3_VERSION
TYPO3_INSTALL_SITE_BASE_URL=/$TYPO3_VERSION/
TYPO3_INSTALL_SITE_BASE_URL=/
export TYPO3_INSTALL_SITE_BASE_URL
# Datenbank anlegen.
service mariadb restart
mariadb --execute="DROP DATABASE IF EXISTS $TYPO3_INSTALL_DB_DBNAME; CREATE DATABASE $TYPO3_INSTALL_DB_DBNAME; GRANT ALL ON $TYPO3_INSTALL_DB_DBNAME.* TO typo3@localhost IDENTIFIED BY 'password';"
export COMPOSER_ALLOW_SUPERUSER=1
cd /var/www
composer create-project typo3/cms-base-distribution:^$TYPO3_VERSION typo3_$TYPO3_VERSION
cd /var/www/typo3_$TYPO3_VERSION
<< eod
export TYPO3_INSTALL_DB_DRIVER=mysqli
export TYPO3_INSTALL_DB_USER
export TYPO3_INSTALL_DB_PASSWORD
export TYPO3_INSTALL_DB_HOST
export TYPO3_INSTALL_DB_PORT
export TYPO3_INSTALL_DB_UNIX_SOCKET
export TYPO3_INSTALL_DB_USE_EXISTING
export TYPO3_INSTALL_DB_DBNAME
export TYPO3_INSTALL_ADMIN_USER
export TYPO3_INSTALL_ADMIN_PASSWORD
export TYPO3_INSTALL_SITE_NAME
export TYPO3_INSTALL_SITE_SETUP_TYPE
export TYPO3_INSTALL_SITE_BASE_URL
export TYPO3_INSTALL_WEB_SERVER_CONFIG
eod
# Falls TYPO3 über den Webbrowser installiert werden soll, wird das benötigt.
# touch public/FIRST_INSTALL
# Einfacher ist die Installation von TYPO3 per Kommandozeile.
if [ $TYPO3_VERSION -lt 12 ]; then
# TYPO3 11.
rm -f public/typo3conf/LocalConfiguration.php
# Für DFG-Viewer: --site-setup-type=no
vendor/bin/typo3cms install:setup --database-driver=mysqli --database-user-name=typo3 --database-user-password=password --database-host-name=127.0.0.1 --database-port=3306 --database-socket= --use-existing-database --database-name=typo3_$TYPO3_VERSION --admin-user-name=admin --admin-password=Passwort+123 --site-name="Kitodo Test" --site-setup-type=site --site-base-url=/ --web-server-config=apache
else
# TYPO3 12 und 13.
rm -f config/system/settings.php
# Für DFG-Viewer: --create-site=
vendor/bin/typo3 setup --driver=mysqli --host=127.0.0.1 --port=3306 --dbname=typo3_$TYPO3_VERSION --username=typo3 --password=password --admin-username=admin --admin-user-password=Passwort+123 --admin-email= --project-name="Kitodo Test" --create-site=http://localhost:8080/ --server-type=apache
fi
chown -R www-data: .
test -d /var/www/html && mv /var/www/html /var/www.html~
cd /var/www
rm -vf html
ln -s typo3_$TYPO3_VERSION/public html
# Webserver starten.
service apache2 restart
# rm -f index.html
# ln -s ../dfgviewer/public/* ../dfgviewer/public/.htaccess .
Die Administrationsoberfläche von TYPO3 ist jetzt über http://localhost:8080/typo3/ zugänglich. Für die Anmeldung verwendet man dabei die Benutzerkennung admin und das Passwort Passwort+123.
# Installation Kitodo.Presentation von GitHub.
cd /var/www/typo3_$TYPO3_VERSION
composer config repositories.kitodo git https://github.com/kitodo/kitodo-presentation.git
composer require kitodo/presentation:dev-master
vendor/bin/typo3 extension:setup
# composer config platform.php $PHP_VERSION
# composer require subhh/libconnect
# composer require kitodo/presentation
# vendor/bin/typo3 extensionmanager:extension:install dlf
# vendor/bin/typo3 extensionmanager:extension:install dfgviewer
# Das folgende Repositorium enthält Patches für TYPO3 12.
composer config repositories.dfgviewer git https://github.com/stweil/dfg-viewer.git
composer require slub/dfgviewer:dev-master
vendor/bin/typo3cms configuration:set 'FE/pageNotFoundOnCHashError' 0
There are still pending pull requests for slub/dfgviewer and slub/slub_digitalcollections. Therefore personal repositories which provide the necessary code are currently used.
#!/usr/bin/env bash
# Stop script execution if an error occurs.
set -e
# Trace all executed commands.
set -x
apt-get update
apt-get install -y apache2 mariadb-server libapache2-mod-php locales php-curl php-gd php-intl php-mysql php-xml php-zip composer
apt-get install -y vim-tiny
sed -i 's/^# *de_DE.UTF-8/de_DE.UTF-8/' /etc/locale.gen
locale-gen
PHP_VERSION=$(php -r '$v = explode(".", PHP_VERSION); echo $v[0] . "." . $v[1];')
cat <<eod >/etc/php/$PHP_VERSION/mods-available/typo3.ini
; Settings for Typo3:
; memory_limit >= 256MB
memory_limit=256M
; max_execution_time >= 240 seconds
max_execution_time=240
; max_input_vars >= 1500
max_input_vars=1500
; PHP JIT compiler must be activated. Needed for proper Fluid parsing
pcre.jit=1
eod
phpenmod typo3
cat <<eod >/etc/apache2/sites-available/typo3.conf
ServerName $(hostname)
<Directory /var/www/>
AllowOverride All
</Directory>
eod
a2enmod alias authz_core deflate expires filter headers rewrite setenvif
a2ensite typo3
# Set the major release of TYPO3 unless it was already set.
[ -z "${TYPO3_VERSION}" ] && TYPO3_VERSION=12
TYPO3_INSTALL_DB_DBNAME=typo3_$TYPO3_VERSION
TYPO3_INSTALL_SITE_BASE_URL=/$TYPO3_VERSION/
TYPO3_INSTALL_SITE_BASE_URL=/
export TYPO3_INSTALL_SITE_BASE_URL
service mariadb restart
mariadb --execute="DROP DATABASE IF EXISTS $TYPO3_INSTALL_DB_DBNAME; CREATE DATABASE $TYPO3_INSTALL_DB_DBNAME; GRANT ALL ON $TYPO3_INSTALL_DB_DBNAME.* TO typo3@localhost IDENTIFIED BY 'password';"
export COMPOSER_ALLOW_SUPERUSER=1
cd /var/www
composer create-project typo3/cms-base-distribution:^$TYPO3_VERSION typo3_$TYPO3_VERSION
cd /var/www/typo3_$TYPO3_VERSION
vendor/bin/typo3 setup --driver=mysqli --host=127.0.0.1 --port=3306 --dbname=typo3_$TYPO3_VERSION --username=typo3 --password=password --admin-username=admin --admin-user-password=Passwort+123 --admin-email= --project-name="Kitodo Test" --create-site= --server-type=apache
test -d /var/www/html && mv /var/www/html /var/www.html~
cd /var/www
rm -vf html
ln -s typo3_$TYPO3_VERSION/public html
service apache2 restart
cd /var/www/typo3_$TYPO3_VERSION
composer config repositories.kitodo git https://github.com/kitodo/kitodo-presentation.git
composer require kitodo/presentation:dev-master
composer config repositories.slub_digitalcollections git https://github.com/stweil/slub_digitalcollections.git
composer require slub/slub-digitalcollections:dev-master
composer config repositories.dfgviewer git https://github.com/stweil/dfg-viewer.git
composer require slub/dfgviewer:dev-master
# vendor/bin/typo3 setup --driver=mysqli --host=127.0.0.1 --port=3306 --dbname=typo3_$TYPO3_VERSION --username=typo3 --password=password --admin-username=admin --admin-user-password=Passwort+123 --admin-email= --project-name="Kitodo Test" --server-type=apache
vendor/bin/typo3 extension:setup
# Add some TYPO3 settings.
if [ $TYPO3_VERSION -lt 12 ]; then
echo Settings for TYPO3 $TYPO3_VERSION are missing.
else
cat << eod >config/system/additional.php
<?php
// Debug settings.
\$GLOBALS['TYPO3_CONF_VARS']['BE']['debug'] = true;
\$GLOBALS['TYPO3_CONF_VARS']['FE']['debug'] = true;
// \$GLOBALS['TYPO3_CONF_VARS']['LOG']['TYPO3']['CMS']['deprecations']['writerConfiguration']['TYPO3\CMS\Core\Log\Writer\FileWriter']['disabled'] = false;
\$GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask'] = '*';
\$GLOBALS['TYPO3_CONF_VARS']['SYS']['displayErrors'] = 1;
// Settings for DFG Viewer.
\$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['enforceValidation'] = false;
\$GLOBALS['TYPO3_CONF_VARS']['FE']['disableNoCacheParameter'] = false;
\$GLOBALS['TYPO3_CONF_VARS']['FE']['pageNotFoundOnCHashError'] = false;
eod
fi
chown -R www-data: .
# Clear TYPO3 caches after modifying settings
vendor/bin/typo3 cache:flush