Ошибки в настройке Nginx для Dokuwiki

Рейтинг: 1Ответов: 1Опубликовано: 19.02.2023

Доброго времени суток!

Происходит постоянное перенаправление при создании страницы.

Например, если со стартовой страницы

http://kbase/doku.php/start

попытаться создать новую страницу, то произойдет переход к созданию другой страницы, а не той что подразумевалось

http://kbase/doku.php/doku.php-start?do=edit

При сохранении статьи, происходит редирект

http://kbase/doku.php/doku.php-doku.php-start

пространство имен выглядит соответствующе - [[doku.php-doku.php-doku.php-start]]

Запущены 2 проекта параллельно на Nginx. Один на Python - все работает без замечаний.

Dokuwiki с доступом по 2-м возможным вариантам - kbase и kbase.my.domain. Даже в этих случаях болячки отличаются. При переходе на страницу kbase - логотип, загруженный контент - не отображаются. Во втором случае еще и шаблон bootstrap3 начинает отображаться кусками, без некоторых иконок, менюшки не выпадают. Плагин IndexMenu не взлетел.

Все логи пустые. devtools ругается только на логотип - 404.

  • Ubuntu 22.04.1 LTS
  • PHP 8.1.2-1ubuntu2.10 (cli)
  • php-fpm 8.1
  • nginx/1.18.0
  • dokuwiki Release 2022-07-31a "Igor"

nginx.conf:

user www-data;
worker_processes auto;
pid /run/nginx.pid;

include /etc/nginx/modules-enabled/*.conf;

events {
       worker_connections 1024;
}

http {
        access_log off;
        error_log off;

        uwsgi_param X-Real-IP $remote_addr;

        client_max_body_size 350M;

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;

        types_hash_max_size 2048;

        include /etc/nginx/mime.types;
        charset UTF-8;
        default_type application/octet-stream;

        include /etc/nginx/conf.d/*.conf;

        server {
                listen 80;
                server_name _;
                return 444;
        }

        include /etc/nginx/sites-enabled/middleport;
        include /etc/nginx/sites-enabled/kbase;
}

Конфигурация nginx для dokuwiki:

server {
    listen 80;
    server_name kbase kbase.my.domain;
    root /var/www/html/kbase/;

    access_log /var/log/nginx/kbase-access.log;
    error_log /var/log/nginx/kbase-error.log crit;

    index index.html index.php doku.php;

    location / {
        try_files $uri $uri/ @kbase;
    }

    location @kbase {
        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 last;
    }

    location ~ /(data|conf|bin|inc)/ {
        deny all;
    }

    location ~* \.(css|js|gif|jpe?g|png)$ {
        expires 1M;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }

    location ~ \.php$ {
        add_header Access-Control-Allow-Origin *;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
    }

    location ~ /\.ht {
        deny all;
    }
}

Кто-нибудь сталкивался с подобной проблемой? Заранее благодарен!

Ответы

▲ 0

В настройках Dokuwiki нужно было выставить параметр

userewrite - Удобочитаемые адреса (URL)

со значением - нет