====== 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;
}