Alle Abhängigkeiten installieren.
sudo apt-get install nginx php php-fpm php-curl php-gd php-opcache php-json php-mbstring php-intl php-imagick php-xml certbot -y
Falls Apache mit gestartet wird, stoppen und deinstallieren
sudo systemctl stop apahce2
sudo apt-get remove apache2 --purge
Und nginx starten.
sudo systemctl start nginx
Bei php-fpm auf die richtige Version von php achten.
Die richtige php-Version herausfinden.
php --version
sudo systemctl start php8.4-fpm
Das Dokuwiki Verzeichnis ertsellen und betreten.
sudo mkdir -p /var/www/wiki.zonenranslite.de/html && cd /var/www/wiki.zonenranslite.de/html
Dokuwiki herunterladen und entpacken.
sudo wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
sudo tar -xvzf dokuwiki-stable.tgz
Dokuwiki umbenennen, kann inzwischen einen anderen Namen haben.
mv dokuwiki-2025-05-14a dokuwiki
Eigentümer und Zugriffsrechte anpassen.
sudo chown -R www-data:www-data /var/www/wiki.zonenranslite.de/html/dokuwiki
sudo chmod -R 755 /var/www/wiki.zonenranslite.de/html/dokuwiki
Den Serverblock erstellen.
sudo nano /etc/nginx/sites-available/wiki.zonenranslite.de
In der Zeile fastcgi_pass unix:/var/run/php/php8.4-fpm.sock; die php-Version anpassen.
server { listen 80; server_name wiki.zonenranslite.de; root /var/www/wiki.zonenranslite.de/html/dokuwiki; index doku.php index.html index.html; location / { try_files $uri $uri/ @dokuwiki; } location @dokuwiki { rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; rewrite ^/(.*) /doku.php?id=$1&$args last; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Den Serverblock aktivieren.
sudo ln -s /etc/nginx/sites-available/wiki.zonenranslite.de /etc/nginx/sites-enabled/
Auf Fehler prüfen.
sudo nginx -t
Falls noch nicht geschehen, den server_name_hash_bucket auf 64 erhöhen.
sudo nano /etc/nginx/nginx.conf
... http { ... server_names_hash_bucket_size 64; ... } ...
nginx neustarten.
sudo systemctl restart nginx
Jetzt sollte unter http://wiki.zonenranslite.de Dokuwiki erreichbar sein.
Mit http://wiki.zonenranslite.de/install.php kann die Ersteinrichtung vorgenommen werden.
Im Anschluß die Datei install.php löschen.
Nun mit dem certbot ein TLS/SSL Zertifikat erstellen.
sudo certbot --nginx
Abschließend den externen Zugriff auf die Ordner einschränken.
sudo nano /etc/nginx/sites-available/wiki.zonenranslite.de
location / { try_files $uri $uri/ @dokuwiki; } location @dokuwiki { rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; rewrite ^/(.*) /doku.php?id=$1&$args last; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # Verweigert Zugriff auf die Ordner data, conf, bin, inc, vendor location ^~ /data/ { return 404; } location ^~ /conf/ { return 404; } location ^~ /bin/ { return 404; } location ^~ /inc/ { return 404; } location ^~ /vendor/ { return 404; }