基本簡介
Drupal誕生於2000年,是一個基於PHP語言編寫的開發型CMF(內容管理框架),即:CMS+ framework。其中 framework是指Drupal核心中的功能強大的PHP類庫和PHP函式館,以及在此基礎上抽象的Drupal API。在網站開發能力上,Drupal和Yii、CodeIgniter、Zend、CakePHP等業界頂級PHP框架同樣強大。形象的說,Drupal是一個附帶CMS的PHP開發框架。Drupal創始人Dries Buytaert創辦的美國Acquia公司的開發人員甚至戲稱:Drupal是一個用於開發網站的“作業系統”(webOS),而且此稱法被業界廣泛接受。很多Drupaler(即Drupal開發者)信奉這樣一條真理:既然Drupal已經為我們寫好了CMS,那么我們為什麼還要選擇那些不含有CMS的PHP開發框架呢?Drupal是一套開源系統,全球數以萬計的WEB開發專家都在為Drupal技術社區貢獻代碼。因此,Drupal的代碼在安全性、健壯性上具有世界最高水平。這也是美國白宮、美國商務部、法國政府、紐約時報、SONY等著名政府和機構紛紛採用Drupal建設網站的最重要的原因。
Drupal不等於模板建站系統,他們之間有著本質的區別。Drupal的學習曲線相當漫長和陡峭,比PHP難度大得多,要求也高的多。事實上,只有精通XHTML、CSS、Javascript、PHP、MySql的開發人員,經過長期刻苦的學習,才有可能真正的駕馭Drupal,Drupal是給經驗豐富的程式設計師用的,而不是給一般普通用戶用的。模板建站系統則不同,模板系統根本不需要任何學習,不需要任何編程知識就可以使用,只適合初級用戶搭建一些簡單的網站。
Drupal具有業內最強的定製能力和靈活性,這也是造成Drupal學習難度太大的根本原因,這也是沒有辦法的事情,靈活性的提高必然使複雜程度提高。因此,Drupal技術圈內有一句名言——“Drupal有難度,學習需謹慎。”
Drupal強大的定製開發能力,也使其成為眾多有技術實力的網站建設公司優先選用的網站開發平台。因為,任何網站建設公司自己開發的系統,在技術上都無法達到Drupal的水平,這正是開源軟體的優勢所在:全世界的WEB專家都在為Drupal貢獻自己的智慧,這是某個公司內部技術團隊永遠也無法享受到的。是否具有Drupal技術的開發能力也成為鑑別網站建設公司實力的試金石。沒有技術實力的公司,根本沒有能力駕馭Drupal。
Drupal的架構由三大部分組成:核心、模組、主題。三者通過Hook機制緊密的聯繫起來。其中,核心部分由世界上多位著名的WEB開發專家組成的團隊負責開發和維護。
Drupal綜合了強大並可自由配置的功能,能支持從個人部落格(PersonalWeblog)到大型社區驅動(Community-Driven)的網站等各種不同套用的網站項目。Drupal最初是由DriesBuytaert所開發的一套社群討論軟體。之後,由於它的靈活的架構,方便的擴展等特性,使得世界上成千上萬個程式設計師加入了Drupal的開發與套用中。今天,它已經發展成為一套強大的系統,很多大型機構都採用基於Drupal的框架建站,包括The Onion,Ain't ItCool News,SpreadFirefox,Ourmedia,KernelTrap,NewsBusters等等。它特別常見於社區主導的網站。
Drupal官方網站目前的最高版本是9.x-dev開發版本,目前最新版本為drupal8 alpha10,於2014年3月19日下午8:18發布,流行第7版版本為7.26,是官方推薦的穩定版。該版本由7.1版修復而來,修正了大量BUG,沒有太多新功能,適合學習Drupal的新手安裝。下載頁面同時提供了Drupal 6.29等舊版本下載。
優點與功能
優點
+搜尋引擎友好的URL
+Drupal提供了強大的個性化環境,每個用戶可以對網站內容和表現形式進行個性化設定
+Drupal提供了基於角色的許可權系統,沒有必要對每個用戶進行授權,只需要對角色進行授權
+Drupal提供的站內搜尋系統能對站內的所有內容進行索引和搜尋
+Drupal的模板系統將內容和表現分離,可以很方便地控制網站的外觀
+Drupal提供內建的新聞聚合工具
+提供完善的站點管理和分析工具
+Drupal的Caching機制能有效減少資料庫查詢次數,從而提高站點性能,降低伺服器負荷
+強大的多語言支持體系。能夠支持很多國家的語言,讓你的網站在世界上通行。
+擴展能力強大,有豐富的第三方擴展支持。
+內部結構以最簡單的PHP特徵實現豐富的鉤子機制。
功能
Drupal是一套開源的內容管理平台,擁有多種功能,可以用來建設從個人網站到大型社區網站。Drupal包括以下的功能:
Blog
協同寫作平台
論壇
電子報
相冊
檔案的上傳與下載
全文搜尋
多角色許可權管理
模組化
主題引擎
多語言支持
運行環境
Drupal基於PHP腳本語言,推薦使用mysql資料庫,所以要運行Drupal必須先安裝好PHP支持程式,推薦apache+mysql+php的安裝和配置環境。linux系統下推薦採用lamp安裝套件或windows系統下推薦安裝wamp套件。
Webserver
Apache(推薦)
Apache1.3或者Apache2.x在UNIX/Linux,OSX,o或Windows上;
使用apache'mod_rewrite'擴展,開啟簡潔路徑;
MicrosoftIIS
Drupal核心可以運用在IIS5,IIS6,或IIS7,前提是PHP需要配置正確;
WhenusingDrupalonIIS7withfastcgiyoumustinstallHotfixkb954946,orwaituntilthehotfixappearsinapackageupdate(recommended).KB954946wasincludedinWindows2008ServerSP2
Databaseserver
MysqL(推薦)
Drupal5.x和早期的版本支持MySQL3.23.17或更高版本。強力推薦MySQL4.1或更高的;
Drupal6支持MySQL4.1或更高版本;
Drupal7僅支持MySQL5.0.15或更高,而且必須在php上設定PDOdatabase擴展;
PostgreSQL
Drupal6支持PostgreSQL7.1或更高;
Drupal7僅支持PostgreSQL8.3或更高;
PHP5.2.6forWindowshasabuginitspgsqlextension.Youwillneedtoreplaceitwiththephp_pgsql.dllfromversion5.2.5.
安裝
安裝步驟:
1.建立資料庫:用mysql命令行、phpmyadmin、mysql-front等工具新建一個資料庫,並記住資料庫的名稱。
2.將Drupal代碼根目錄放入apache的web服務目錄(www或htdocs等),將sites/default資料夾下的default.settings.php複製一份,重命名為settings.php,並將其檔案許可權設定為可寫。
3.在瀏覽器地址欄輸入http://你的網站域名(如果將代碼放置在網站根目錄下),或http://你的網站域名/drupal(如果將代碼放置在drupal目錄下),在出現的頁面中選擇語言(默認為英語),然後按提示填入資料庫的名稱,用戶,密碼等信息。
4.首次執行,可以設定相應的個性化參數,如帳戶,首頁,簡介連結等。
註:安裝過程中創建的帳戶為網站管理員,擁有該網站的最高許可權。
設計
Drupal官方提供大量模板和主題可以供用戶免費下載,WEB設計師也可以自行設計模板,和全球用戶共享知識的海洋。
入會
2007年,時任官方專員的JacobRedding先生開始在中國開展推廣活動。2008年,由JohnZhu,JacobRedding,AmberZhong等人在北京組織舉辦了3期BootCamp推廣培訓,和其它各類主題推廣活動。中國drupal協會是2008年11月15日由drupal活動的組織者circleoflife,chinajason,JohnZhu,Amber.Zhong等人創建,協會的主旨是積極傳播‘自由、參與、溝通、奉獻’的開源精神,在中國推廣Drupal。
主要術語
Drupal是一個非常優秀的PHPCMS,在使用Drupal之前,我們好好看看Drupal主要術語的介紹.Drupal術語,Block(區塊),Box(盒子),Engine(引擎),Filter(過濾器),Module(模組),Node(節點),Permissions(許可權),Style(樣式)Taxonomy(分類)Template(模板),Theme(主題)風格
#Block(區塊)
區塊一般位於網頁兩邊的側欄中,用於導航或顯示一些附加內容。區塊是一種把數據定位到頁面的方法之一。各主題風格可以通過block($subject,$content,$region="main")函式來控制區塊的顯示風格。
#Box(盒子)
盒子是Drupal頁面內容的容器。每一個盒子有一個標題和一些內容。各主題風格可以通過box($subject,$content,$region="main")函式來控制盒子的顯示風格。
#Engine(引擎)
引擎是一類特殊的主題,它通過模板來輸出HTML內容。
#Filter(過濾器)
過濾器是做內容過濾的框架。
#Module(模組)
模組是為Drupal提供擴展功能的代碼片段。有些模組是Drupal核心繫統的一部分(例如taxonomy和blog模組),擴展模組(例如weblinks和image模組)則不屬於Drupal的核心繫統。核心模組已包含在Drupal的下載包中,擴展模組則需要單獨下載。
#Node(節點)
節點是Drupal中最簡單又最難理解的一個概念。幾乎Drupal中所有的內容都被存儲為一個節點。一個節點就是Drupal的一塊內容,它可以是投票、報導、書的一頁、或一張圖片。
#Permissions(許可權)
許可權用於控制內容的創建、修改和站點管理等訪問。管理員可以將許可權賦給角色,將角色賦給用戶。一個用戶可以屬於一個或多個角色。Drupal預設提供了兩種角色:遊客和註冊用戶
#Style(樣式)
樣式是主題或引擎提供的CSS檔案,用於替換預設的CSS。
#Taxonomy(分類)
Drupal通過分類來描述目錄系統,用於對網站的內容進行組織和分類。
#Template(模板)
模板是模板引擎的,普通人可讀懂的HTML檔案,這些檔案有一些特殊的代碼,用於產生動態信息。
#Theme(主題)
主題是包含一些函式的PHP檔案,用於提供不同的布局風格。
網站案例
很多全球著名的政府機構、商業公司、高等學府、技術社區和社團的網站,都使用Drupal進行搭建。下面是部分基於Drupal的典型案例:
政府機構-聯合國、美國白宮、美國商務部、美國總統歐巴馬經濟恢復網站、法國政府、紐約市長MikeBloomberg
跨國公司-聯邦快遞、諾基亞、Adobe、Sun
娛樂公司-華納兄弟、索尼/BMG、Fox、環球唱片、迪斯尼/ABC
雅虎、Novell、BysoftChina
新聞雜誌-紐約時報、紐約觀察報、福布斯、花花公子、TheFastCompany、NowPublic、TheOnion
高等學府-美國哈佛大學、美國麻省理工學院(MIT)
技術社區-Ubuntu、Fedora、Firefox、TeamSugar
個人網站-巴拉搜、思躍、思墨
這些成功的合作案例證明,Drupal不但適合個人站點及網上社區類網站,而且已被國際著名大公司和組織機構所接受和採納。相信在國內,Drupal也會很快流行起來,成為主流網站設計和開發平台。
管理平台
一個開源的內容管理平台,它驅動著全球數以百萬計的網站和套用。一個來世界各地不同地方的人們形成的多元並且活躍的社區創建和使用Drupal,並且提供支持。人們通常將Drupal拿來和另一個著名的開源CMS,即Joomla進行比較。一個廣為人知的比喻是:好比在作業系統領域的競爭,Drupal的最新版本是7.28。由於“難度”更大而中文資源較Joomla更少,Drupal在中國的普及程度較Joomla更低。但情況可能正在好轉,酒香不怕巷子深,越來越多的網站創建者開始認識到Drupal的強大和它的價值。隨著部分中文Drupal技術社區陸續推出一些高品質的視頻和文字教程,了解和深入學習Drupal的門檻在逐步降低,Drupal在中國也擁有了越來越多堅定的支持者,未來頗可期待。