安装与部署

系统要求 #

1. 支持 PHP 的 Web 服务器
2. PHP 至少是 5.6 版本以上的,最好是最新的版本
详细要求可参阅 官网的相关说明

下载 #

官网下载最新稳定版的压缩包
dokuwiki_下载页面

Web 服务的配置 #

官网中的 Webserver Specifics有提供了几款常见的 web 服务器的配置,在这里只展示了我用的 nginx 的配置

nginx #

添加配置文件 /etc/nginx/conf.d/dokuwiki.conf

server {
    listen 443 ssl;
    server_name wiki.mydomain.com;
    root /var/www/html/dokuwiki;
    index index.html index.php doku.php;

    access_log /var/log/nginx/dokuwiki.access.log;
    error_log /var/log/nginx/dokuwiki.error.log;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/wiki.mydomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/wiki.mydomain.com/privkey.pem;
    ssl_session_timeout 5m;
    ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    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 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$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm/php-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;
    }
}

server {
    listen 80;
    server_name wiki.mydomain.com;
    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^ https://wiki.mydomain.com$request_uri? permanent;
}

注:要记得修改配置中的证书和密钥的路径

php-fpm #

将配置文件/etc/php-fpm.d/www.conf中的下列项修改一致

user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

注:listen的配置要与 nginx 配置中的 fastcgi_pass unix 一致

启动 #

执行下面命令启动 php-fpm、nginx 服务

systemctl start php-fpm nginx
systemctl enable php-fpm

注:要记得配置防火墙开放对应的端口或者关闭防火墙

部署脚本 #

详见 dokuwiki_deploy#dokuwiki_deploy.sh

备份 #

dokuwiki 的备份比较简单,可以只备份以下目录即可

* data/pages -包含您当前的页面

* data/meta -包含有关您的页面的元信息(例如最初创建者,订阅者等等)

* data/media -包含您当前的媒体(图像,PDF等)

* data/media_meta -媒体的元数据

* data/attic -页面的所有旧版本

* data/media_attic -媒体的所有旧版本

* conf -配置设置

以上出自官网的 备份教程

参考资料 #

使用 Nginx 的 DokuWiki - 官网