XWiki

出自 ArchWiki

XWiki 是一个开源的企业级 Wiki,使用 Java 编写,专注于可扩展性。

安装

您可以参考 XWiki 安装指南。这些说明假设您将使用 TomcatPostgreSQL。将这些指南应用于其他组合应该不会太困难。

  • 安装 PostgreSQL
  • 为了更轻松地管理 PostgreSQL,请安装 phpPgAdmin
  • 安装 tomcat。(不要忘记 tomcat-native。)
  • 下载 XWiki WAR 文件。
  • 将 WAR 文件重命名为 xwiki
  • 将 WAR 文件移动到 /var/lib/tomcatn/webapps 目录。
  • Tomcat 应该会自动解压 WAR 文件。如果未解压,请重启 Tomcat。
  • 此时,您可能会发现 data 目录已出现在 /var/lib/tomcatn/webapps 中。删除它。
  • 以 root 用户身份
# cd /var/lib/tomcatn
# mkdir data
# chown tomcatn:tomcatn data
  • /var/lib/tomcatn/webapps/xwiki/WEB-INF 目录中
    • 打开 xwiki.properties 文件并将 environment.permanentDirectory 字段更改为 /var/lib/tomcatn/data/xwiki
    • 打开 hibernate.cfg.xml 文件并
      • 注释掉标题为“Configuration for the default database”的部分。
      • 取消注释标题为“PostgreSQL Configuration”的部分。
      • 根据需要修改数据库名称(在 connection.url 中)、用户名和密码。
  • 在 PostgreSQL 中创建一个角色和数据库以匹配 hibernate 配置。
  • Arch 用户仓库 安装 postgresql-jdbcAUR
  • 以 root 用户身份
# cd /usr/share/java/tomcatn
# ln -s /usr/share/java/postgresql-jdbc/postgresql-jdbc41.jar
  • 重启 tomcatn.service
  • 通过点击 Tomcat 管理器中的 /xwiki 启动 XWiki 应用程序。
  • XWiki 将启动 XWiki 向导指南以完成您的配置。

Nginx 代理配置 - 方案 1

官方的 XWiki Nginx 指南不正确。这里有一个适用于 XWiki 的替代方案。

  • 配置 nginx 站点 xwiki 配置文件。
/etc/nginx/sites-available/xwiki
server {
  listen 80 default_server;
  server_name xwiki.<domain-name>;
  return 301 https://$host$request_uri;
}

server {
  listen [::]:443 ssl;
  listen 443 ssl;

  server_name xwiki.<domain-name>;

  # SSL Certificate section
  ssl_certificate ...
  ssl_certificate_key ...

  location = / {
    return 301 https://$host/xwiki;
  }

  location /xwiki {
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   Host      $host;
    proxy_http_version 1.1;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection 'upgrade';
    proxy_cache_bypass $http_upgrade;
    proxy_set_header   X-Forwarded-Host $host;
    proxy_set_header   X-Forwarded-Server $host;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto $scheme;
    proxy_pass         http://127.0.0.1:8080/xwiki;
  }
}
  • sites-enabled 目录中激活服务器块 ln -s /etc/nginx/sites-available/xwiki /etc/nginx/sites-enabled/xwiki
  • 重启 Nginx。

Nginx 代理配置 - 方案 2

我发现指示 nginx 代理到 https://127.0.0.1:8080/xwiki/ 不起作用:生成的 URL 不正确。与 XWiki 文档 中指示的相反,我无法通过使用 HTTP 标头使 URL 正确。

到目前为止,我所知道的唯一解决方案是在 Tomcat 的 server.xml 文件中创建一个新的 Host 元素

  • 复制现有的 Host 元素并将 name 属性更改为 xwiki
  • appBase 属性更改为 /var/lib/tomcat7/webapps-xwiki
  • xwiki 应用程序从 /var/lib/tomcat7/webapps/xwiki 移动到 /var/lib/tomcat7/webapps-xwiki/ROOT
  • 重启 Tomcat
  • /etc/hosts 中将 xwiki 添加为 localhost 的别名(将其添加到 127.0.0.1 行的末尾)。
  • 指示 Nginx 代理到 http://xwiki:8080/