Drupal
附帶CMS的PHP開發框架
Drupal是使用PHP語言編寫的開源內容管理框架(CMF),它由內容管理系統(CMS)和PHP開發框架(Framework)共同構成。連續多年榮獲全球最佳CMS大獎,是基於PHP語言最著名的WEB應用程序。截止2011年底,共有13,802位WEB專家參加了Drupal的開發工作;228個國家使用181種語言的729,791位網站設計工作者使用Drupal。著名案例包括:聯合國、美國白宮、美國商務部、紐約時報、華納、迪斯尼、聯邦快遞、索尼、美國哈佛大學、Ubuntu等。
Drupal誕生於2000年,是一個基於PHP語言編寫的開發型CMF(內容管理框架),即:CMS+ framework。其中 framework是指Drupal內核中的功能強大的PHP類庫和PHP函數庫,以及在此基礎上抽象的Drupal API。在網站開發能力上,Drupal,Joomla和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學習難度太大的根本原因,這也是沒有辦法的事情,靈活性的提高必然使複雜程度提高。因此,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等等。它特別常見於社區主導的網站。
+ 搜索引擎友好的URL
+ Drupal提供了強大的個性化環境,每個用戶可以對網站內容和表現形式進行個性化設置
+ Drupal提供了基於角色的許可權系統,沒有必要對每個用戶進行授權,只需要對角色進行授權
+ Drupal提供的站內搜索系統能對站內的所有內容進行索引和搜索
+ Drupal的模板系統將內容和表現分離,可以很方便地控制網站的外觀
+ Drupal提供內建的新聞聚合工具
+ 提供完善的站點管理和分析工具
+ Drupal的Caching機制能有效減少資料庫查詢次數,從而提高站點性能,降低伺服器負荷
+ 強大的多語言支持體系。能夠支持很多國家的語言,讓你的網站在世界上通行。
+ 擴展能力強大,有豐富的第三方擴展支持。
+ 內部結構以最簡單的PHP特徵實現豐富的鉤子機制。
Drupal是一套開源的內容管理平台,擁有多種功能,可以用來建設從個人網站到大型社區網站。Drupal包括以下的功能:
Blog
協同寫作平台
論壇
電子報
相冊
文件的上傳與下載
全文搜索
多角色許可權管理
模塊化
主題引擎
多語言支持
Drupal 基於PHP腳本語言,推薦使用mysql資料庫,所以要運行Drupal必須先安裝好PHP支持程序,推薦apache + mysql + php的安裝和配置環境。linux系統下推薦採用lamp安裝套件或windows系統下推薦安裝wamp套件。
Apache(推薦)
Apache 1.3 或者Apache 2.x 在 UNIX/Linux,OS X,o或 Windows上;
使用apache 'mod_rewrite' 擴展,開啟簡潔路徑;
Microsoft IIS
Drupal核心可以運用在IIS 5,IIS 6,或IIS 7,前提是PHP需要配置正確;
When using Drupal on IIS 7 with fastcgi you must install Hotfix kb954946,or wait until the hotfix appears in a package update (recommended). KB954946 was included in Windows 2008 Server SP2
Database server
MysqL(推薦)
Drupal 5.x和早期的版本支持MySQL 3.23.17 或更高版本。強力推薦MySQL 4.1或更高的;
Drupal6支持MySQL 4.1或更高版本;
Drupal7僅支持MySQL5.0.15或更高,而且必須在php上設置PDO database擴展;
PostgreSQL
Drupal6支持PostgreSQL 7.1或更高;
Drupal7僅支持PostgreSQL 8.3或更高;
PHP 5.2.6 for Windows has a bug in its pgsql extension. You will need to replace it with the php_pgsql.dll from version 5.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年,時任官方專員的Jacob Redding先生開始在中國開展推廣活動。2008年,由John Zhu,Jacob Redding,Amber Zhong 等人在北京組織舉辦了3期BootCamp推廣培訓,和其它各類主題推廣活動。中國drupal協會是2008年11月15日由drupal活動的組織者circleoflife,chinajason,John Zhu,Amber.Zhong等人創建,協會的主旨是積極傳播‘自由、參與、溝通、奉獻’的開源精神,在中國推廣Drupal。
Drupal是一個非常優秀的PHP CMS,在使用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的典型案例:
政府機構-聯合國、美國白宮、美國商務部、美國總統奧巴馬經濟恢復網站、法國政府、紐約市長Mike Bloomberg
雅虎、Novell、BysoftChina
新聞雜誌-紐約時報、紐約觀察報、福布斯、花花公子、The Fast Company、Now Public、The Onion
高等學府-美國哈佛大學、美國麻省理工學院(MIT)
技術社區-Ubuntu、Fedora、Firefox、Team Sugar
個人網站-巴拉搜、思躍、思墨
這些成功的合作案例證明,Drupal不但適合個人站點及網上社區類網站,而且已被國際著名大公司和組織機構所接受和採納。相信在國內,Drupal也會很快流行起來,成為主流網站設計和開發平台。
一個開源的內容管理平台,它驅動著全球數以百萬計的網站和應用。一個來世界各地不同地方的人們形成的多元並且活躍的社區創建和使用Drupal,並且提供支持。人們通常將Drupal拿來和另一個著名的開源CMS,即Joomla進行比較。一個廣為人知的比喻是:好比在操作系統領域的競爭,Drupal的最新版本是7.28。由於“難度”更大而中文資源較Joomla更少,Drupal在中國的普及程度較Joomla更低。但情況可能正在好轉,酒香不怕巷子深,越來越多的網站創建者開始認識到Drupal的強大和它的價值。隨著部分中文Drupal技術社區陸續推出一些高品質的視頻和文字教程,了解和深入學習Drupal的門檻在逐步降低,Drupal在中國也擁有了越來越多堅定的支持者,未來頗可期待。