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