====== Dokuwiki in nginx ====== [[https://www.atlantic.net/dedicated-server-hosting/how-to-install-dokuwiki-with-nginx-on-debian/|Quelle]] ---- 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|http://wiki.zonenranslite.de]] Dokuwiki erreichbar sein.\\ \\ Mit [[http://wiki.zonenranslite.de/install.php|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; }