Web 2.0這一概念,由O‘Reilly媒體公司總裁兼CEO提姆·奧萊理提出。他是美國IT業(yè)界公認(rèn)的傳奇式人物,是“開放源碼”概念的締造者,一直倡導(dǎo)開放標(biāo)準(zhǔn),并活躍在開放源碼運動的最前沿。 在Web2.0革命中,維基(Wiki)的起源比博客還要早。博客是自己一個人編寫維護,每天更新博客會讓你思維枯竭,維基技術(shù)和支持它的網(wǎng)頁就能夠讓大家群策群力一起交流共同愛好。維基對所有人包括瀏覽Wiki頁面的人都是全開放的。也就是說,每個人都可以任意創(chuàng)建、修改和刪除網(wǎng)站上的頁面內(nèi)容。維基和博客相比更加具有團隊精神。
通常我們將Wiki翻譯為“維基”,到底何為Wiki?Wiki一詞來源于夏威夷語的“wee kee wee kee”,原本是“快點快點”(quick quick)的意思。Wiki是一種在線多人協(xié)作的超文本系統(tǒng)寫作工具。Wiki站點支持面向社群的協(xié)作式寫作,每個人都可以發(fā)表自己的見解,或者對共同維護的主題進行擴展。Wiki同時也包括一組支持這種寫作的輔助工具,可以在Web的基礎(chǔ)上對Wiki頁面的文本進行創(chuàng)建,更改和發(fā)布,比做網(wǎng)頁和更新網(wǎng)頁簡單方便得多。第一個 Wiki 網(wǎng)站誕生于 1995 年,創(chuàng)始人Ward Cunningham 為方便其創(chuàng)建的社群的交流建立了一個工具-波特蘭模式知識庫(Portland Pattern Repository)。在建立這個系統(tǒng)的過程中,Ward Cunningham創(chuàng)立了Wiki這一概念和名稱,并且實現(xiàn)了支持這一概念的服務(wù)系統(tǒng)。這個系統(tǒng)就是最早的Wiki系統(tǒng)。從1996年至2000年間,波特蘭模式知識庫圍繞著面向社群的協(xié)作式寫作不斷發(fā)展,使Wiki的概念不斷得到豐富延伸。同時Wiki的概念也得到了廣泛傳播,出現(xiàn)了許多基于此技術(shù)的網(wǎng)站和軟件系統(tǒng)。
實際上 wiki 也真的是既簡單又快速,你可以看到 wiki 每天都在成長。新概念的定義總是讓人有點摸不著頭腦,wiki 也不例外。先看看簡單解釋:Wiki——一種多人協(xié)作的寫作工具。Wiki站點可以有多人(甚至任何訪問者)維護,每個人都可以發(fā)表自己的意見,或者對共同的主題進行擴展或者探討。Wiki指一種超文本系統(tǒng)。這種超文本系統(tǒng)支持面向社群的協(xié)作式寫作,同時也包括一組支持這種寫作的輔助工具。我們可以在Web的基礎(chǔ)上對Wiki文本進行瀏覽、創(chuàng)建、更改,而且創(chuàng)建、更改、發(fā)布的代價遠比HTML文本為小;同時Wiki系統(tǒng)還支持面向社群的協(xié)作式寫作,為協(xié)作式寫作提供必要幫助;最后,Wiki的寫作者自然構(gòu)成了一個社群,Wiki系統(tǒng)為這個社群提供簡單的交流工具。與其它超文本系統(tǒng)相比,Wiki有使用方便及開放的特點,所以Wiki系統(tǒng)可以幫助我們在一個社群內(nèi)共享某領(lǐng)域的知識。
Wiki 可以做什么:
1. Wiki 使用了簡化的語法,替代復(fù)雜的 HTML,加上 WEB 界面的編輯工具,降低內(nèi)容維護的門檻;
2. Wiki 通過文本數(shù)據(jù)庫或者關(guān)系型數(shù)據(jù)庫實現(xiàn)了版本控制,可以隨時找回以前的版本,也可以和以前的版本進行對比,版本控制使多人協(xié)作成為可能,又保護了內(nèi)容不會丟失;
3.任何信息都可以被任何人修改和刪除,頁面內(nèi)容保持了一致性,因為清除垃圾文字、廣告是那么的容易,最終剩下的是最有意義的內(nèi)容;任何人都可以參與,但是最后剩下的是最好的參與者;
4.Wiki 通過協(xié)作精神,實現(xiàn)了快速的信息整合;"Wiki" 這個單詞本身來自于夏威夷語,就是快速的意思,"WikiWiki"自然就是極快的意思了。
想要開始wiki的方式分為兩種,一種是到wiki空間提供網(wǎng)站注冊,注冊完后就可以開始了。另外一種就是在自己的計算機上架設(shè)一個wiki,好處是沒有儲存空間限制,缺點是整個過程稍微麻煩一點,還有必須要有不錯的上傳頻寬,當(dāng)造訪人數(shù)不多時,家用的ADSL就夠用了,但如果有一天你的wiki紅透半邊天,那么上傳速度緩慢的ADSL恐怕會讓你的讀者感到痛苦。雖然在自己的計算機上架設(shè)wiki好象有缺點,但是自由度相對的也比較大,這里,我們就教你如何十分鐘在你的計算機上架設(shè)好wiki。
一、準(zhǔn)備工作
首先配置一個基于Apache的LAMP服務(wù)器和ImageMagicK軟件,后者主要用于對圖像進行轉(zhuǎn)換、編輯、組合、特殊處理等,是一款非常好用的圖像處理工具。它支持對多種格式的圖像進行處理,最多支持的圖像格式有157種格式,包括目前流行的TIFF、JPEG、PNG、PDF、PhotoCD及GIF等。Image MagicK還支持動態(tài)圖像創(chuàng)建,這一點非常適合在Web頁面上使用。使用MM Cache加速PHP:
由于 PHP 的程序代碼去調(diào)用了太多的函式庫,而這些函式庫每次調(diào)用都需要由硬盤讀出來,有沒有辦法提升 PHP 的執(zhí)行速度。如果我們可以將這些在硬盤里面的函式庫先讀到高速緩存中( Cache ),由于內(nèi)存的速度可比硬盤快多了。如此一來的話,當(dāng)然可以提升不少速度。這里我們介紹一款授權(quán)在 GPL 上面的可以對 PHP 程序代碼進行快取并且予以優(yōu)化的軟件,那就是 MM Cache官方網(wǎng)站在:
http://www.turcksoft.com/ 。目前 MM Cache 最新版本:2.4.6 。
1、軟件下載和安裝
wegt
http://jaist.dl.sourceforge.net/ ... mcache-2.4.6.tar.gzcd /usr/local
tar -xvf turck-mmcache-2.4.6.tar
cd turck-mmcache-2.4.6
export PHP_PREFIX=”/usr”
$PHP_PREFIX/bin/phpize
./configure--enable-mmcache=shared --with-php-config=$PHP_PREFIX/bin/php-config
make;make install
修改/usr/local/lib/php.ini 文件,加入以下內(nèi)容:
extension=”mmcache.so”
mmcache.shm_size=”16”
mmcache.cache_dir=”/tmp/mmcache”
mmcache.enable=”1”
mmcache.optimizer=”1”
mmcache.check_mtime=”1”
mmcache.debug=”0”
mmcache.filter=””
mmcache.shm_max=”0”
mmcache.shm_ttl=”0”
mmcache.shm_prune_period=”0”
mmcache.shm_only=”0”
mmcache.compress=”1”
然后建立臨時取數(shù)據(jù)目錄:
#mkdir /tmp/mmcache
#chmod 0777 /tmp/mmcache
從新啟動Apache服務(wù)器:
#/usr/local/httpd/bin/apachectl start
安裝MM Cache后網(wǎng)頁速度明顯加快了,具體數(shù)據(jù)可以查看:
http://sourceforge.net/projects/turck-mmcache/ 對比報告。
二、搭建維基網(wǎng)站
1. 維基引擎的選擇
MediaWiki全球最著名的開源wiki引擎,運行于PHP+MySQL環(huán)境。從2002年2月25日被作為維基百科全書的系統(tǒng)軟件,并有大量其他應(yīng)用實例。目前MediaWiki的開發(fā)得到維基媒體基金會的支持。MeidaWiki一直保值著持續(xù)更新,當(dāng)前最新版本為1.4.13(2006-1-5)和1.5.6(2006-1-19)穩(wěn)定版本。MediaWiki的原作者為德國的Magnus Manske。為什么要選擇mediawiki來做wiki網(wǎng)站?
1.經(jīng)受過重量級應(yīng)用的考驗,功能豐富卻架設(shè)簡單。
2.全世界最大的wiki項目維基百科是使用mediawiki的成功范例,數(shù)據(jù)量、訪問量都超級龐大 mediawiki的功能非常豐富,支持多語言版本,充分滿足知識站點的需要。
3.運行環(huán)境要求很低,架設(shè)過程簡潔,即使新手也可以迅速建立自己的站點。
4.最大的wiki程序社區(qū):mediawiki是目前應(yīng)用最廣的wiki程序,數(shù)以萬計的網(wǎng)站在使用它,很容易找到范例站點有大量的熱心參與人員參與研究,資料多,容易找到互相交流的朋友。例如QQ群3680101(技術(shù)群)。持續(xù)開發(fā),程序特性功能不斷完善,保證未來的支持 mediawiki是受到維基媒體基金會支持的開源項目,在功能、性能、安全方面將不斷優(yōu)化。
版本選擇:
1.5.X:具備目前最多特性的新版本。與1.4.X相比,一些管理問題尚不夠穩(wěn)定;從1.4.X升級過來也有諸多不便的細節(jié),例如丟失大量的mediawiki變量的本地化信息(變量改了)
1.4.X:目前最為穩(wěn)定完善的系列。
所以最后選擇:1.4.6版本。
2.wiki軟件下載:
#cd var/www/html
#wegt
http://keihanna.dl.sourceforge.n ... iawiki-1.4.6.tar.gz#tar vxf mediawiki-1.4.6.tar.gz
#mv mediawiki-1.4.6 wiki“建立一個目錄”
3.建立數(shù)據(jù)庫:
# mysql –u root –p
Enter password: xxxxxxxxx
Your Mysql connection id is 3 to server version: 4.11
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
Mysql> create mediawiki database ; “為建立數(shù)據(jù)庫”
Query OK, 1 row affected (0.01 sec)
Mysql>grant all mediawiki privileges on mediawiki.* to mediawiki@localhost identified by ‘76543981’ ; “將建立的mediawiki 權(quán)限給mediawiki 賬號,并且設(shè)定密碼”
mysql>exit
Bye
4.開始安裝:
(1)
#cd /var/www/html/wiki #進入到Apache 服務(wù)器的確省目錄中#
#chmod a+w(777)config #賦予文件和目錄的可以執(zhí)行權(quán)限#
進行網(wǎng)絡(luò)安裝安裝非常簡單通常需要以下幾個步驟:打開Linux的Firefox火狐瀏覽器在地址欄直接輸入:http://主機名/wiki/index.php 后,出現(xiàn)安裝前準(zhǔn)備工作界面,見圖1。
圖1 安裝向?qū)гO(shè)定
以上內(nèi)容主要以下部分:為了讀者填寫方便筆者把它作一個列表:
填寫系統(tǒng)信息 填寫內(nèi)容 說明
Site config 站點設(shè)置
Site name: Cjh 站點別名
Admin mail address
goodcjh@xxx.net 系統(tǒng)管理員電子郵件
Language zh-cn 簡體中文 語言設(shè)定
Copyright/license metadata GNU Free Documentation License 1.2 (Wikipedia-compatible) 遵守的版權(quán)協(xié)議
Sysop account name: 管理員用戶名稱 名稱建議英文
password XXXXXXXX 管理員的密碼
again: XXXXXXXX 再次輸入管理員的密碼
Shared memory caching Memcached Php加速服務(wù)器類型
Memcached servers localhost 主機別名
Database config MYSQL數(shù)據(jù)庫設(shè)定
MySQL server localhost 數(shù)據(jù)庫主機名稱
Database name Wiki 數(shù)據(jù)庫名稱
DB username Wiki 數(shù)據(jù)庫管理員賬號
DB password xxxxxxxx 數(shù)據(jù)庫管理員密碼
again xxxxxxxx 再次輸入數(shù)據(jù)庫管理員密碼
Database table prefix Wiki_ 數(shù)據(jù)庫表格字首
DB root password xxxxxxx 數(shù)據(jù)庫root賬號密碼
填寫結(jié)束后按“install ”按鈕進行安裝,系統(tǒng)如果出現(xiàn)圖2表示安裝成功,如果有錯誤(錯誤處會用紅色標(biāo)出)會自動退回到圖1的對話框讓你從新設(shè)定。
圖2 系統(tǒng)安裝成功
執(zhí)行了瀏覽器安裝過程後,在config目錄下會自動生成一個LocalSettings.php的本地配置文件。把它LocalSettings.php移動到上級目錄中。然后點擊圖4頁面右下角處:“this Link”鏈接就可以看到完成安裝的wiki首頁了。見圖3。
圖 3 維基首頁
到此為止,我們初步建立wiki網(wǎng)站。下面要高效、安全運行它還需要一些管理方法。
三、管理Wiki網(wǎng)站
Wiki后臺管理功能很完善,通過簡單的特殊頁面完成這些功能。首先登錄,點擊“特殊頁面”選擇“用戶登錄”即可。見圖4。
圖4 維基的用戶登錄界面
圖5 維基參數(shù)設(shè)置界面
Wiki管理特點:自動產(chǎn)生鏈接,編輯文本中中括號中的內(nèi)容(如“{X條目}”)將自動產(chǎn)生鏈接 允許使用模板,方便對相同內(nèi)容的重復(fù)使用、更新 支持分類,并根據(jù)分類在不同的文章之間自動產(chǎn)生關(guān)聯(lián) ,允許每個用戶自行選擇系統(tǒng)外觀。
Wiki 的管理員特殊頁面的參數(shù)設(shè)置,一共九個大版面:“用戶數(shù)據(jù)”、“快速導(dǎo)航條設(shè)置”、“皮膚”、“數(shù)學(xué)顯示”、“文字框尺寸”、“時區(qū)”、“最近更新”、“搜索結(jié)果設(shè)定”、“雜項”。另外在幫助的首頁中的常見問題回答。這樣你也可以自己輕松wiki網(wǎng)站了。
5.開始工作
參數(shù)設(shè)置完成后,就可以開始工作。界面見圖6。
圖6 維基編輯的界面
維基頁面的內(nèi)容編輯過程類似于文本編輯器的使用。點擊頁面上方的“編輯本頁”標(biāo)簽,即可打開一個編輯頁面;在其中修改或輸入新的內(nèi)容后,點擊下方的“保存本頁”按鈕后,修改內(nèi)容將被記錄下來。對于分成多個段落的文章,每段標(biāo)題的右側(cè)會有[編輯]字樣,可點擊進入單獨段落的編輯過程。編輯頁面下方的“簡述”欄用來輸入本次編輯的摘要,這將會顯示在最近更改及頁面歷史中,用于提醒當(dāng)時編輯的原因和主要改動內(nèi)容。如果進行了復(fù)雜版式修改而不能確定效果時,可以先點擊“顯示預(yù)覽”按鈕,確認(rèn)修改正確后再保存。為防止意外丟失編輯成果,建議使用外部文本編輯器進行長時間編輯,完成后再復(fù)制到編輯頁面保存。(常見意外包括:服務(wù)器故障、網(wǎng)絡(luò)不穩(wěn)定、瀏覽器異常、編輯沖突等)。
四、提高維基網(wǎng)站的安全性
1. 維基管理口令安全
Wiki以平和信任的觀點來對待所有愿意接觸它,了解它和壯大它的人,其根本理念就認(rèn)為上認(rèn)為不會有人故意破壞Wiki網(wǎng)站。Wiki是全開放的,萬一有陌生人來網(wǎng)站上亂搞怎么辦?別擔(dān)心,所有的Wiki 頁面都可以進行版本控制,你隨時都可以找回之前的正確版本,有效地保護內(nèi)容不會丟失。Wiki最高管理權(quán)限是Sysop用戶,所以要合理設(shè)置其登錄口令??诹钕到y(tǒng)安全的第一道防線,但常常因為系統(tǒng)管理員對于“小概率事件”的錯誤印象變得很脆弱。用單詞作密碼是根本架不住暴力攻擊的。黑客們經(jīng)常用一些常用字來破解密碼。曾經(jīng)有一位美國黑客表示,只要用“password”這個字,就可以打開全美多數(shù)的計算機。其它常用的單詞還有:account、ald、alpha、beta、computer、dead、demo、dollar、games、bod、hello、help、intro、kill、love、no、ok、okay、please、sex、secret、superuser、system、test、work、yes等。好的口令根本不是指口令本身,而是指這種方法:設(shè)置的密碼容易記住,但很難被破解。我們所說的密碼是指多個密碼,這樣即使有人猜出了其中一個口令,也不知道你的所有口令。以下是口令設(shè)置方面的準(zhǔn)則,可以幫你創(chuàng)建無法被猜中但又容易記住的密碼。選擇核心短語。開始要選一個至少5個單字長的短語。這可以是某首歌的頭一行、一句引語或者是書名——只要你記在腦海中的都行。然后利用該短語創(chuàng)建核心口令,通常的辦法是取每個單詞的頭一個字母。比如tcith,這是書名《The Cat in the Hat》的頭一個字母組成的口令。這個簡單的步驟可以保護你,以免有人運行所謂的字典式攻擊:字典里面的每個單字(還有許多專有名稱)都被試過,直到正確的單字被找到為止,電腦可以在很短時間內(nèi)完成字典式攻擊。密碼設(shè)置和原則:
1).足夠長,指頭只要多動一下為密碼加一位,就可以讓攻擊者的辛苦增加十倍;
2). 不要用完整的單詞,盡可能包括數(shù)字、標(biāo)點符號和特殊字符等;
3).混用大小寫字符;
4).經(jīng)常修改。
2.使用.htaccess來保護Apache服務(wù)
.htaccess文件是Apache服務(wù)器上的一個設(shè)置文件。它是一個文本文件,可以使用任何文本編輯器進行編寫。首先在要設(shè)置存取控制的目錄(如htdocs)下建立一個文件,文件名可以自行設(shè)定,一般服務(wù)器都會設(shè)置為.htpasswd,該文件是不能由HTTP讀取的。.htpasswd文件中的每一行代表一個使用者,使用者的名字及經(jīng)過加密的密碼以冒號:分隔。
3. 以安全模式運行PHP
以安全模式運行PHP是使PHP腳本安全使用的好方法,特別是在允許用戶使用自己開發(fā)的PHP腳本時。使用安全模式會使PHP在運行函數(shù)時檢查是否存在安全問題。include、readfile、fopen、file、unlink、rmdir等等:被包含的文件或者該文件所在目錄的所有者必須是正在運行的腳本的所有者;
Mysql_Connect:這個函數(shù)用可選的用戶名連接MySQL數(shù)據(jù)庫。在安全模式下,用戶名必須是當(dāng)前被執(zhí)行的腳本的所有者,或運行httpd的用戶名(通常是nobody)。
HTTP Authentication:包含HTTP驗證代碼腳本所有者的用戶ID(數(shù)字型)會自動加到驗證域。這樣可以防止有人通過抓取密碼的程序來欺騙同一個服務(wù)器上的HTTP驗證腳本。
4.根據(jù)需要對系統(tǒng)服務(wù)進行控制
服務(wù)是一種在系統(tǒng)后臺運行的應(yīng)用程序類型,它與Linux守護進程類似。如果可能的話,盡量使用本地賬號而不是域賬號作為服務(wù)賬號,因為如果某人物理上獲得了服務(wù)器的訪問權(quán)限,他可能會轉(zhuǎn)儲服務(wù)器的LSA機密,并泄露密碼。如果你使用域密碼,森林中的任何計算機都可以通過此密碼獲得域訪問權(quán)限。而如果使用本地賬戶,密碼只能在本地計算機上使用,不會給域帶來任何威脅。一個基本原則告訴我們,在系統(tǒng)上運行的代碼越多,包含漏洞的可能性就越大。你需要關(guān)注的一個重要安全策略是減少運行在你服務(wù)器上的代碼。這么做能在減少安全隱患的同時增強服務(wù)器的性能。在Linux中缺省運行的服務(wù)有很多,但是有很大一部分服務(wù)在大多數(shù)環(huán)境中并派不上用場。 關(guān)閉MySQL的網(wǎng)絡(luò)功能,mysqld進程啟動時,會自動尋找/etc/my.conf這個配置文件。綁定網(wǎng)絡(luò)地址需要通過命令行參數(shù)進行控制。比如,在/etc/init.d/mysql腳本中找到以下代碼:
$bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file&
并將其修改為:
$bindir/safe_mysqld --datadir=$datadir ... --skip-networking&
這樣就可以完全關(guān)閉MySQL的網(wǎng)絡(luò)功能。
5.限制管理員權(quán)限
系統(tǒng)管理員具有最大的權(quán)限,而該權(quán)限可能會與其它的板主權(quán)限相沖突而造成不可預(yù)期的錯誤,所以最好不要讓系統(tǒng)管理員當(dāng)版主。另外用root權(quán)限運行MYSQL也不太安全,這里推薦使用其他用戶運行MYSQL。方法是:
# mysql -u root -p
Enter password:xxxxxxxxx
………
mysql>update user set user="cao" where user="root";
mysql> flush privileges;
mysql>quit
Bye
以后就得通過cao賬號訪問mysql數(shù)據(jù)庫了。
6. 關(guān)閉Mysql遠程連接
首先,應(yīng)該關(guān)閉3306端口,這是MySQL的默認(rèn)監(jiān)聽端口。由于此處MySQL只服務(wù)于本地腳本,所以不需要遠程連接。盡管MySQL內(nèi)建的安全機制很嚴(yán)格,但監(jiān)聽一個TCP端口仍然是危險的行為,因為如果MySQL程序本身有問題,那么未授權(quán)的訪問完全可以繞過MySQL的內(nèi)建安全機制。關(guān)閉網(wǎng)絡(luò)監(jiān)聽的方法很簡單,mysqld進程啟動時,會自動尋找/etc/my.conf這個配置文件。在/etc/my.cnf文件中的[mysqld]部分,去掉#skip-networking前面的“#”即可。另外要盡量養(yǎng)成在mysql下輸入密碼的習(xí)慣,因為Shell下面輸入的時候可能會被其它人看見。
總結(jié):
LAMP和mediawiki可以組成一個優(yōu)秀的維基網(wǎng)站,可以在互聯(lián)網(wǎng)上運行,也可以在Linux局域網(wǎng)中運行。有了維基一個用戶就可以低成本地發(fā)布、更新和維護自己的維基網(wǎng)站。在預(yù)算短缺的今天,LAMP+mediawiki組成維基網(wǎng)站無疑具備明顯的價格優(yōu)勢。
(http://www.fanqiang.com)