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 Docker Desktop.
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.
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.