Skip to content

快速部署 ​

English

本文仅列出运行一个站点所必需的步骤。每一步的可选参数、备选做法与故障排查,参见部署。

准备 ​

  • 一台 Linux、macOS 或 Windows 机器。macOS 上请使用普通账户,不要使用 root。
  • 一个指向这台机器的域名,以及一个用于提供上传文件的域名。两个域名的 A 记录都指向本机公网 IP。
  • 若要启用 HTTPS,机器需可从公网访问 80 与 443 端口。

数据库不需要自行准备,pwikit 自带 PostgreSQL。

四步 ​

  1. 获取 pwikit,并进入其所在的目录。该目录即数据目录,files/、pgdata/ 等均创建在此。

    安装脚本安装到当前目录,该目录必须为空。在 Linux 与 macOS 上:

    sh
    mkdir /opt/pwikit && cd /opt/pwikit
    curl -fsSL https://github.com/WikitTeam/ProjectWikit/releases/latest/download/install.sh | sh

    Windows 上在 PowerShell 中执行 irm https://github.com/WikitTeam/ProjectWikit/releases/latest/download/install.ps1 | iex。也可以从 GitHub Releases 下载发布包自行解压。无法访问 GitHub 时见部署。

    注意 自行解压发布包时,完成第 4 步之前无法直接输入 pwikit。无论使用哪种方式获取,第 2、3 步都可以在该目录中以 ./pwikit 执行(Windows 为 .\pwikit.exe)。

  2. 创建站点。此命令将自行创建数据库与数据表,无需先启动服务:

    sh
    ./pwikit createsite -slug 站点标识名 -title "我的维基" -headline "维基副标题" \
      -domain wiki.example.org -media-domain files.example.org

    请将两个域名替换为您自己的域名。如需在本机试用,请使用 -domain localhost,随后访问 http://localhost:8080。

  3. 写入内容并创建管理员。 按站点的来源二选一。

    新建空站点,写入初始页面:

    sh
    ./pwikit seed
    ./pwikit admin create -name "您的用户名"

    从 Wikidot 导入,按以下顺序:

    1. 将解压后的 wikitCLI 备份放进数据目录的 archive/,该目录由第 2 步创建。放好后应为:

      text
      archive/
        _users/              账号信息,一组 .json 文件
        xxx-wiki/            站点目录,目录名即站点标识名
          meta/site.json     站点信息,有该文件才会被认作站点
          meta/pages/        每个页面的标题、标签、版本、评分
          pages/             页面源代码,每页一个 .7z
          files/             附件
          forum/             论坛

      _users/ 必须与站点目录放在一起,否则导入的页面历史、评分和评论都将丢失作者。有多个站点时,将各个站点目录并排放在 archive/ 中,共用同一个 _users/。备份的完整结构见备份文件。

    2. 导入。不指定目录时,pwikit import 读取 archive/:

      sh
      ./pwikit import

      archive/ 中有多个站点时,加 -from <站点目录名> 选择一个。结束时的汇总里 N accounts 应与备份中的账号数相当。无法读取 _users/ 时,导入将拒绝执行,且不写入任何内容。

    3. 导入完成后再创建管理员,-name 填写您自己的 Wikidot 用户名,这样导入的账号及其页面才归属于您:

      sh
      ./pwikit admin create -name "您的 Wikidot 用户名"

    admin create 会以不回显的方式要求输入密码。该账号在本实例的所有站点上拥有全部权限。

    注意 导入前的备份、标签与评分的处理、再次导入的规则以及报错的含义,见从 Wikidot 导入。

  4. 安装为系统服务,使其开机自启。这一步同时让 pwikit 可以在任意目录直接输入:

    sh
    sudo ./pwikit service install
    sudo ./pwikit service start

    Windows 上请在管理员终端中执行 .\pwikit.exe service install 与 .\pwikit.exe service start。首次启动需要解压并初始化 PostgreSQL,比之后的启动慢;pwikit service status 可查看是否已在运行。

    不安装服务时,也可以在前台运行 ./pwikit serve,但关闭终端后 pwikit 将停止运行。此时请执行 ./pwikit path install,以便直接输入 pwikit。

    希望隔离权限、不以 root 运行时,见以专用的普通账户运行。

站点域名是公网域名时,pwikit 自动申请并续期 HTTPS 证书,监听 80 与 443 端口。

完成后 ​

注意 请尽快在管理后台的 站点设置 中填写 注册后的身份组 与 认领后的身份组,新站点可直接选择预置的 member 身份组。在此之前,新注册的成员和认领 Wikidot 账号的成员仅持有 registered,而 registered 默认没有任何权限,他们无法编辑页面。见站点管理。

预置的 member 与 admin 身份组只是一套通用起点,也请尽快在 身份组 中按站点的规则调整它们的权限。见内置身份组。

  • 从现在起可以在任意目录直接使用 pwikit,例如 pwikit site list。Windows 上请先重新打开终端。
  • 在站点域名的 /-/login 登录,管理后台在 /-/admin。
  • 需要发送验证邮件与找回密码邮件时,在 pwikit.toml 的 [mail] 一节填写 SMTP 服务器。未配置时,这些邮件写入日志而不发出。见配置。
  • 在站点管理中设置站点标题、主题、身份组与权限。
  • 定期执行 pwikit backup create 备份。见运维。
  • 以系统服务方式安装后,pwikit 会在凌晨自动更新到新版本,失败时自动回档。见更新与回档。
  • 以后需要更换磁盘或目录时,请按搬迁实例重新注册服务。

常见问题点 ​

现象处理
输入 pwikit 提示找不到命令完成第 4 步之前请使用 ./pwikit。安装后仍无法找到时,请执行 ./pwikit path status 查看;Windows 上请先重新打开终端
提示不能以 root 身份运行此问题出现在 macOS 上。内置 PostgreSQL 拒绝以 root 身份运行,请改用普通账户执行
提示内置 PostgreSQL 无法进入某个目录在 Linux 上以 root 运行时,PostgreSQL 以单独的账户运行。请将 pwikit 从 /root 移到 /opt 或 /srv 下
无法监听 80 或 443 端口以系统服务方式安装,或参见部署
访问显示 站点不存在访问的域名没有绑定站点。请检查 createsite 填写的域名,或使用 pwikit site rebind 更改
导入报 the backup names authors but holds no accounts未读取到 _users/,通常是因为 _users/ 没有与站点目录放在一起。此时未写入任何内容,将其放入 archive/ 后重新执行 ./pwikit import 即可,见从 Wikidot 导入
导入报 archive does not exist数据目录中没有 archive/。请确认执行的是第 1 步得到的 pwikit,并将备份放入其 archive/
导入报 no site under "<path>"archive/ 及其下一层都没有 meta/site.json,请检查备份是否放错了层级
页面没有样式使用的构建不含页面静态资源,见部署

其他问题见部署中的故障排查;导入相关的问题见从 Wikidot 导入。