XWiki

出自 Arch Linux 中文维基

XWiki 是一個用 Java 編寫的開源企業級維基,重點在於可擴展性。

安裝[編輯 | 編輯原始碼]

請隨時查看 XWiki 安裝指南[失效連結 2024-01-13 ⓘ] 。 這些說明假定你將使用 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 中創建 role 和數據庫,以匹配 hibernate 配置。
  • Arch 用戶倉庫安裝 postgresql-jdbcAUR
  • 作為 root:
# cd /usr/share/java/tomcatn
# ln -s /usr/share/java/postgresql-jdbc/postgresql-jdbc41.jar
  • 重啟 tomcatn.service
  • 在 Tomcat Manager 中點擊 /xwiki 啟動 XWiki 應用程式。
  • 通過 XWiki Wizard Guide 啟動 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代理到http://localhost:8080/xwiki/不起作用:生成的URL不正確。與XWiki 文檔[失效連結 2024-01-13 ⓘ] 中的說明相反,我無法通過使用 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/