====== Docker ======
Ein Webserver für SoSci Survey kann auch über einen Docker-Container betrieben werden.
**Warnung:** Diese Anleitung ist noch unvollständig (work in progress), es handelt sich um eine Minimal-Konfiguration ohne SSL-Verschlüsselung und weitere Sicherheitsmechanismen für den lokalen Betrieb. Verwenden Sie diese Konfiguration nicht zum Betrieb eines Produktivsystems.
Unter Windows installieren Sie dafür am besten [[https://docs.docker.com/desktop/setup/install/windows-install/|Docker Desktop]].
===== Konfiguration =====
Erstellen Sie ein Verzeichnis, z.B. ''C:\Daten\sosci'' und darin eine Datei ''docker-compose.yml'' mit folgendem Inhalt. Vergessen Sie nicht, an den mit ''%%__Ändern__%%'' markierten Stellen eigene Daten einzutragen.
services:
mariadb:
image: 'mariadb:11.0'
working_dir: /application
volumes:
- './data:/application'
- './data/mysql:/var/lib/mysql'
environment:
- MYSQL_ROOT_PASSWORD=__Ändern__
- MYSQL_DATABASE=sosci
- MYSQL_USER=sosci
- MYSQL_PASSWORD=__Ändern__
ports:
- '63003:3306'
webserver:
image: 'nginx:alpine'
working_dir: /application
volumes:
- './data:/application'
- './conf/nginx.conf:/etc/nginx/conf.d/default.conf'
- './survey:/var/www/html'
- './log:/var/log'
ports:
- '63000:80'
# - '443:443'
php-fpm:
build: php-fpm
working_dir: /application
volumes:
- './data:/application'
- './conf/php-ini-overrides.ini:/etc/php/8.4/fpm/conf.d/99-overrides.ini'
- './conf/php-ini-overrides.ini:/etc/php/8.4/cli/conf.d/99-overrides.ini'
- './survey:/var/www/html'
- './log:/var/log'
Das SoSci Survey Installationpaket entpacken Sie nach ''C:\Daten\sosci\survey\'', es sollte anschließend eine Datei ''C:\Daten\sosci\survey\index.html'' existieren.
Erstellen Sie folgende Konfiguration in ''C:\Daten\sosci\conf\nginx.conf''
server {
listen 80 default;
client_max_body_size 128M;
access_log /var/log/nginx/access.log;
root /var/www/html;
index index.php;
# try to serve file directly, fallback to index.php
location / {
try_files $uri $uri/ =404;
index index.php index.html;
}
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
}
# Forbidden directories
location ~ ^/(inc|lib|system)/ {
deny all;
return 403;
}
location ~ ^/files/(protected|upload|share)/ {
deny all;
return 403;
}
location ~ /\.ht {
deny all;
return 403;
}
# Use default favicon, so no entries will appear in the errorlog
location ~ ^/.*/favicon\.ico$ {
try_files /favicon.ico =404;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "error_log=/var/log/nginx/application_php_errors.log";
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
include fastcgi_params;
}
}
Erstellen sie weiterhin die Konfiguration ''C:\Daten\sosci\conf\php-ini-overrides.ini''
upload_max_filesize = 100M
post_max_size = 128M
Erstellen sie eine Konfiguration ''C:\Daten\sosci\php-fpm\Dockerfile''
FROM phpdockerio/php:8.4-fpm
WORKDIR "/application"
RUN apt-get update \
&& apt-get -y --no-install-recommends install \
php8.4-bcmath \
php8.4-gd \
php8.4-imap \
php8.4-intl \
php8.4-memcached \
php8.4-mysql \
php8.4-xml \
php8.4-gd \
php8.4-mbstring \
php8.4-zip \
php8.4-apcu \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
Starten Sie den Container in der Kommandozeile bzw. im Terminal mit folgendem Befehl:
docker-compose up
Künftig können Sie die Container dann auch direkt in Docker Desktop starten.
===== Zugriff auf die Container =====
Die Installationsroutine rufen Sie auf mittels [[http://localhost:63000/admin/install.php]].
Als Datenbank-Server in der SoSci Survey Installation tragen Sie ''mariadb:3306'' ein.