FreeBSD 架設 Dekiwiki

Deki Wiki 算是一套新的 Wiki System,特點是擁有豐富的 What You See Is What You Get,編輯者可以完全不用瞭解 Wiki Syntax,即可參加編輯

作業環境:

  • FreeBSD 7.0
  • Apache 2.2.9
  • MySQL 5.1.26
  • PHP 5.2.6
  • Mono 1.2.5

前置作業

官方的安裝需求:

  • Apache 2.x
  • MySQL 5.0.X
  • PHP 5.X
  • Mono 1.2.X

基本上在 Windows、Unix-like 的作業系統上都可以安裝,因為 Dekiwiki 有採用 C# 所以在 Unix-like 必須透過 Mono 來實現,至於 Windows 則使用 .NET Framework。

安裝步驟

安裝 Mono 1.2.5.1

Mono是 Unix-like 的 .NET 支援計畫,Dekiwiki 有使用到 C# 所以在 Unix-like 的作業系統就必須安裝 Mono。因為 Mono 體積還算龐大,所以可以採用 Package 來安裝節省編譯的時間。

透過 Ports Tree 安裝

cd /usr/ports/lang/mono
make install clean

透過 Package 安裝

pkg_add -r mono

安裝 Apache 2.2.9

在安裝 Apache HTTP Server 可以採用不同的 MPM 來改善效能,這裡採用的是 event , 另外在 Apache Module 要記得開啟 mod_proxy 因為 Deki Wiki 採用 Proxy 的方式來跟底層 C# 來溝通。

cd /usr/ports/www/apache22
make WITH_MPM=event install clean

安裝 mysql 5.1.26

安裝 MySQL 的時候可以先指定預設的字元集,透過 WITH-CHARSET=utf8,預設為「UTF-8」的字集,另外也可以透過 WITH_XCHARSET=all,將所有的字集安裝進去。

/usr/ports/database/mysql51-server
make WITH-CHARSET=utf8 WITH_XCHARSET=all install clean

安裝 PHP 5.2.6

安裝 PHP 時可以選擇安裝 Build Apache module 會直接以 Apache module 的模式啟動,如果考慮效能的話,可以採用 Fast CGI 的模式,在這邊就不討論了。

/usr/ports/lang/php5
make install clean

安裝完 PHP 後,再安裝 PHP-extensions,增加需要的模組。這裡我增加的模組有 GD、CURL、MYSQL、MBSTRING。

/usr/ports/lang/php5-extensions
make install clean

複製 PHP.ini

cd /usr/local/etc
cp php.ini-dist php.ini

修改 PHP.ini,打開 session.save_path 的選項。

;session.save_path = "/tmp"
session.save_path = "/tmp"

安裝 bash

在 FreeBSD 裡面,預設是 tcsh,7.0 之後 bash 沒有內建在系統裡面,所以要透過 Ports 安裝,之後修改執行檔的時候會用到。

cd /usr/ports/shells/bash
make install clean

安裝 Deki Wiki

到官方網站下載 Deki Wiki 的壓縮檔,在將壓縮檔解壓到 Apache 預設的網頁目錄底下。

cd /usr/local/www/apache22/data
wget http://nchc.dl.sourceforge.net/sourceforge/dekiwiki/Deki_Wiki_8.05.2a_Jay_Cooke_source.tar.gz
tar -zxvf Deki_Wiki_8.05.2a_Jay_Cooke_source.tar.gz
mkdir dekiwiki
cd Deki_Wiki_8.05.2a_Jay_Cooke_source
cp -r web/* ../dekiwiki

修正啟動檔

在 config 裡面有幾個啟動設定檔,是拿來啟動 Mono 用的,原本是設計給 Linux 使用,我們可以直接拿來修改。並且把啟動檔複製到 /usr/local/etc/rc.d/ 底下。

cp config/dekiwiki-init.redhat /usr/local/etc/rc.d/

把原本 /bin/bash 改成 /usr/local/bin/bash,以及修正一些設定檔的位置(每行的下方就是修正內容)。

#!/bin/bash
#!/usr/local/bin/bash
. /etc/rc.d/init.d/functions
#. /etc/rc.d/init.d/functions
DEKIHOST_CONF="/etc/dekiwiki/mindtouch.host.conf"
DEKIHOST_CONF="/usr/local/etc/mindtouch.host.conf"
DEKIWIKI_USER="apache"
DEKIWIKI_USER="root"
su -s /bin/bash -c "exec $MONO $MONO_ARGS " $DEKIWIKI_USER >> $LOGFILE 2>&1 &
su $DEKIWIKI_USER -c "exec $MONO $MONO_ARGS " >> $LOGFILE 2>&1 &

修正 Deki Wiki Apache 設定檔

在 config 裡面有提供 Apache 的設定檔,將一些 Rewrite、Proxy 的關設定給寫好,不過預設的設定都是適用於 Linux,所以還是要手動修改一下。

cd /usr/local/www/apache22/data/Deki_Wiki_8.05.2a_Jay_Cooke_source/config
cp deki-apache.conf /usr/local/etc/apache22/Includes/

修改 Deki Wiki Apache 設定檔

DocumentRoot "/var/www/dekiwiki"
DocumentRoot "/usr/local/www/apache22/data/dekiwiki"
<Directory "/var/www/dekiwiki">
<Directory "/usr/local/www/apache22/data/dekiwiki">

網頁介面安裝

啟動 Apache 跟 MySQL,透過瀏覽器進入 Deki Wiki 的安裝介面,接下來就是類似一般 Web App 的安裝步驟。

更改 config 資料夾的權限

cd /usr/local/www/apache22/data/dekiwiki/
chmod a+w config

進入安裝介面之後,安裝介面會檢查需要的套件,像是 ImageMagick、PDF 輸出相關的套件,基本上是選配的部份,裝了可以增加更多的功能,不裝也可以。

cd /usr/local/www/apache22/data/dekiwiki/config
cp -p mindtouch.host.conf /usr/local/etc/
cp -p mindtouch.deki.startup.xml /usr/local/etc/
cp -p LocalSettings.php /usr/local/www/apache22/data/dekiwiki/

修改 mindtouch.host.conf

SCRIPT="/etc/dekiwiki/mindtouch.deki.startup.xml"
SCRIPT="/usr/local/etc/mindtouch.deki.startup.xml"

建立 Log 資料夾

mkdir /var/log/dekiwiki
touch /var/log/dekiwiki/deki-api.log

啟動 dekiwiki

/usr/local/etc/rc.d/dekiwiki-init.redhat start

移除設定檔

cd /usr/local/www/apache22/data/dekiwiki/
rm config/mindtouch.host.conf
rm config/mindtouch.deki.startup.xml
rm config/LocalSettings.php

額外安裝

安裝 ImageMagick

cd /usr/ports/graphics/ImageMagick
make install clean

安裝 html2ps

cd /usr/ports/print/html2ps-a4/
make install clean

參考資料

Follow 院長與芊比媽 on Google News