氣質出眾的開放源碼CMS – Drupal
處於日前這個知識經濟爆炸的時代,個人、企業需要處理更新的內容與日劇增,過往繁複的內容處理流程,隨著時間與組織的成長,讓太多過時、錯誤的內容無法及時更新,以難以正確挖掘長久累積的資訊,找出並修正過往資料。 CMS 正是為此問題而衍生,並提供全面的解決平台。包含了完整的內容管理流程,從友善、簡易的內容創作介面,經由散布、刊登到最後的彙集與管理,以及客制 化的網站管理架構,內容刊登的呈現模式,以及使用者的導覽方式等。筆者在此與各位分享一套以PHP開發的開放源碼CMS — Drupal.
Drupal
Drupal(droo-puhl)是荷蘭語“druppel”的發音,英語意指微量、簡潔的意思。其原始碼 版權宣告採用GNU GPL。秉持著協同、標準化、開放源碼、高品質、容易使用、模組化彈性設計及低資源需求為設計宗旨。目前的版本有三個分支(4.5.x、4.6.x以及 4.7.x),相對軟體的支援程度如下表: (表1)
| 作業系統 | 所有版本皆相容於BSD、GNU/Linux與Windows。 |
| PHP程式語言 | 4.5.x版本:必需使用PHP 4.1以上版本。
4.6.x版本:必需使用PHP 4.3.3以上版本。 4.6.x版本:必需使用PHP 4.3.3以上版本。 |
| Apache網頁伺服器 | 所有版本皆支援Apache 1.3.x及2.0.x版本。 |
| 資料庫 | 所有版本皆支援MySQL 3.23.17以上版本,也相容於MySQL 4。但對於MySQL 5的支援上仍存有一些問題。所有版本皆支援PostgreSQL 7.3以上版本。 |
Drupal也提供了完整的線上手冊,若欲深入研究,可參考官方網站(http://drupal.org/)或台灣中文支援站(http://tw-drupal.info/)。 國內外已有相常多的文章、論文與著作,討論如何評估與分析CMS。諸如以小中型企業為主的《Open Source Content Management Systems for Small and
Medium-Sized Enterprises》<註一>,或是中大型企業為主的《How to evaluate a content management system》<註二>。從簡單的幾項分析項目到複雜至極的數學矩陣<註三>皆有,端視個人與組織的需求而定。 嚴謹的評比,必需考慮組織架構、目標,或管理人員與技術人員等面向。在本文中,僅以程式開發者的角度,簡化繁雜的分項評比,提供常用的分析項目,並說明Drupal在此項目上見長的特性。
1.中文支援
目前仍有許多開放源碼軟體並未針對中文進行額外處理。諸如中文化介面的翻譯、中文字串搜尋的問題等。若需要對此軟體作事後中文修正,則需付出更多的人力成本。 Drupal在其原始碼底層直接以UTF-8設計,以解決多國語言上的問題,也能夠處理繁體中文的搜尋問題。中文化介面的翻譯上,也有熱心的社群<註四>提供中文化的版本。
2.效能
執行效能對於營運的正常運作有顯著的影響,如何以最低資源成本,最快的處理速度,發揮至可接受的程度,也是評估上常見的議題。 Drupal使用Apache、PHP與MySQL/PostgreSQL建置而成,在速度與穩定性上,已為許多企業所青睞並採納。在資源成本上,相較於plone官方網站建議至少1GHz處理器與512MB記憶體而言<註五>,在硬體需求上較小。
3.安全性
筆者在此探討狹義的安全性,即專注於CMS本身的軟體層面上。網路上充斥著SQL injection與XSS(Cross Site Scripting)等攻擊,對於網站的永續經營、顧客資訊與敏感文件的保護帶來衝擊。這個問題視該開放源碼軟體在開發過程中,對於輸入驗證等安全項目關心的程度。 Drupal對於安全性有較嚴謹的態度,相較於其他開放源碼CMS而言,至今發現的安全漏洞較少,而且其開發者與擁護者眾多,使得臭蟲與安全回報制機上較完備。
4.維護性
維護性泛指擴充性、人力資源與平台轉移等,這些都是組織會考慮的項目。組織採用開放源碼軟體時,往往會擔心軟體終止開發、未來功能擴充需求、技術人員難尋或將來平台轉移等問題。 Drupal 擁有相當多的擴充模組、樣版及元件可直接套用。在技術上,採用了Smarty Engine,使得程式與內容分開管理,對自行開發擴充套件上,提供了很大的彈性。在人力資源上,Apache、PHP與 MySQL/PostgreSQL等,在台灣擁有廣大的社群與使用者,開發、維護上的任職或外包上較不成問題,而隨著組織發展需要將內容轉移至其他平台,也有其相對應的程式或模組可用。
開始安裝Drupal
在安裝Drupal前,請讀者確定環境已有GNU/Linux或BSD等作業系統,並且已經安裝好Apache、PHP及MySQL等必需之軟體。筆者的建置環境如下:
(表2)
| 作業系統 | FreeBSD 6.0 |
| 網頁伺服器 | Apache 2.0 |
| 程式語言 | PHP 4.4 |
| 資料庫 | MySQL 4.1 |
| CMS | Drupal 4.6.6 |
目前Drupal繁體中文版僅提供4.6.0以及4.7.0兩個版本。Drupal 4.6.0版本有嚴重的安全漏洞,而4.7.0尚在測試階段。因此,筆者建議若要求穩定性為主,則選擇4.6.6穩定的英文版本;若要求中文化介面為優 先,則可選擇4.7.0繁體測試版,待正式版釋出後再行更新亦可。
第一步:下載原始碼
取得Drupal軟體原始檔<註六>後,解開至Apache網頁內容目錄下。GNU/Linux常見的目錄是/var/www/html,FreeBSD則是/usr/local/www/data。
(指令) tar -zxvf drupal-4.6.6.tar.gz mv drupal-4.6.6/* drupal-4.6.6/.htaccess /usr/local/www/data
第二步:建立Drupal的資料庫
建立drupal資料庫於MySQL中。 (指令) mysqladmin -uroot -p create drupal 然後,為設定drupal資料庫的管理權限,先進行MySQL命令列模式。 (指令) mysql -uroot –p 建立drupal資料庫的管理權限,注意指令最後有分號”;”,並請讀者參照修改password的值。最後離開MySQL命令列模式。 (指令) mysql> GRANT ALL PRIVILEGES ON drupal.* TO root@localhost IDENTIFIED mysql> BY ‘password’; mysql> flush privileges; mysql> exit 最後只要匯入Drupal的相關資料表的設定。其中password為MySQL root之密碼,而目錄位址請視作業系統而更改。 (指令) mysql -uroot -ppassword druapl < /usr/local/www/data/database.mysql
第三步:修改Drupal的設定值
Drupal 的預設設定值於/usr/local/www/data/sites/default/settings.php,路徑位址請視作業系統而更變。主要變更 $db_url與 $base_url兩個變數。請將 $db_url改為第二步驟設定的密碼與資料庫名稱,將 $base_url改為網站的位址。 {mosimage}
第四步:建立上傳資料夾
上傳資料夾是用來置放網站的圖片、媒體或使用者統計數據等。對於Apache執行者而言,必需擁有可讀寫權限。資料夾的目錄位址請視作業系統而更改。 (指令) mkdir /usr/local/www/data/files 在FreeBSD中,預設的Apache執行者是www,而GNU/Linux常見的是nobody。請視Apache的執行者而更改www值。 (指令) chown www /usr/local/www/data/files 最後設定上傳資料夾為可讀寫權限。 (指令) chmod 755 /usr/local/www/data/files
第五步:更新排程的設定
很多Druapl的模組(如搜尋模組)必需定期執行排程,以更新網頁最新變化。執行的方式可以由直接瀏覽網站cron.php的方式進行。在此之前,請讀者先確定作業系統中是否有wget指令,在GNU/Linux中wget通常已安裝,但在FreeBSD需額外安裝。 編輯cron table。 (指令) crontab -e 並加入以下設定值。此設定值為每日零點進行更新。 (設定內容) 0 * * * * wget -O - -q http://www.mydomain.com/cron.php
第六步:設定Druapl網站管理員
Drupal預設沒有建立任何使用者。因此,第一個建立的使用者,即是網站管理員。首先,瀏覽剛建好的Drupal網站介面,請打開瀏覽器並輸入網站的位址,如http://www.mydomain.com/。 {mosimage} 點選create the first account,會出現如下畫面。 {mosimage} 輸入想要的網站管理員帳號及E-mail,成功登錄後會隨機給定一個密碼,此密碼可事後在管理介面另行修改。 {mosimage} 登入成功後的畫面如下。 {mosimage} 最後,嘗試發表一篇內容,點選create content,會出現如下圖的格式,填入適當的內容,並按下Submit按鈕發佈內容至網站上。 {mosimage} 在首頁上的顯示結果如下。 {mosimage} 基本上,Drupal的安裝已經完成,讀者可以參考Drupal線上手冊或是相關論壇以建立屬於自己的CMS風格。初始的功能非常簡潔,相較於其他華麗的CMS而言,透露出文質彬彬的氣息,然而其功能強大的模組與元件亦可使Drupal得以完成繁雜困難的內容管理。
成功的應用實例
Drupal 發展的歷史悠久,已經累積了許多成功的案例,目前國內外愈來愈多網站開始使用Drupal架設。國外諸如Contaire(http: //contaire.com/drupalsite)、CSC-SY(http://www.csc-sy.net/)、Destination Bride(http://www.destinationbride.com/)及CraftyTraveler (http://www.craftytraveler.com/)等。國內諸如政府機關的環境資訊中心(http://e- info.org.tw/)、社群的台灣部落格(http://www.twblog.net/)及滬尾部落群(http: //www.tamsui.org/)等。 若讀者欲了解Drupal原始碼GNU GPL的詳細內容或是與其他授權的差別,您可
以上網查閱中央研究院資訊科學研究所自由軟體鑄造場提供之「自由軟體授權條款之比較表 v2.0」<註七>。對於想進一步討論Drupal中文化的讀者,自由軟體鑄造場的專案開發平台亦有「Drupal繁體中文PO檔」專案 <註八>進駐,您可以在其中找到專案說明、也可以自行回報瑕疵等資訊,並匯集熟悉與有興趣的開發者能透過此平台互相討論交流。一起來一窺氣質 出眾的Drupal吧!(作者目前任職於中央研究院資訊科學研究所自由軟體鑄造場)
<註一>文章刊登於http://www.steptwo.com.au/papers/kmc_opensource/index.html <註二>文章刊登於KM Column - 2002年1月 <註三>《Open Source for the Enterprise》,書籍作者 James M. Kretchmar,Prentice Hall出版社。ISBN:0-13-046210-1 <註四>台灣中文支援站(http://tw-drupal.info/) <註五>What kind of server is recommended for Plone? http://plone.org/documentation/faq/server-recommendations <註六>Drupal官方版本由此下載http://drupal.org/project/Drupal+project;Drupal 4.6.0繁體中文版由此下載http://drupal.org/project/zh-hant;Drupal 4.7.0繁體中文版po檔由此下載http://tw-drupal.info/node/54。 <註七>自由軟體授權之比較表v2.0 http://www.openfoundry.org/article.pl?sid=04/11/10/078231 <註八>「Drupal繁體中文PO檔」專案網址http://rt.openfoundry.org/Foundry/Project/?Queue=
Filed under: 資訊多媒體
Buy:Wellbutrin SR.Nymphomax.SleepWell.Female Pink Viagra.Female Cialis.Lipitor.Advair.Lasix.Buspar.Seroquel.Benicar.Cozaar.Amoxicillin.Lipothin.Zetia.Aricept.Prozac.Zocor.Ventolin.Acomplia….
Buy:Prednisolone.Zyban.Retin-A.100% Pure Okinawan Coral Calcium.Prevacid.Human Growth Hormone.Accutane.Arimidex.Lumigan.Actos.Synthroid.Mega Hoodia.Petcam (Metacam) Oral Suspension.Nexium.Zovirax.Valtrex….