DokuWiki 是一个简单易用、用途多样并且不依赖数据库的开源维基软件。它因简洁易读的语法受到用户的喜爱。而容易维护、备份方便和易于整合则使它成为管理员的最爱。

我的环境:

  • ubuntu 22.04
  • nginx 1.18
  • php8.1
  • mysql8

安装步骤

  1. DokuWiki 官网下载页 下载最新稳定版本;
  2. 解压到 /var/www/dokuwiki,作为项目根目录;
  3. 将根目录下的 dataconf 设置为可写;
  4. 配置 nginx,新增配置文件 /etc/nginx/sites-enabled/dokuwiki:
server {
    listen 80;
    server_name wiki.crowall.com;
    root /var/www/dokuwiki;
    client_max_body_size 20m;

    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php$1 last;
    }

    location ~ .*\.php(\/.*)*$ {
        include fastcgi.conf;
        fastcgi_pass  unix:/run/php/php8.1-fpm.sock;
    }

    location ~ ^/conf/ { deny all; }
    location ~ ^/data/ { deny all; }
    location ~ /\.ht   { deny all; }
}
  1. 重载 nginx 配置,即可访问。

设置用户

默认安装完的 dokuwiki 是没有用户系统的,谁都可以读写,这显然不行。

访问 https://你的安装地址/install.php 页面,可以看到设置:

2024-10-21T21:29:50.png

注意:如果右侧出现下面这个红框提示,就是告诉你 wiki 的 data 目录目前是可以公开访问的,你需要修改你的配置。
检查一下前面的 nginx 配置是否禁止了 data 等目录的访问权限。

2024-10-21T21:30:14.png

官方的 Nginx 配置参考

server {
    listen  80;
    listen  [::]:80;
    server_name  wiki.domain.example;
 
    client_max_body_size 4M;
    client_body_buffer_size 128k;
 
    root /server/path/to/dokuwiki;
    index doku.php;
 
    # location ~ /(install.php) { deny all; }
 
    location ~ /(\.ht|\.git|\.hg|\.svn|\.vs|data|conf|bin|inc|vendor|README|VERSION|SECURITY.md|COPYING|composer.json|composer.lock) {
        # Returns 403
        deny all;
        #return 404;
    }
 
    location ~ ^/data/ {
       internal;
    }
 
    location ~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg|svg)$ {
        expires 365d;
    }
 
    location / {
       try_files $uri $uri/ @dokuwiki;
    }
 
    location @dokuwiki {
        # rewrites "doku.php/" out of the URLs if you set the userewrite setting to .htaccess in dokuwiki config page
        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$ {
        try_files $uri $uri/ /doku.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param REDIRECT_STATUS 200;
        fastcgi_pass  127.0.0.1:9000;
        # fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        # fastcgi_pass unix:/var/run/php5-fpm.sock; #old php version
    }
}

标签: wiki

添加新评论