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