====== 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.