Skip to content

Testumgebung auf macOS

Stefan Weil edited this page Jan 29, 2025 · 11 revisions

Testumgebung auf macOS

Kitodo.Presentation kann nach dieser Anleitung unter macOS installiert und entwickelt werden.

Installation und Konfiguration Webserver

# Installiere Webserver Apache2.
brew install httpd
cat <<eod > $HOMEBREW_PREFIX/etc/httpd/extra/typo3.conf
# Virtual Host für TYPO3

Include $HOMEBREW_PREFIX/etc/httpd/extra/httpd-vhosts.conf

# a2enmod alias authz_core deflate expires filter headers rewrite setenvif
LoadModule deflate_module lib/httpd/modules/mod_deflate.so
LoadModule expires_module lib/httpd/modules/mod_expires.so
LoadModule php_module     lib/httpd/modules/libphp.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

AddType application/x-httpd-php .php

DirectoryIndex index.php index.html

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

<VirtualHost *:8080>
    DocumentRoot "$HOME/Sites/typo3"
    ServerName local.typo3
    
    <Directory "$HOME/Sites/typo3">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog "$HOMEBREW_PREFIX/var/log/httpd/typo3-error_log"
    CustomLog "$HOMEBREW_PREFIX/var/log/httpd/typo3-access_log" common
</VirtualHost>
eod
echo Include $HOMEBREW_PREFIX/etc/httpd/extra/typo3.conf >> $HOMEBREW_PREFIX/etc/httpd/httpd.conf
brew services start httpd

Anschließend wird noch in der Datei /etc/hosts die Zeile 127.0.0.1 local.typo3 ergänzt. Dafür benötigt man Administratorrechte. Jetzt sollte der Webserver laufen und unter der URL http://local.typo3:8080/ eine leere Seite anzeigen.

Installation von TYPO3 und Kitodo.Presentation

# Lege eine Datenbank für TYPO3 an.
TYPO3_INSTALL_DB_DBNAME=typo3_12
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 'DB_PASSWORD';"

# Installierte TYPO3 v12.
cd $HOME/Sites
composer create-project typo3/cms-base-distribution:^12 typo3_12
ln -s typo3_12/public typo3

# Konfiguriere TYPO3 mit einer Beispielseite.
cd $HOME/Sites/typo3_12
vendor/bin/typo3 setup --driver=mysqli --host=127.0.0.1 --port=3306 --dbname=$TYPO3_INSTALL_DB_DBNAME --username=typo3 --password=DB_PASSWORD --admin-username=admin --admin-user-password='ADMIN_PASSWORD' --admin-email= --project-name="Kitodo Test" --create-site=http://local.typo3:8080/ --server-type=apache

# Damit die Metadaten und Strukturdaten in Kitodo.Presentation korrekt zweisprachig angelegt werden,
# braucht man eine spezielle Site-Konfiguration:
cat <<eod >$HOME/Sites/typo3_127/config/sites/main/config.yaml
base: 'http://local.typo3:8080/'
languages:
  -
    title: German
    enabled: true
    base: /
    typo3Language: de
    locale: de_DE
    navigationTitle: Deutsch
    flag: de
    languageId: 0
    hreflang: de-DE
    websiteTitle: ''
  -
    title: English
    enabled: true
    locale: en_US
    hreflang: en-US
    base: /en/
    typo3Language: default
    websiteTitle: ''
    navigationTitle: English
    fallbackType: strict
    fallbacks: '0'
    flag: en-us-gb
    languageId: 1
rootPageId: 1
websiteTitle: ''
eod

# Installiere die Erweiterung Kitodo.Presentation.
composer config repositories.kitodo git https://github.com/stweil/kitodo-presentation.git
composer require kitodo/presentation:dev-main
vendor/bin/typo3 extension:setup

Installation von Solr

# Installiere Solr 9.
brew install solr
# Installiere Highlighting.
mkdir -p $HOMEBREW_PREFIX/opt/solr/modules/ocrsearch/lib
curl -LO https://github.com/dbmdz/solr-ocrhighlighting/releases/download/0.9.1/solr-ocrhighlighting-0.9.1.jar
mv solr-ocrhighlighting-0.9.1.jar $HOMEBREW_PREFIX/opt/solr/modules/ocrsearch/lib
# Installiere Konfiguration.
cp -av $HOME/Sites/typo3_12/vendor/kitodo/presentation/Configuration/ApacheSolr/configsets /opt/homebrew/var/lib/solr
# Aktiviere Library-Suche (sonst wird Highlighting nicht gefunden).
echo 'SOLR_OPTS="$SOLR_OPTS -Dsolr.config.lib.enabled=true"' >> $HOMEBREW_PREFIX/opt/solr/share/solr/solr.in.sh

Falls für TYPO3 die Debug-Voreinstellungen aktiviert sind, muss unbedingt auch noch die Konfigurationseinstellung [SYS][exceptionalErrors] = 12290 auf [SYS][exceptionalErrors] = 4098 geändert werden, da andernfalls kein Solr-Kern angelegt werden kann (siehe GitHub Issue).

Debugger

Für die Fehlersuche oder Softwareentwicklung empfiehlt es sich, einen Debugger zu verwenden, der es erlaubt, den PHP-Code von TYPO3 und Kitodo.Presentation kontrolliert auszuführen.

Dafür eignet sich beispielsweise Visual Studio Code von Microsoft. Es benötigt ein paar Erweiterungen (getestet mit PHP Debug, PHP DocBlocker, PHP Intelephense, TYPO3 TypoScript, die aber vermutlich nicht alle notwendig sind).

Die Verbindung zwischen der Webapplikation und dem Debugger erfolgt mit Hilfe von XDebug, das mit pecl install xdebug installiert wird. Zusätzlich sind eine Reihe von Einstellungen für PHP und den Debugger vorzunehmen (TODO: Details beschreiben).