本教程适用于以下操作系统版本

  • Debian 12(Bookworm)
  • Debian 11(Bullseye)
  • Debian 9(Stretch)

本页内容

  • 准备工作
  • 安装依赖项
  • 配置 UFW
  • 配置 php.ini
  • 配置 MariaDB 服务器
  • 下载 DokuWiki 源代码
  • 配置 Apache2 虚拟主机
  • 使用 SSL/TLS 证书加固 DokuWiki
  • 通过 Web 安装程序安装 DokuWiki
  • 总结

DokuWiki 是一款简单、多功能的开源维基软件,无需数据库支持。它以易于维护、可读性强以及用户管理方便而著称,非常适合在企业或协作环境中创建和管理文档。DokuWiki 基于 PHP 构建,这款多功能的维基软件内置访问控制(ACL)功能,并支持主流的身份验证驱动。DokuWiki 提供了简便的管理方式,易于安装、维护,也便于在不同主机之间备份迁移。

在本指南中,我们将逐步指导你在 Debian 12 服务器上安装 DokuWiki。你将使用 LAMP 技术栈(Apache2、MariaDB 和 PHP)、UFW 防火墙,并通过 Let's Encrypt 配置 SSL/TLS 证书来安装 DokuWiki。

准备工作

在开始本指南之前,请确保你已具备以下条件:

  • 一台 Debian 12 服务器。
  • 一个具有管理员权限的非 root 用户。
  • 一个已解析到服务器 IP 地址的域名。

安装依赖项

默认情况下,DokuWiki 软件包在 Debian 软件仓库中可用。但为了确保安装的是最新版本的 DokuWiki,你将在 Debian 服务器上手动安装 DokuWiki。

在本节中,你将安装 DokuWiki 所需的依赖项,包括 LAMP 技术栈软件包(Apache2、MariaDB 和 PHP)、UFW 防火墙以及 Certbot。

在开始之前,请使用以下命令更新你的 Debian 软件仓库。

sudo apt update

使用以下 apt install 命令安装 LAMP 技术栈、UFW 和 Certbot 软件包。出现提示时,输入 Y 并按回车键。

sudo apt install apache2 mariadb-server php libapache2-mod-php php-xml php-mbstring php-zip php-intl php-gd ufw certbot python3-certbot-apache

在 Debian 上使用 Apache 安装 DokuWiki 维基系统

安装完成后,请验证 Apache 和 MariaDB 服务的状态,以确保服务正在运行。

执行以下命令检查 apache2 服务。

sudo systemctl is-enabled apache2
sudo systemctl status apache2

当 apache2 正在运行时,你应该会看到 'active (running)' 的输出。而 'enabled' 的输出则确认 apache2 将在系统启动时自动启动。

在 Debian 上使用 Apache 安装 DokuWiki 维基系统

现在执行以下命令验证 mariadb 服务。

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

请确保你的 Debian 系统上 mariadb 服务处于 'enabled' 且 'active (running)' 状态。

在 Debian 上使用 Apache 安装 DokuWiki 维基系统

配置 UFW

在本指南中,你将使用 UFW(Uncomplicated Firewall,简易防火墙)来保护你的 Debian 服务器。为此,你必须开放 SSH 端口以便远程访问,并开放 HTTP 和 HTTPS 协议所使用的端口来运行 DokuWiki 安装。

运行以下命令,将 OpenSSH 和 'WWW Full' 配置文件添加到 UFW。

OpenSSH 配置文件将开放默认的 SSH 端口 22,而 'WWW Full' 配置文件则会同时开放 HTTP 和 HTTPS 端口。

sudo ufw allow OpenSSH
sudo ufw allow 'WWW Full'

现在,运行以下命令在 Debian 系统上启动并启用 UFW。

sudo ufw enable

当被询问是否确认时,输入 y,你应该会看到类似 'Firewall is active and enabled on system startup' 的输出。UFW 将在系统启动时自动运行。

在 Debian 上使用 Apache 安装 DokuWiki 维基系统

最后,运行以下命令验证 UFW 状态。请确保在你已启用的 UFW 规则中列出了 OpenSSH 和 'WWW Full' 这两个配置文件。

sudo ufw status

在 Debian 上使用 Apache 安装 DokuWiki 维基系统

配置 php.ini

在接下来的小节中,你将通过修改默认的 php.ini 文件,并调整部分配置来为 DokuWiki 安装配置 PHP。

运行以下 nano 编辑器命令,打开 PHP 配置文件 '/etc/php/8.2/apache2/php.ini'。

sudo nano /etc/php/8.2/apache2/php.ini

使用以下内容修改默认配置。请务必根据你的服务器当前内存(RAM)调整 memory_limit 参数。

memory_limit=256M
upload_max_filesize=32M
post_max_size=32M
max_execution_time=60

完成后,保存并关闭文件。

现在,运行以下 systemctl 命令以重启 apache2 服务,使你的修改生效。

sudo systemctl restart apache2

配置 MariaDB 服务器

既然已经完成了 PHP 的配置,下一步就是配置你的 MariaDB 服务器安装,然后创建一个供 DokuWiki 使用的新数据库和用户。

执行以下 mariadb-secure-installation 命令,开始 MariaDB 的配置过程。

sudo mariadb-secure-installation

当被询问是否将新配置应用到 MariaDB 时,输入 Y;你也可以输入 n(No)来拒绝。以下是你会被提示进行的 MariaDB 配置项:

  • MariaDB 默认安装没有密码,在提示输入密码时直接按回车键。
  • 现在输入 Y 来设置 MariaDB 的 root 密码。然后输入 MariaDB 的新密码并重复输入一次。
  • 输入 Y 以从 MariaDB 安装中移除匿名用户。
  • 在提示禁用 MariaDB root 用户的远程登录时,再次输入 Y。
  • 输入 Y 以从 MariaDB 中移除默认的 test 数据库。
  • 最后,输入 Y 以重新加载表权限并应用新的更改。

MariaDB 配置完成后,你需要创建一个供 DokuWiki 使用的新数据库和用户。

执行以下 mariadb 命令登录 MariaDB 服务器。出现提示时,输入你的 MariaDB root 密码。

sudo mariadb -u root -p

现在运行以下查询,创建新数据库 dokuwikidb、用户 dokuwiki,密码为 'p4ssword'。请务必将密码替换为你自己的新密码。

CREATE DATABASE dokuwikidb;
CREATE USER dokuwiki@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL PRIVILEGES ON dokuwikidb.* TO dokuwiki@localhost;
FLUSH PRIVILEGES;

在 Debian 上使用 Apache 安装 DokuWiki 维基系统

接下来,验证用户 dokuwiki 是否拥有对数据库 dokuwikidb 的权限。

SHOW GRANTS FOR dokuwiki@localhost;

在以下输出中,你已为用户 dokuwiki 配置了针对数据库 dokuwikidb 的全部权限。

在 Debian 上使用 Apache 安装 DokuWiki 维基系统

最后,输入 quit 退出 MariaDB 服务器,进入下一步。

下载 DokuWiki 源代码

在本节中,你将下载 DokuWiki 源代码,并设置具有适当权限的安装目录。

切换到 /var/www/ 目录,并使用以下 wget 命令下载 DokuWiki 的最新稳定版本。

cd /var/www/
wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz

现在解压 dokuwiki-stable.tgz 文件,并将解压出的目录重命名为 dokuwiki。这样,你的 DokuWiki 安装目录将位于 /var/www/dokuwiki。

tar xzvf dokuwiki-stable.tgz
sudo mv dokuwiki-*a dokuwiki

最后,运行以下命令,将 /var/www/dokuwiki 目录的所属用户修改为 www-data。这样,你的 Apache2 Web 服务器才能读取 DokuWiki 的源代码。

sudo chown -R www-data:www-data /var/www/dokuwiki

配置 Apache2 虚拟主机

下载 DokuWiki 之后,你现在需要创建一个新的 Apache2 虚拟主机文件来运行 DokuWiki。在开始之前,请确保你已准备好域名。在本示例中,我们将使用域名 wiki.howtoforge.local。

现在,运行以下 nano 编辑器命令,创建新的 Apache2 虚拟主机配置文件 /etc/apache2/sites-available/dokuwiki.conf。

sudo nano /etc/apache2/sites-available/dokuwiki.conf

插入以下配置内容,并务必将域名 wiki.howtoforge.local 替换为你自己的域名。

<VirtualHost *:80>
    ServerName    wiki.howtoforge.local      
    DocumentRoot  /var/www/dokuwiki
    <Directory ~ "/var/www/dokuwiki/(bin/|conf/|data/|inc/)">
        <IfModule mod_authz_core.c>
            AllowOverride All
            Require all denied
        </IfModule>
        <IfModule !mod_authz_core.c>
            Order allow,deny
            Deny from all
        </IfModule>
    </Directory>
    ErrorLog   /var/log/apache2/wiki.howtoforge.local_error.log
    CustomLog  /var/log/apache2/wiki.howtoforge.local_access.log combined
</VirtualHost>

完成后,保存并关闭文件。

接下来,运行以下命令启用 dokuwiki.conf 虚拟主机,并验证 Apache 配置语法以确保没有错误。

sudo a2ensite dokuwiki.conf
sudo apachectl configtest

如果语法正确且没有错误,你将看到 'Syntax OK' 的输出。

在 Debian 上使用 Apache 安装 DokuWiki 维基系统

最后,运行以下命令重启 Apache2 服务器,使你的修改生效。

sudo systemctl restart apache2

使用 SSL/TLS 证书加固 DokuWiki

此时,你的 DokuWiki 已经运行并可访问。但为了确保安装的安全性,你将通过 Let's Encrypt 配置 SSL/TLS 证书。

执行以下 certbot 命令,为你的 DokuWiki 域名生成 SSL/TLS 证书。请务必将邮箱地址和域名替换为你自己的信息。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email 
[email protected]
 -d wiki.howtoforge.local

该过程完成后,你的 DokuWiki 安装应已自动配置好 HTTPS。而你的 SSL/TLS 证书应位于 /etc/letsencrypt/live/yourdomain.com 目录中。

通过 Web 安装程序安装 DokuWiki

打开你的网页浏览器,访问你的 DokuWiki 安装域名,例如 https://wiki.howtoforge.local/install.php。你应该会看到 DokuWiki 的 Web 安装界面。

选择“启用 ACL”选项,输入你的 DokuWiki 管理员用户名、邮箱和密码,然后点击“保存”。

在 Debian 上使用 Apache 安装 DokuWiki 维基系统

安装成功后,你应该会看到“配置已成功完成。”的输出。

图片

在 Debian 上使用 Apache 安装 DokuWiki 维基系统

现在回到你的终端,使用以下命令删除 install.php 脚本。

sudo rm /var/www/dokuwiki/install.php

接下来,点击“你的新 DokuWiki”链接以继续。你应该会看到类似下图的 DokuWiki 主页。

在 Debian 上使用 Apache 安装 DokuWiki 维基系统

现在点击“登录”按钮,你应该会看到类似下图的 DokuWiki 登录页面。

在 Debian 上使用 Apache 安装 DokuWiki 维基系统

输入你的管理员用户名和密码,然后点击“登录”。登录成功后,你将进入 DokuWiki 仪表盘。

在 Debian 上使用 Apache 安装 DokuWiki 维基系统

总结

恭喜!你已成功在 Debian 12 服务器上完成 DokuWiki 的安装。你使用 LAMP 技术栈(Apache2、MariaDB 和 PHP)安装了 DokuWiki,并通过 UFW(Uncomplicated Firewall,简易防火墙)以及来自 Let's Encrypt 的 SSL/TLS 证书加固了你的 DokuWiki 安装。