Benutzer-Werkzeuge

Webseiten-Werkzeuge


dokuwiki_in_nginx

Dokuwiki in nginx

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 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;
    }
dokuwiki_in_nginx.txt · Zuletzt geändert: von ranslite