使用 Wiki 作為企業內部文件中心

作者:徐秉義(Albert Hsu)

TaviWiki / MediaWiki 軟體下載、安裝、使用與管理

在 Linux 上的架站軟體眾多,依功能來分類也不少。像是 XOOPS 入口網站、 osCommerce 電子商務、 PHPBB 討論區、 BLOG 部落格。這回給大家介紹的,是一個叫做『Wiki』的軟體概念。

什麼是 Wiki?

初聽到 Wiki 的讀者,可能會一頭霧水的問 Wiki 是甚麼東西?對電腦硬體較熟的讀者朋友也有可能誤會成『硬體的 Wiki』,其實我們要介紹的,是『軟體的 Wiki』,簡單的說,Wiki 是個提供「共同創作(Collaborate)」環境的網站;更簡潔的說法, Wiki 是一種線上文件共筆系統。Wiki 最特別於一般網站的不同點,就是我們不只能夠在 Wiki 的網站上發表自已的高見,還可以修改別人的文章喔!還有更特別的是,有些 Wiki 根本不需要任何的帳號,就可以編寫文件,真是太方便了!

照這樣說起來,似乎每個人都可以任意修改網站上所有的頁面資料,那麼豈不就會天下大亂!大家請放心,Wiki 在這方面,已經有了心裡準備,所以不怕訪客任意修改頁面資料,這些『防護措施』也成為 Wiki 的特點。以下就針對這些特點,加以介紹說明。

Wiki 的特點

Wiki 有不錯的版本控制

在一般情形下的 Wiki,是允許每個瀏覽網頁的訪客,都能夠編修網頁的內容,所以 Wiki 本身提供『版本控制』的功能。這特點可以將每一版的網頁內容紀錄下來,並且提供訪客能夠比對版本與版本之間的差異,可以很快速的查出修改了那些內容。

Wiki 文件的寫作語法比 HTML 還簡單

因為 Wiki 提供在使用者在瀏覽網頁時編修網頁,而編修網頁卻很難避免學習那說難不難、說簡單不簡單的 HTML 語法,因此 Wiki 提供了一套她特有的語法,來取代較複雜的 HTML 標籤,這套語法有多好學呢? Wiki 這字本身的意思就是『快』,所以她的語法也是以快速上手著稱,舉一些簡單的例子來說:wiki可利用 # 或 * 就可以很快速的做出列表功能(相對於 html 語法中的 <ul> 或 <ol> 配合 <li>),在後頭會有較詳細的介紹。

Wiki 查詢快速

在資料慢慢成長後,在一堆資料中能快速的找到要用的資料,就必需要有快又好用的查詢功能。Wiki 在這方面是以查詢快速取勝,採用的是類似全文檢索的方式,列出相關的文章,供使用者查看。

Wiki 簡單。易用。好用。穩定

使用 Wiki 幾乎沒有甚麼困難的,而且一經使用就會迷上她了。

一些已經使用 Wiki 的網站

如果讀者會常常到處逛一些軟體網站的話,說不一定你已經用過了 WikiWiki 而不自知喔!舉幾個例子來說:

Wiki 共筆系統

Wiki 百科全書

類似 Wiki 機制的商業化應用系統

Wiki 引擎介紹

一般說來,Wiki 秉持著『人性本善』的想法,允許所有訪客編修所有網頁內容。嚴格來說,Wiki 是個軟體的概念,還需要實際程式去實作,這程式稱『Wiki 引擎』。以下針對幾種常見的 Wiki 引擎來介紹。

TaviWiki

TaviWiki 的全名為 WikkiTikkiTavi,網站為 http://tavi.sourceforge.net/,使用 PHP 寫成的,而將資料存放在 MySQL 資料庫裡。

Tavi 這個 Wiki 引擎運作起來很輕,速度很快,而且很不吃硬體資源喔!只要用一台接近汰舊換新的個人電腦,就可以運作的很順了。至於學習使用方面,沒有太困難的地方,筆者所任職的企業內部,就以這引擎架了一台 Wiki,主要記載著企業內部可公開,但卻又常常需要查詢的資訊。

MediaWiki

MediaWiki 網站為 http://www.mediawiki.org/,也同樣是使用 PHP 寫成的,而將資料存放在 MySQL 資料庫裡。

這 MediaWiki 最出名的應用該屬於『維奇百科全書』http://www.wikipedia.org/。相較於 TaviWiki,MediaWiki 的優勢就如同她的名稱『Media』一樣,是可以存放『多媒體』資訊的。MediaWiki 在處理圖檔、聲音檔、影像檔,是比 Tavi 方便許多,也因為她的圖文並茂加上影像功能更適合線上百科全書的建置與發展,除此之外,MediaWiki 的使用與管理控制的功能也比較強大,因此需要較好的硬體主機設備與較充裕的頻寬,才能將 MediaWiki 的功效,完整的呈現出來。

其它 Wiki 引擎

UseMod:用 Perl 寫出來的,位於 http://www.usemod.com/,特點是簡單、容易架設。

PhpWiki:故名思義,她是用 PHP 寫出來的,位於 http://phpwiki.sourceforge.net/,她不只可以使用 MySQL 資料庫,還可以用 PostgreSQL 或 mSQL。

MoinMoin:一個使用 Python 寫成的 Wiki 引擎,特點是可靠度超高以及模組化的設計。

Tips:方才提到的像是 PHP、Perl、Python 這些大多是在 Linux / Unix 上發展的『程式語言』,各有各的強項與特色。事實上 Wiki 以相當多不同的程式語言、撰寫出不同的程式碼的 wiki 引擎,供我們使用,讀者若是想了解世界上有那些 Wiki 引擎,可參考網址 http://c2.com/cgi/wiki?WikiEngines 從這個裡還可以連到『十大』(Top Ten Wiki Engines)、受歡迎的(Popularity Wiki Engines)一些介紹。

架設 Wiki 之伺服器前置準備工作

本次所要架設的 Wiki 網站,均是以現今最流行的網站架構 Linux + Apache + MySQL + PHP 所構成,筆者以下就以 Fedora Core 4 為例(以下簡稱 FC4),介紹如何安裝 TaviWiki。

套件名稱檔案名稱下載網站
TaviWiKitavi-0.26.tar.gzhttp://prdownloads.sourceforge.net/tavi/

備便 Apache 網頁伺服器

在大部份的 Linux 發行套件中,通常會內建 Apache 網頁伺服器, FC4 也不例外。只不過需要注意的是,Apache 網頁伺服器名稱是『httpd』,且在預設的情況下,這服務『httpd』並不會自行啟動。請使用『root』身份的終端機視窗,輸入並執行『/etc/init.d/httpd start』啟動 Apache 網頁伺服器。

Tips:常見的 Linux 發行套件均可用『/etc/init.d/httpd』查看 httpd 的用法;『/etc/init.d/httpd start』啟動 httpd;『/etc/init.d/httpd stop』停掉 httpd。除此之外,像以下要控制『 MySQL 資料庫伺服器』的話,只要把『 httpd 』換成『 mysqld 』即可。這種『/etc/init.d/xxx』的架構在 Linux 很常見,一般稱為 initscripts(初使化腳本檔),在微軟的系統中也有類似的程式稱為『服務管理』,其實在 Linux / Unix 稱為 Daemon(守護神)的在微軟稱做 Service(服務)。這也就是 Unix 的服務程式常有個『d』結尾的原因。(『d』是『daemon』的簡寫)。像是 httpd 或是 mysqld 等等。

Note:像 Fedora / RedHat / Mandriva 可以透過指令『service httpd』、SuSE 透過指令『rchttpd』,都可以控制 httpd 其實只是『初使化腳本檔』(Initial Scripts)比較方便的使用方法而已!

httpd

備便 MySQL 資料庫

與 httpd 非常類似的情形,MySQL 資料庫也是內建在大部份的 Linux 發行套件中, FC4 當然也不例外。相同於 httpd 的在預設情況下,MySQL 伺服器的服務『mysqld』也是不會自行啟動的。請使用『root』身份的終端機視窗,輸入並執行『/etc/init.d/mysqld start』啟動 MySQL 資料庫。

mysql

設定開機後自動執行『httpd』與『mysqld』

若是 Apache 與 MySQL 在重新開機後沒有自動啟動的話,每次重開機都需要再手動啟動,這會是相當麻煩的一件事。建議讀者若是使用 Fedora / RedHat 系列 Linux 的話,可以使用指令『ntsysv』呼叫出選單介面的控制畫面,找到並標記『httpd』與『mysqld』後,再按下[OK]即可。這樣 Apache 與 MySQL 就會於開機後自動啟動。

Tips:其它類似『ntsysv』能控制各服務是否於開機啟動的,還有指令模式的『chkconfig』以及圖型模式的『system-config-services』(Fedora專用)

ntsysv

Fedora 執行 system-config-services 的畫面

s-c-s

開始安裝 TaviWiki

第1步■到 http://tavi.sourceforge.net/ 找到『TaviDownload』的連結,下載到 tavi-0.26.tar.gz (至筆者截稿以前,最新的版本為 0.26 版),實際的下載連結為 http://prdownloads.sourceforge.net/tavi/

第2步■使用指令『tar -zxf tavi-0.26.tar.gz』解開下載的包裹,再使用指令『cp -r tavi/* /var/www/html/』,將解開來的『 tavi 』目錄裡的所有檔案及目錄,皆複製一份到 Apache 的 DocumentRoot(文件根目錄)底下

Tips:Fedora / RedHat 內建的 Apache 之 DocumentRoot 位於 /var/www/html

tar

第3步■建立一個資料庫並且設定一組帳號密碼,提供 TaviWiki 將資料存到 MySQL 資料庫去。使用指令『mysql -u root -p』連到本機的 MySQL 資料庫並輸入密碼後(詳見Tips),在 MySQL 的命令模式下(mysql>),使用指令『create database wikidb;』建立一個名稱為『 wikidb 』的資料庫。接著使用指令『GRANT ALL PRIVILEGES ON wikidb.* TO joe@localhost IDENTIFIED BY 'paSSw7';』將 wikidb 資料庫底下的所有權限給予『 joe 』這個帳號(來自本機 localhost)並以『paSSw7』為密碼。最後輸入『quit;』離開 MySQL 的命令模式。

Note:這個名稱為『 wikidb 』的資料庫,後續會用到,若讀者想要用不同的名稱也是可行的,但須注意名稱一致性的問題。

createdb

Tips:MySQL 安裝完後,預設值的帳號密碼為 root、沒有密碼,其實這樣子是不夠安全的。MySQL 建議妳安裝完之後,立刻為這個 root 帳號設定密碼。妳可以透過指令『mysqladmin -u root password 'T3St^*'』修改連線到 MySQL 的 root 密碼。此例是將密碼改成『T3St^*』。

mysqladmin

第3步■接下來要使用 TaviWiki 內建的『 create-db.pl 』這個 Perl 腳本檔(Scripts)來建立存放於 MySQL 資料庫的綱要(Schema)。切換到文件根目錄『 /var/www/html 』的下一層 install 目錄『cd /var/www/html/install/』後,執行『perl ./create-db.pl』觀看這個腳本的使用方法。筆者在此使用最簡單的方法『 perl ./create-db.pl wikidb joe paSSw7』

Note:這行『perl ./create-db.pl wikidb joe paSSw7』,其中『 wikidb 』是連接的 MySQL 資料庫的名稱、『joe』是連接到資料庫的帳號、『paSSw7』就是帳號『joe』的密碼。

create-db

第4步■在剛才的目錄『/var/www/html/install/』下,執行『./configure.pl』會看到這個 Perl 腳本檔的使用方法,接著執行『perl ./configure.pl ../config.php』產生 TaviWiki 的設定檔。

configure

Tips:接下來的回答,會比較囉唆一點,請讀者耐心回答。

若此 Wiki 網站出現問題時,該通知的 e-mail 帳號為?筆者的回答是:alberthsu@synage.com.tw(我的 e-mail 帳號)。

email

資料庫有允許 persistent 連線嗎?預設值的回答是『 N 』。筆者是直接按下『Enter』鍵(也就是回答『 N 』)。

db

填入資料庫主機的 IP 或是主機名稱,因為我們的資料庫是裝在本機(localhost),所以直接按下『Enter』鍵。

dbsrv

問的是 Wiki 連接的資料庫名稱,所以回答『wikidb』。

dbname

連接資料庫的使用者名稱,回答『joe』。

dbuser

連接資料庫的使用者密碼,回答『paSSw7』。

dbpasswd

要不要為你的資料表增加 prefix,因為我們沒用到,所以直接按『Enter』。

prefix

Tips:若讀者使用網站代管服務,也許只買一個資料庫時,為防止資料表名稱重複,這個 prefix 的功能就很好用,會將資料表的名稱改成 『prefix_ 』 開頭,這樣不只解決名稱重複,還可以裝兩個 TaviWiki 使用同一個資料庫喔!詳見『/var/www/html/Install.txt』的步驟五。

install

為你的 Wiki 取個名字,此名字會出現在訪客瀏覽器的表頭上,筆者依 Wiki 的命名方式,取名為『LinuxGuide』。

linuxguide

設定預設瀏覽的首頁,此這頁面的名字常常會與 Wiki 的名字相同。就與 Wiki 的名字相同好了,輸入『LinuxGuide』。

homepage

設定 inter-wiki 的連結,也常常會與 Wiki 的名字相同。輸入『LinuxGuide』。

inter

是否要啟動 free links 的功能,預設是要啟動。按『Enter』設定成要啟動。

freelinks

是否要啟動傳統(traditional)wiki links 的功能,預設是要啟動。按『Enter』設定成要啟動。

traditional

是否要啟動 text enhancement 的功能,預設是要啟動。按『Enter』設定成要啟動。

enhanced

輸入完整的 URL ,這裡須要注意的是,Wiki 是 Name-Based 的,主機名稱需設定 dns 解析正確才可使 Wiki 運作正常。筆者輸入『http://wiki.synage.com.tw/index.php』。

url

輸入『管理介面』完整的 URL ,通常是比上一個輸入的 URL 多 admin 這個目錄,同樣須要注意的還是 Name-Based 的問題,主機名稱需設定 dns 解析正確才可使 Wiki 運作正常。筆者輸入『http://wiki.synage.com.tw/admin/index.php』。

admin

設定你 wiki 的 Logo(標誌),如果現在還沒有 logo 就先用 TaviWiki 總網站上的那一個吧!後續可以修改 config.php 更正 logo 的 URL。筆者輸入『http://tavi.sourceforge.net/tavi.png』。

logo

Tips:其實 config.php 不只可以修改 logo 的 URL,剛才 ./configure.pl 的所有回答皆可在 config.php 檔案裡作修正喔!

使搜尋引擎更容易依關鍵字找到你的 wiki,筆者輸入『linux guide pcuser』。

search

也是使搜尋引擎更容易依關鍵字找到你的 wiki,但這次是對此 Wiki 網站的描述,筆者輸入『Linux Guide Wiki of the pcuser』。

sentence

終於完成了 config.php 的設定。

第5步■解決名稱解析到 IP 的問題。之前提到因為 Wiki 是 Name-Based 的關係,所以最好是先把主機名稱正確的解析到 Server IP 上去(筆者的設定是『wiki.synage.com.tw』指向到『172.16.1.101』)。若是讀者能夠控制名稱解析伺服器(DNS Server),而將 Wiki 主機名稱正確無誤的指向到主機的 IP,那是最好不過的了。若是沒有名稱解析伺服器,在此介紹一個權宜之計,若主機是 Linux 的話,修改『 /etc/hosts 』加上一筆對應紀錄,例如『172.16.1.101  wiki.synage.com.tw』;若是 Windows,也是修改 hosts,但擺放的位置不同,位於『c:\windows\system32\drivers\etc\hosts』,設定格式與 Linux 相同。

hosts

winhosts

第6步■這個步驟的調整是特別為 Fedora Core 4 的 PHP 所作的調整,若是讀者的 PHP 版本沒有這個問題的話,就可以略過。修改 PHP 的設定檔『 /etc/php.ini 』找到『register_long_arrays = Off』這一行,將『 Off 』改成『 On 』並將注解『 ; 』拿掉。記得要重新啟動 Apache 喔!(參閱本文『備便 Apache 網頁伺服器』段落的 Tips )

Tips:這『register_long_arrays』的參數,主要是控制 PHP 能否繼續使用 $HTTP_*_VARS[] 的舊式用法。舉例來說:舊式的用法為 $HTTP_SERVER_VARS['REMOTE_ADDR'],而新式的用法為 $_SERVER['REMOTE_ADDR']。新版本的 PHP 為了效能關掉此參數,但 TaviWiki 須要此參數設定為『 On 』。

php

第7步■開啟你的瀏覽器,做初步的測試。筆者以 FireFox 瀏覽器為例,啟動後在網址列輸入『 http://主機名稱或IP/ 』,下圖以『 http://wiki.synage.com.tw/ 』或 『 http://172.16.1.101/ 』,連上後可以試著點那些超連結,最後還是會變成以主機名稱為主的方式,這也就是為甚麼要作第5步驟的原因。

first

TaviWiki 基本操作

在安裝完成 TaviWiki 後,會在首頁看到五個超連結及一個提供『搜尋』的介面,五個超連結分別為 LinuxGuide(Wiki 主機的名稱,也就是首頁), RecentChanges(最近有更改的頁面), Preferences(偏好設定), Edit this Document(編輯此份文件)及 View Document history(觀看文件的歷史紀錄),接下來請跟著我們先做一些基礎設定。

編輯 RecentChanges

在 Wiki 一架設好以後,建議是先編輯 RecentChanges 頁面,才能使她出現『最近有更改的頁面』功能。第一次需點選『 RecentChanges 』旁邊的『?』號,若是第二次點選的話,先點『 RecentChanges 』後,再點選『Edit this Document』,將內容的部份輸入『[[! *]]』後,要注意的是,寫入前須把右方的 ASCII 英文輸入到旁邊的空白框中(本例為 BVTRT ),再點選『 Save 』存檔。

rc

Note:筆者使用的 PHP 此時又出了小狀況,跑出了一些 Warning 的訊息,經修改『 /etc/php.ini』後,就不會有警告訊息。修改的部份為將『error_reporting = E_ALL』加注解『;』,『error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR』注解拿掉,記得一定要重新啟動 Apache 喔。

error

編輯 LinuxGuide(首頁)

編輯完 RecentChanges 以後,再來就是編輯首頁。首頁通常都會有一些固定的資訊,例如:這個 Wiki 網站架設用意、練習 Wiki 語法請到 SandBox(沙箱)以及想要通知訪客的最重要資訊。第一次需點選『 LinuxGuide 』旁邊的『?』號,若是第二次點選的話,先點『 LinuxGuide 』後,再點選『Edit this Document』,筆者的內容如下:

本網站 LinuxGuide 是用來練習架設 Wiki 的。
對於 LinuxGuide 的讀者來說,Wiki 可能很漠生,希望藉由這一篇文章,能拉近讀者與 Wiki
 之間的距離,也希望 Wiki 能對於您的組織或企業有所幫助。
一般而言,您可以使用下方的搜尋網頁找尋相關的資訊,也可以使用 RecentChanges 檢視近
期更新的頁面。若您是 wiki 新手或是你想練習 wiki 語法,可至 SandBox 練習本站語法。
謝謝您使用本套 Wiki 系統。

相較於之前的 RecentChanges,這篇頁面的內容比較多一些,對於內容比較多的文章,建議您可以使用 Wiki 內建的預覽功能( Preview ),來預覽編輯後的模樣。對於寫入中文字的部份,預設是有問題的,請依照下方 Tips 的部份稍做修改,即可正常的使用中文。記得編輯完頁面後,輸入 ASCII 英文,選『Save』存檔。

firstpage

Tips:TaviWiki 預設是使用 ISO-8859-1 的文字編碼,但這樣會造成中文亂碼。若要使用中文,須修改『 /var/www/html/lib/defaults.php 』(也就是 Tavi 程式碼下的 ./lib/defaults.php ),找到『 $Charset = 'ISO-8859-1' 』這一行改成『 $Charset = 'utf-8' 』即可。

utf-8

認識 WikiWord / WikiName

甚麼是 WikiWord / WikiName 呢?簡單說:『 WikiWord 是用來產生新的連結用的。通常的結構是把有意義的英文單字,連在一起後,並將單字開頭字母變成大寫,就成為一個新的頁面』。例如:『 recent 』『 changes 』兩個英文單字,連在一起變成『 recentchanges 』,再將單字開頭字母大寫後變成『 RecentChanges 』,Wiki 自動會產生超連結。眼尖的讀者可能已經發現,我們剛才已經寫了兩個 pages,分別為 LinuxGuide 及 RecentChanges,之後還有個 SandBox,只要是還沒寫好的頁面旁邊是個問號,寫好後就便成正常的連結了。所以只要你的英文字裡有兩個以上的大寫,就可以成為新的頁面連結,進而編輯新的頁面喔!

wikiword

編輯 SandBox(沙箱)

沙箱又是甚麼哩?其實沙箱就是測試區!因為 Wiki 有其特殊的語法,需要先練習,所以幾乎是每個 Wiki 都有設立沙箱這個頁面,供大家塗鴉。現在我們就一起來塗鴉,順便練習 Wiki 的語法。

Wiki 語法

使用 WikiWord 建立新頁面

輸入內容為『使用 CreateNewPage 這種格式就可以產生新的連結,方便吧!』

cnp

輕鬆產生 HTML 的 heading

用等號就可以產生出 HTML heading 的效果,輸入內容為:

= heading 一級 =
== heading 二級 ==
=== heading 三級 ===
==== heading 四級 ====
===== heading 五級 =====
====== heading 六級 ======

h1-6

無痛做出列表( list)

輸入內容為

星號可產生無序列表:
*無序列表一
*無序列表二
**子無序列表一
**子無序列表二
*無序列表三
井號可產生有序列表:
#有序列表一
#有序列表二
#有序列表三
星號與井號還可以混用
*無序列表一
*#有序列表一
*#有序列表二
*無序列表二

list

外部超連結、縮排與水平線

直接輸入 URL 就會變成超連結。還可以利用『[[ ]]』包裝 URL 加上名稱。想要連結到圖檔也可以輸入圖檔的 URL (但結尾須為 gif, jpg 或 png )。用冒號可以做出縮排功能。

輸入內容為:

http://www.google.com.tw/
[[http://tw.yahoo.com 雅虎奇摩]]
http://www.linux.org/images/logo/linuxorg.gif
:冒號可以縮排
::兩個冒號可以縮更多排
----

hl

表格也可以簡單做

你可以運用成對的『 || 』製作表格,例:

||儲存格一||儲存格二||
||||大儲存格||
||儲存格三||內容比較多的儲存格||

table

其它語法運用像是『粗體』或『斜體』,因為中文字比較少用這些功能,就留給讀者自行學習。

常用功能介紹

在 SandBox 練習了幾個 Wiki 語法後,應該慢慢感受到 Wiki 的迷人之處吧!接下來針對其它常用功能做簡單的介紹。

檢視文件版本之間的差異

方才在 SandBox 裡練習 Wiki 語法時,除了『 Preview 』(預覽)功能可用之外,也可以試著將編寫的頁面『 Save 』(存檔)起來,只要頁面有任何的異動,皆會產生新的版本,並提供檢視文件版本之間的差異的功能。請跟著以下的說明,很輕鬆就學會這個好用功能喔!

第1步■在瀏覽頁面時(以 SandBox 頁面為例),點選位於下方的『 View Document history 』(檢視文件歷史紀錄)功能。

Note:『View Document history』的超連結一般會在『 Edit this document 』旁邊。也可以透過點選首頁的『 RecnetChange 』,再點選某頁面文件的『 history 』(如果最近有編輯此文件的話),達到相同的效果。

diff

第2步■在點選『 View document history 』後,頁面上會出版本的資訊,可以經由點選不同版本的超連結,看到每一個版本的文件內容。除此之外,還可以自行選定要比對版本,再點選『 Compute Difference 』,可檢視版本與版本之間的差異。

diff2

搜尋功能介紹

在 Wiki 使用一陣子以後,頁面的資料會漸漸增多,會愈來愈不容易用人力去記住那些頁面記載著那些資料。此時是該利用 Wiki 搜尋功能來有效率找到欲查詢的資料頁面。讀者可以在每一個頁面的下方,看到一個 Search(搜尋)的空白框,您可以在這輸入關鍵字,接著按下『 Enter 』鍵,即可找到相關的頁面囉。

下圖為搜尋關鍵字『儲存格』的畫面。

scell

圖為搜尋關鍵字『儲存格』的結果畫面。

scellend

『 RecentChanges 』功能介紹

Wiki 通常有『 RecentChanges 』這個功能,會列出最近有異動的頁面,包括異動時間、異動者的來源 IP 資訊,也可以從此查詢文件編修史( history )。若有時候遇到要查詢的資訊才剛剛有其他人輸入,這時『 RecentChanges 』功能會比『 Searh 』好用喔!

rc2

『 Preferences 』功能介紹

TaviWiki 在『 Preferences 』這部份主要是以 IP-Based 的方式設定您的偏好設定,包括:『使用者名稱、編輯時的方框大小、歷史紀錄要列出幾筆等等功能』。

pref

管理 TaviWiki

在安裝的過程中,有提到管理介面的 URL 為『 http://主機名稱或IP/admin/ 』,但當我們存取此網頁時,預設會出現以下的文字,而無法進入管理畫面。

Administration features are disabled for this wiki.
Please contact the administrator for assistance.

開啟管理介面

第1步■請開啟並編輯『 Taviwiki 程式/config.php 』(筆者以『 /var/www/html/config.php 』為例,也就是 TaviWiki 的設定檔),找到最底下『$AdminEnabled = 0;』將『 0 』改成『 1 』即啟動管理介面功能。

ae1

使用管理介面

啟用管理介面後,主要會看到兩個功能,一個是『 Lock / unlock pages 』另一個是『 Block / unblock hosts 』

『 Lock / unlock pages 』主要是用來『鎖住頁面,不能編輯。』,通常會針對像首頁、 RecentChanges等重要頁面作鎖定,或是有些頁面的文件已經很成熟而不再須要更動時,也會鎖定住。

lock

另一個『 Block / unblock hosts 』主要針對『不友善』的來源 IP,做阻擋的動作。雖然 Wiki 秉持著『人性本善』的精神,歡迎大伙兒來『共筆』,但若是有人硬是要故意調皮搗蛋的話,Wiki 只好出此下策囉。

block

其它常見問題

以下為筆者於安裝或是在使用時遇到的小問題,整理出來提供參考。

糟糕!我的網頁出不來!

網頁不能存取時,可能有很多原因。可試著查看是否於安裝時設定『 SELinux 為 enabled 』或是『 Firewall 為 on 』。近年來的 Linux 愈來愈注重安全性,所以 Fedora core 4 於安裝時的預設值將『 SELinux 為 enabled 』且『 Firewall 為 on 』,這可能是造成網頁出不來的原因喔!若是讀者要簡單處理的話,可以將『 SELinux 為 disabled 』且『 Firewall 為 off 』應該就可以運作囉。若是要注重安全性的調整 Linux 的話,建議學習管控『 Linux Firewall 』及『 SELinux 』,這樣才能使您的 Linux 運作更加的安全。

Tips:Linux Firewall 於 Fedora core 4,可透過『 system-config-securitylevel 』指令簡單管控。詳情可學習『 iptables 』程式用法。

s-c-sl

Tips:SELinux 於 Fedora core 4,主要是透過編輯『 /etc/selinux/config 』來控制是否要啟動。圖為『 SELinux=disabled 』(關閉)。

selinux

TaviWiki 有中文化的使用介面嗎?

有的。但筆者個人覺得 TaviWiki 頁面上所有的英文字並不多(說實在的大部份是常見的英文單字),久而久之就了解其中文意思,所以並未解說中文化的步驟,也請讀者見諒。若是對這部份有興趣的讀者朋友,可連結到『 http://ccca.nctu.edu.tw/~hlb/articles/archives/cat_wiki.php 』,在此並感謝 hlb 網友提供 Wiki 相關中文資訊。

可以使用中文的頁面名稱嗎?

可以,例如:您可以將 URL 改成『 http://wiki.synage.com.tw/index.php?page=中文 』存取看看,會出現編輯『 中文 』這個頁面的畫面,想當然的一定可以存檔囉。但造成影響主要有兩個:一個是中文沒有 WikiWord 可用,二是有時微軟 IE 會出現網頁找不到的問題。WikiWord 可以忍著不用,但網頁找不到問題就大了,這『有時找不到網頁』的原因是因為 Wiki 的 URL 採用新一代的『utf-8 』編碼,若使用新一代的作業系統的訪客比較不會有問題,若是使用較舊的 Windows 的訪客,可以開啟 IE 『工具』下拉選單裡的『網際網路選項』對話盒,選擇第六個標籤頁『進階』頁面的『永遠將 URL 傳送成 UTF-8』勾選並重新啟動即可。

Note:這種情況發生的比率不高,筆者的經驗大約 1 % 左右。(約 100 台電腦會有 1 台)

ieutf8

CSS 與 TaviWiki 的關係

CSS( Cascading Style Sheets )中文翻譯成〔連(串)接樣式表〕,主要功能是做網頁的排版用的,是新一代的網頁設計技術。使用 CSS 的好處多多,但不在本文的討論範圍。有興趣的讀者請參考『 http://www.csszengarden.com/tr/chinese/』(中文)或『 http://www.w3.org/Style/CSS/』(英文)。那 TaviWiki 與 CSS 有何關係呢?主要我們是可以修改 Taviwiki 的 CSS 達到不同的顯示效果出來喔!接下來與我們一同修改 CSS 吧!

第1步■開啟並編輯『 Taviwiki 程式/template/wiki.css 』(筆者以『 /var/www/html/template/wiki.css 』為例),找到『 pre { ... }』的區段後,先使用『/* ... */』的結構將其注解起來,再輸入底下的內容並存檔。

pre {
    border: #777777 1px solid;
    padding: 0.5em;
    margin-left: 1em;
    margin-right: 2em;
    background-color: #e6e6e6;
    color: black;
}

css

第2步■編輯 SandBox 或任何一個頁面(注意:右邊的 ASCII 文字被框起來了喔!),試著輸入底下內容並存檔。

<code>
測試 Wiki 的 code 標籤
也就是 HTML 的 pre 標籤
配合 CSS 喔!
</code>

code

這是存檔完成後的畫面。

code2

Tips:對 CSS 有興趣的讀者,可以試著改其它的 CSS 標籤喔!

更換 Logo

請開啟並編輯『 Taviwiki 程式/config.php 』(筆者以『 /var/www/html/config.php 』為例,也就是 TaviWiki 的設定檔),找到『$WikiLogo』這一行,改成圖片的所在的網址即可。(筆者以『$WikiLogo = 'http://wiki.synage.com.tw/mylogo.png';』為例)

mylogo

關於管理介面的開關

管理介面(http://主機名稱/admin/)除了使用 config.php 來開啟 / 關閉之外,若要加上使用者認證,建議使用 Apache 的『 .htaccess 』功能,實作使用者認證。

TaviWiki 可以上傳圖片嗎?

TaviWiki 主要是文字為主,若要上傳圖片,其實是可以採用 Linux 本身上傳的方式,上傳完畢後再做圖片的連結,TaviWiki 本身並未提供 Web 上傳圖檔的功能。若讀者的文件很需要圖片做穿插,建議您使用其它的 Wiki 。例如:MediaWiki。

有些頁面不要了,可以刪除嗎?

可以。但是沒有 Web 的介面。可以自行存取 MySQL 內的資料做刪除頁面的動作,這個動作同時也可以回朔頁面到之前的版本。(簡單說,一般使用者不是很容易處理,需要有資料庫基本的管理概念。)

一台主機可以裝兩個以上的 Wiki 嗎?

可以的。筆者因為安裝及測試上的方便,裝了一台『只作 Wiki 網站』的主機,前述的安裝流程也是如此。若是讀者有裝兩個以上的 Wiki 需求,或是 Wiki 要與原本的網頁伺服器同一台,還是說要與其它 Web 應用程式(XOOPS, OSCommerce, PHPBB ...)同一台伺服主機,理論上都是可以做到的喔!

Tips:在 tavi 程式目錄內有 INSTALL.txt, README.txt, TODO.txt 這些檔案,筆者主要依照著 INSTALL.txt 的說明內容安裝 TaviWiki,其中有提到像是『兩個 wiki 共用同一個 MySQL 資料庫時該如何做?』這很適合用在虛擬主機代管。只可惜說明文件是英文版的,且需要較多的專業知識才看得懂!

進階學習:若要讓 Wiki 與原本的網頁伺服器同一台,可以採用安裝在網頁子目錄的方式,要不然就會使用到 Apache 的『 Virtual Host 』功能(虛擬站台)。

結語

在網路發達、資訊爆炸的現代,知識與資訊不只是多,而且又雜,但真正對於個人或企業有價值的,反而是『整理好的』、『對個人或企業有用』的知識。

筆者於任職的公司內部,架設了一台 TaviWiki 已經運行一年多,同事也相當喜歡使用 Wiki 來寫資料、查資料,現下 Wiki 對於我們的感覺,就好像家裡冰箱上的便條紙,只要您是家裡的人,都可以功開你想公開的資訊,其它人不只可以看、可以查,還可以幫忙改哩!Wiki 的方便性,不只是這樣,您可以在公司內部的任何一台電腦桌前,查詢你要的資料、編寫資料或更新資料,而這些資料,會變成企業的資產,不會因為人員的離職而流失。

Wiki 最適合記載怎樣的資料?是『一人編寫萬人查』的資料?還是常常需要更新的資料?還是大伙對於某個事件的經驗或經歷?亦或是需要被公開的資料?其實剛才說到的,都很適合記在 Wiki 上,除了不能被公開的資料(例如:密碼或薪資),是不適合寫在 Wiki 而已。

每個上班族幾乎都有使用 office 文件來記載資料的經驗吧!試想想以下的場景。

場景一:『辛辛苦苦寫好的文件,結果 A 同事說他好像之前就有寫過類似的一份文件。』倘若這些都寫在 Wiki 上,想知道先前有沒有人寫過類似的文件,一查馬上就知道,不只可以參考,還可以修改。

場景二:『一份寫好的文件,e-mail 給 A 同事,也給 B 同事,結果 C 同事想要一份時,自己在電腦找老半天,找到也就算了,找不到還請 B 同事轉送一份,還沒完哩,B 同事修了些錯字並且改了一些文章的內容,後來卻懶的回傳個你,結果你下次用『舊』的文件,但 B 同事卻是用她個人『新』的版本,也可能因此造成兩位員工對客戶、或是對事情的處理方式產生差異。』

場景三:『在同事的位子附近,突然想給同事看的文件資料,卻須要回到自己的位子上,才能將文件傳過去。』

場景四:『某同事離職了,電腦還不可以 format,搞不好還要將資料燒成光碟,等到最後要查的時候,光碟在那裡?資料又在那裡?』

也許讀者會認為這不過只是短短的幾秒鐘時間,算不了甚麼,但這些來來回回浪費的人力與時間,也許是版本差異造成時間的浪費,亦或是公開資料沒有統一控管造成的浪費,其實都是很可怕的。曾經有不少的企業或團體,使用 Wiki 的共筆系統,在很短的時間之內,造就很豐富的文件內容,也同時印證:『團結力量大』這句話。(下圖為筆者公司內部之 Wiki 應用快照)

comwiki

附錄: MediaWiki 安裝簡介

第1步■到 http://www.mediawiki.org/ 右邊找到下載軟體的連結(筆者以下載到 mediawiki-1.5rc4.tar.gz(至筆者截稿以前,最新的版本為 1.5rc4 版),實際的下載連結為 http://prdownloads.sourceforge.net/wikipedia/

mw

第2步■使用指令『tar -zxf mediawiki-1.5rc4.tar.gz -C /var/www/html/』解開下載的包裹,並解開到 /var/www/html/ 下產生一個『 mediawiki-1.5rc4 』的目錄。

tarx

第3步■開啟瀏覽器輸入『http://主機名稱/mediawiki-1.5rc4/』存取這個目錄,會要求你先『 setup this wiki 』(首次設定),進入連結後,依說明操作後重整網頁。

cd /path/to/wiki
chmod a+w config

筆者的為

cd /var/www/html/mediawiki-1.5rc4/
chmod a+w config

config

第4步■此為重要的設定頁,紅色為必填欄位。

『 Checking environment... 』主要會檢查環境是否備便能裝 MediaWiki。

chkenv

Site Config 中的 Site Name:筆者填入『 pcuser 』。

Language 就隨手換成了『 zh_tw - 中文(繁體)』

sitecf

MediaWiki 是有管理員帳號的,輸入密碼後要記得喔

sysop

Database Config 主要是要建立 MediaWiki 存放的那個資料庫。筆者修改 Database name 為 wikidb2(因為 wikidb 剛好被 TaviWiki 用掉了),填入密碼後,並在底下輸入 Database root 的密碼後『空的』(因為筆者的 MySQL 之 root@localhost 此時並不需要密碼),然後按下『 Install 』鍵。

db2

db3

接下來如果一切順利的話,最下方會請你將『 config/LocalSettings.php 』搬到上一層,再點連結。

筆者位於『 /var/www/html/mediawiki-1.5rc4 』,輸入指令『 mv config/LocalSettings.php . 』(此指令代表將 config 目錄下的 LocalSettings.php 搬到『 . 』也就是『當下目錄』)

ok

看到下圖,差不多算是完成了!後續可以透過『http://wiki.synage.com.tw/mediaWIKI-1.5rc4/ 』光臨這個網頁。

ok2

備注一:至於 MediaWiki 的使用,限於篇幅,無法一一為讀者介紹,可參考『 http://wiki.debian.org.tw/index.php/DebianWiki:WikiFAQ 』或其它資訊。

備注二:當初 TaviWiki 與 MediaWiki 皆裝好於公司,一因主機過慢,跑不動 MediaWiki。二則因公司同事也是初次接觸 Wiki,想說先從簡單的開始,沒想到 TaviWiki 一用就一年多,而 MediaWiki 卻沒甚麼在用,也還蠻奇怪的!

Valid XHTML 1.0! Valid CSS! Get Firefox

Creative Commons License
This site is licensed under a Creative Commons Attribution 2.5 Taiwan License.