• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Drupal是怎樣幫高校改善網(wǎng)站體驗(yàn)的?

      2015-03-03 02:58:19王玉平
      中國教育網(wǎng)絡(luò) 2015年5期
      關(guān)鍵詞:字段備份代碼

      文/王玉平

      Drupal是怎樣幫高校改善網(wǎng)站體驗(yàn)的?

      文/王玉平

      Drupal是非常靈活的,從內(nèi)容類型到版面布局都是可以自定義的,也正是由于這種自定義的靈活性導(dǎo)致了Drupal的學(xué)習(xí)曲線比較陡。但是理解了Drupal的架構(gòu)思路,會(huì)使得學(xué)習(xí)比較容易。

      Drupal的核心是節(jié)點(diǎn)、模塊、主題。正是因?yàn)槟K的引入,極大地完善了Drupal的功能,吸引了眾多Drupal愛好者為Drupal開發(fā)各類功能,方便了站點(diǎn)管理員和制作者不用寫代碼即可完成站點(diǎn)的制作與部署。

      內(nèi)容管理

      首先讓我們看一下Drupal的核心概念:內(nèi)容節(jié)點(diǎn)、內(nèi)容類型和字段。

      節(jié)點(diǎn)(Node)、內(nèi)容類型和字段

      Drupal站點(diǎn)里的內(nèi)容都是以節(jié)點(diǎn)形式來存儲(chǔ)的,一個(gè)節(jié)點(diǎn)是某個(gè)類型的一個(gè)內(nèi)容,如頁面、文章、投票、論壇主題或者博客。正因?yàn)樗袃?nèi)容作為節(jié)點(diǎn)的這種概念,讓我們可以自由定制內(nèi)容類型。在Drupal核心代碼中有Node模塊來負(fù)責(zé)整個(gè)站點(diǎn)內(nèi)容的創(chuàng)建、編輯、刪除、設(shè)置和現(xiàn)實(shí)等功能。系統(tǒng)為每個(gè)節(jié)點(diǎn)默認(rèn)添加了作者、創(chuàng)建時(shí)間、修改時(shí)間、內(nèi)容類型等元數(shù)據(jù)屬性。Drupal核心代碼中的Field模塊為系統(tǒng)提供了字段管理功能,用戶可以為內(nèi)容類型添加字段,并管理這些字段的顯示。

      Drupal安裝完畢后,默認(rèn)會(huì)創(chuàng)建兩個(gè)文件類型:基本頁面和文章,這兩個(gè)類型只有標(biāo)題和正文內(nèi)容兩個(gè)基本屬性。而在網(wǎng)站中,這兩個(gè)文件類型不能滿足我們的需要,譬如圖片新聞需要有圖片屬性,通知公告需要有附件,因此需要定義自己的內(nèi)容類型,并為這些自定義內(nèi)容類型添加不同的字段(屬性),如圖1所示。

      表1 Drupal默認(rèn)字段類型

      圖1 字段屬性設(shè)定

      除了以上字段類型,用戶也可以自行定義字段類型,譬如Date模塊提供的日期類型字段,Link模塊提供的鏈接類型字段,Audiofield模塊提供的音頻類型字段,Email field模塊提供的撰寫email地址的字段,Telephone模塊提供的書寫電話號(hào)碼的字段等。

      字段是可以重用的,在某個(gè)類型下創(chuàng)建的字段,可以應(yīng)用于另外一個(gè)內(nèi)容類型。譬如圖片新聞里的圖片字段,可以用于普通新聞里添加圖片。

      一個(gè)字段的值可以限制只有一個(gè)或者指定個(gè)數(shù),也可以無限個(gè)。譬如文章的標(biāo)題數(shù)量只能有一個(gè),而附件可以有無限個(gè)。

      Drupal提供了默認(rèn)的字段值的校驗(yàn)功能,譬如必選填寫的字段,有紅色*號(hào)標(biāo)注,若用戶沒有填寫,則會(huì)提示必須填寫的警告提示。

      字段在內(nèi)容類型中的前后順序也可以根據(jù)實(shí)際需要做出調(diào)整,編輯節(jié)點(diǎn)和顯示節(jié)點(diǎn)時(shí)各字段的順序可以完全不同,系統(tǒng)提供了Manage Fields和Manage Display兩個(gè)界面來管理字段和管理顯示界面。通過這兩個(gè)界面來控制字段的類型、數(shù)量、顯示方式。Drupal允許用戶定義內(nèi)容類型的顯示模式,默認(rèn)提供了全文(Full content)、摘要(Teaser)等顯示模式。在Manage Display界面中,用戶可以切換顯示模式進(jìn)行定制。

      分類(Taxonomy)

      分類(Taxonomy)是一個(gè)非常強(qiáng)大的核心模塊,它使得用戶以類別、標(biāo)簽和元數(shù)據(jù)的形式來組織關(guān)鍵字,允許用戶連接、關(guān)聯(lián)和聚類站點(diǎn)內(nèi)容。在Drupal中,分類是通過術(shù)語表來實(shí)現(xiàn),術(shù)語表中包含詞匯,這些詞匯可以呈樹狀層級(jí)分布。

      在國內(nèi)傳統(tǒng)網(wǎng)站中,其內(nèi)容是通過欄目的形式來組織的,任何內(nèi)容都是先有欄目,再有欄目下的內(nèi)容,而在Drupal里,先有內(nèi)容,再把這些內(nèi)容按照某個(gè)關(guān)鍵字或者標(biāo)簽來進(jìn)行分類,而這些分類就可以對(duì)應(yīng)成傳統(tǒng)網(wǎng)站的欄目,但分類不能完全等同于傳統(tǒng)欄目。在Drupal中,通過菜單進(jìn)行樹狀結(jié)構(gòu)的組織,因此菜單在某種意義上才是傳統(tǒng)欄目的對(duì)應(yīng),而分類主要的目標(biāo)還是在于聚類相關(guān)內(nèi)容。

      分類在Drupal中是作為字段的形式存在的,在字段類型中,有一個(gè)“術(shù)語來源”類型,就是用來引用各個(gè)術(shù)語表。術(shù)語表里的詞匯允許用戶在添加內(nèi)容時(shí)手工輸入一個(gè)新的詞匯,也可以在術(shù)語表管理中原先定義一組詞匯。

      在建設(shè)網(wǎng)站中,分類、關(guān)鍵字、標(biāo)簽等字段均通過術(shù)語來源類型實(shí)現(xiàn),從而形成類別、標(biāo)簽云、訪問關(guān)鍵字等展現(xiàn)形式。

      常見幾個(gè)字段

      1.正文編輯

      Drupal核心代碼默認(rèn)提供普通的文本區(qū)域編輯器,只能編輯純文本內(nèi)容,為了提供完整的HTML可視化編輯器,著名的CKEditor編輯器提供了模塊與Drupal對(duì)接,允許用戶在Drupal中調(diào)用CKEditor進(jìn)行所見即所得的內(nèi)容編輯界面。該模塊支持外部文件瀏覽器,如CKFinder、IMCE,允許用戶上傳瀏覽文件,并且允許用戶自定義編輯器的皮膚、工具欄、語言和默認(rèn)狀態(tài)。

      2.圖片

      在一個(gè)網(wǎng)站中,圖片扮演了吸引用戶和直觀展示內(nèi)容的重要角色。每一個(gè)內(nèi)容管理系統(tǒng)都要處理圖片的存取。在傳統(tǒng)網(wǎng)站中,上傳到服務(wù)器上的圖片已經(jīng)處理后的尺寸已定的圖片,在下次改版時(shí),圖片的尺寸與新版設(shè)計(jì)存在不匹配問題,也不能很好的適應(yīng)目前多種瀏覽終端的尺寸問題。在Drupal中,圖片上傳到服務(wù)器后,并不會(huì)對(duì)原始圖片進(jìn)行修改,而是引入圖片樣式的概念,根據(jù)不同的需求生成新的圖片文件。

      在Drupal中,除了調(diào)用傳統(tǒng)的GD來處理圖片,還可以調(diào)用ImageMagick和GrpahicsMagick等專業(yè)圖片處理工具來進(jìn)行圖片渲染,生成高質(zhì)量的小文件圖片。通過imagecache_actions模塊,可以為圖片添加水印和邊框、調(diào)整亮度和透明度、調(diào)整圖片尺寸以及其他圖片處理相關(guān)功能。

      在我們的網(wǎng)站中,盡量避免使用CKEditor的圖片上傳功能,而是使用圖片字段的多個(gè)值的功能,把圖片顯示在內(nèi)容后面。并且使用breakout模塊來匹配不同的瀏覽器終端。

      3.附件

      附件的功能就是文件上傳功能。Drupal提供了上傳進(jìn)度條等友好界面,并提供了描述屬性,用來在顯示時(shí)不用直接顯示文件名。

      4.視頻

      Video模塊為我們提供了視頻上傳播放的功能,借助于ffmpeg開源工具,我們還可以實(shí)現(xiàn)視頻轉(zhuǎn)換的功能。JW Player、jPlayer、Video.js等模塊提供了頁面播放視頻功能,而實(shí)時(shí)轉(zhuǎn)換功能可以生成x264編碼的MP4文件,兼容了各種瀏覽器終端。Media Youku模塊,則可以提供與國內(nèi)較大的視頻網(wǎng)站優(yōu)酷進(jìn)行對(duì)接。筆者所在的上海海事大學(xué)與優(yōu)酷合作,將學(xué)校的視頻上傳至優(yōu)酷,然后在學(xué)校官網(wǎng)通過Media Youku模塊對(duì)接,播放的媒體不在網(wǎng)站本地,而存儲(chǔ)于優(yōu)酷服務(wù)器。

      視圖(Views)

      視圖(Views)是Drupal的另一個(gè)功能非常強(qiáng)大的模塊,沒有該模塊,幾乎無法制作一個(gè)網(wǎng)站。視圖為用戶提供了一個(gè)查詢可視化設(shè)計(jì)界面,通過該界面,用戶可以選擇要查詢的字段、查詢條件、排序字段、展現(xiàn)形式、分頁功能以及上下文的條件。正因?yàn)檫@個(gè)查詢的可視化設(shè)計(jì),用戶不需要接觸數(shù)據(jù)庫底層,也不需要了解PHP、MySQL就可以靈活地設(shè)計(jì)出各種查詢,并且輸出為頁面或者區(qū)塊,以及其他更多的服務(wù)接口。用戶也可以通過模板來定制視圖的展現(xiàn)形式。

      在網(wǎng)站中,常見的列表,基本都是通過視圖來實(shí)現(xiàn)的。各類slideshow、圖片gallery也是通過視圖來實(shí)現(xiàn)的。

      主題

      有了內(nèi)容,我們就需要考慮如何展示頁面,在Drupal里,由主題(Theme)來負(fù)責(zé)頁面內(nèi)容的展示。

      與傳統(tǒng)CMS不同的是,Drupal把頁面分成不同的區(qū)域(Region),經(jīng)典的頁面分隔為頭部區(qū)域、高亮區(qū)域、側(cè)邊欄、正文區(qū)域、底部區(qū)域。在區(qū)域里嵌有區(qū)塊(Block)。每個(gè)區(qū)塊里的內(nèi)容可以是普通的文本,也可以是通過View模塊來組織的內(nèi)容,也可以是通過自定義模塊通過PHP代碼生成的。

      Drupal主題是以文件夾的形式存在站點(diǎn)目錄sites/all/themes或者sites/default/ themes下面。其中的.info文件是必須的,類似于項(xiàng)目工程文件,描述了主題元數(shù)據(jù)(如名稱、描述、版本信息)、定義的區(qū)域、應(yīng)包含的樣式單文件、應(yīng)包含的JavaScript腳本文件。如:

      name=shmtu2012

      description=上海海事大學(xué)中文網(wǎng)站2012版

      version=1.0

      core=7.x

      engine=phptemplate

      regions[header] = Header

      regions[highlighted] = Highlighted

      regions[help] = Help

      regions[content] = Content

      regions[sidebar_first] = Left sidebar

      regions[sidebar_second] = Right sidebar

      regions[footer] = Footer

      regions[banner] = Banner

      regions[topnav] = Top Menu Bar

      regions[menu] = Menu

      regions[news] = News

      regions[hp-content] = HomePage Content

      regions[hp-banner] = HomePage Banner

      features[] = logo

      features[] = favicon

      features[] = main_menu

      features[] = secondary_menu

      stylesheets[all][] = smu.css

      scripts[] = jquery.masonry.min.js

      scripts[] = pngFix/jquery.pngFix.pack.js

      主題定義中還有很多模板文件(.tpl. php)。Drupal是基于PHPTemplate引擎來渲染HTML,因此這些模板文件就是嵌入PHP代碼的HTML文件。Drupal從HTML到Page、到區(qū)域、到區(qū)塊、到內(nèi)容類型、到字段都提供了默認(rèn)的模板文件,用戶可以完全覆寫這些模板文件。模板文件的命名非常清晰,譬如整體的HTML模板命名為html.tpl.php,對(duì)于頁面的模板命名為page.tpl.php,對(duì)于區(qū)塊的命名為block.tpl.php。如果對(duì)于文件命名有疑問,可以啟用Theme developer模塊來提示。而對(duì)于視圖的模板,在視圖編輯界面里有詳細(xì)提示。主題下還有一個(gè)template.php文件,該文件內(nèi)部為純php代碼,用來對(duì)輸出進(jìn)行邏輯控制和數(shù)據(jù)處理,也可以自定義過程,覆蓋主題輸出,如圖2所示。

      圖2 主題內(nèi)容與區(qū)塊

      Drupal提供了子主題的功能,子主題類似于主題,只是它繼承了父主題的資源。著名的主題zen、bootstrap、omega等都是父主題,允許用戶在此基礎(chǔ)上創(chuàng)建自己的子主題。

      Zen是一個(gè)功能強(qiáng)大的簡(jiǎn)單的、基于HTML5、采用響應(yīng)式設(shè)計(jì)、移動(dòng)設(shè)備優(yōu)先的格狀設(shè)計(jì)主題。Zen的開發(fā)文檔很豐富,易于上手,方便了設(shè)計(jì)者,因此得到了廣泛的應(yīng)用。

      Omega也是一個(gè)開發(fā)者比較喜歡的父主題,它允許開發(fā)者通過代碼完全控制主題的各方面細(xì)節(jié),所以比較適合對(duì)Drupal已經(jīng)熟悉的開發(fā)者,部分國外高校的主題基于Omega。

      Bootstrap是排名第三的父主題,該主題對(duì)接了著名的Bootstrap框架,充分利用了Bootstrap的功能,因此對(duì)于響應(yīng)式設(shè)計(jì)有訴求的用戶可以使用該主題,Bootstrap自帶的樣式和腳本,也極大的方便了用戶快速開發(fā)自己的主題。

      圖3 通過Solr來進(jìn)行搜索

      多語言

      Drupal對(duì)多語言的支持也是非常全面且非常靈活的。其本身默認(rèn)為英文,如果需要其他語言,則只需要啟用locale模塊和Localization update模塊,然后添加需要的語言即可。通過Localization update模塊,系統(tǒng)可以自動(dòng)周期性下載啟用的語言,包括對(duì)核心代碼和周邊模塊的語言包。

      Drupal可以根據(jù)URL、請(qǐng)求會(huì)話、用戶的語言參數(shù)、瀏覽器的語言設(shè)置和站點(diǎn)的默認(rèn)語言來判斷當(dāng)前該以哪種語言來顯示界面和內(nèi)容。在添加內(nèi)容時(shí),用戶可以選擇語言;在瀏覽內(nèi)容時(shí),用戶可以點(diǎn)擊“翻譯”按鈕,把當(dāng)前內(nèi)容翻譯成其他語言版本,系統(tǒng)會(huì)自動(dòng)記錄對(duì)應(yīng)內(nèi)容,便于用戶隨時(shí)切換語言顯示。對(duì)于頁面布局中的區(qū)塊,也可以直接翻譯。而菜單、代碼中的文本字符串都可以通過翻譯界面進(jìn)行翻譯。

      此外,網(wǎng)站版面設(shè)計(jì)中英文可以一樣,也可以根據(jù)語言有多種不同的設(shè)計(jì)。

      用戶與角色

      在Drupal中,用戶也是一類實(shí)體(Entity),管理員可以添加用戶的字段,也可以管理用戶的顯示。對(duì)于用戶的添加,可以允許用戶自行注冊(cè),也可以限制只有管理員可以添加。有了SMTP Authentication Support模塊的支持,用戶狀態(tài)改變時(shí),可以發(fā)送郵件通知用戶。

      SSO

      Drupal對(duì)單點(diǎn)登錄系統(tǒng)CAS支持的非常完美,其中CAS模塊借助于phpCAS來實(shí)現(xiàn)了對(duì)CAS系統(tǒng)的支持。CAS Attributes模塊則相應(yīng)的提供了CAS返回信息與用戶字段的映射關(guān)系。用戶可以設(shè)定是否允許CAS系統(tǒng)自動(dòng)創(chuàng)建用戶。筆者在開發(fā)本校網(wǎng)站時(shí),都與本校統(tǒng)一身份認(rèn)證系統(tǒng)進(jìn)行對(duì)接,用戶在使用站點(diǎn)管理內(nèi)容時(shí),完全不用另外開設(shè)用戶,也不需要多次登錄,密碼也無需額外設(shè)定,既增強(qiáng)了安全性,又便利了用戶登錄。

      此外,Drupal也支持LDAP協(xié)議的對(duì)接,以及眾多模塊提供了對(duì)OpenID、OAuth、Shibboleth的支持。

      授權(quán)

      Drupal本身沒有組的概念,但是有角色(Role)概念,可以針對(duì)角色進(jìn)行授權(quán)。系統(tǒng)默認(rèn)創(chuàng)建三個(gè)角色:管理員、認(rèn)證用戶和匿名用戶。借助于Content Access模塊,可以提高授權(quán)的顆粒度,允許具體某個(gè)用戶對(duì)某個(gè)對(duì)象擁有特別的權(quán)限。而對(duì)于更復(fù)雜的授權(quán),可以借助于Organic groups可以提供組協(xié)作方面的權(quán)限設(shè)定。對(duì)于分類(Taxonomy)也有Taxonomy Access Control模塊提供單獨(dú)的權(quán)限控制,因此在授權(quán)管理方面Drupal也是非常靈活的。

      SEO

      作為一個(gè)網(wǎng)站,必然要考慮搜索引擎優(yōu)化的問題,SEO Checklist模塊為用戶提供了一個(gè)檢查列表,對(duì)照列表,用戶可以檢查是否啟用或者完成響應(yīng)的設(shè)定,從而盡快提供經(jīng)過SEO的站點(diǎn)。

      有了PathAuto模塊,用戶可以定義某一類型的內(nèi)容的URL模式。譬如第一篇文章,Drupal默認(rèn)的URL為/q=node/1,啟用Clean URL后,URL變?yōu)?node/1,通過PathAuto,它的URL可以變?yōu)楦幸饬x的表示,如/about.htm。

      除了URL的優(yōu)化,用戶還可以啟用metatag模塊在頁面中添加元數(shù)據(jù),譬如author、description、keywords等搜索引擎會(huì)檢索的元數(shù)據(jù)。

      搜索是內(nèi)容管理系統(tǒng)必有的功能,Drupal核心內(nèi)建的搜索功能可以滿足一般需要,但要實(shí)現(xiàn)類似于Google、Bing等搜索引擎的功能,可以通過Apache Solr Search模塊與Apache Solr對(duì)接,把站點(diǎn)內(nèi)容交由Apache Solr去索引,用戶的搜索請(qǐng)求交由Apache Solr去處理,并在Drupal中返回搜索結(jié)果并呈現(xiàn),如圖3所示。

      數(shù)據(jù)協(xié)作

      Drupal本身不是一個(gè)獨(dú)立的系統(tǒng),它可以導(dǎo)入其他站點(diǎn)或者數(shù)據(jù)服務(wù)者的數(shù)據(jù),可以為其他站點(diǎn)和系統(tǒng)提供數(shù)據(jù)服務(wù)。

      輸入數(shù)據(jù)

      最簡(jiǎn)單的案例是從.csv文件導(dǎo)入數(shù)據(jù),對(duì)于這類操作,Drupal有一個(gè)強(qiáng)大的模塊Feeds。它可以導(dǎo)入或集成數(shù)據(jù)為節(jié)點(diǎn)、用戶、分類術(shù)語或者簡(jiǎn)單的數(shù)據(jù)庫記錄。它支持手工操作的一次性導(dǎo)入和周期性導(dǎo)入,來源數(shù)據(jù)可以是RSS/Atom種子,也可以是CSV文件或者OPML文件。筆者所做的上海海事大學(xué)主網(wǎng)站中的今日亮點(diǎn)欄目的內(nèi)容,需要同步到招生網(wǎng)站中,為了實(shí)現(xiàn)該功能,在招生網(wǎng)站中安裝了Feeds模塊,并設(shè)置為1小時(shí)同步一次數(shù)據(jù)。

      輸出數(shù)據(jù)

      Services模塊為Drupal與第三方系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)集成提供了REST、XMLRPC、JSON、JSON-RPC、SOAP、AMF等接口,這允許Drupal站點(diǎn)的數(shù)據(jù)不再是孤立的數(shù)據(jù),而是成為了一個(gè)數(shù)據(jù)服務(wù)商。通過Services模塊,第三方系統(tǒng)不僅可以檢索站點(diǎn)數(shù)據(jù),而且可以更新Drupal站點(diǎn)的數(shù)據(jù)。更為方便的時(shí)候,在提供REST、JSON、XMLPRC等接口時(shí),無需額外的代碼,只需要更改URL的后綴名,如/ api/node/1.xml返回的是xml格式的節(jié)點(diǎn)1的數(shù)據(jù),而/api/node/1.json則提供的是json格式的節(jié)點(diǎn)1的數(shù)據(jù)。

      上海海事大學(xué)的圖片新聞、校園動(dòng)態(tài)和今日亮點(diǎn)三個(gè)欄目的內(nèi)容都是通過Services模塊提供API給學(xué)校的官方移動(dòng)APP。

      此外,Drupal對(duì)于RDF的支持已經(jīng)內(nèi)嵌入核心代碼,通過RDF可以實(shí)現(xiàn)語義網(wǎng)絡(luò)的提純。安裝SPARQL Views模塊,可以使站點(diǎn)引用Linked Open Data數(shù)據(jù)。

      站點(diǎn)群

      目前國內(nèi)高校站點(diǎn)少則數(shù)十個(gè),多則幾百個(gè),按照現(xiàn)有策略和公司產(chǎn)品,經(jīng)常引用站點(diǎn)群系統(tǒng)來構(gòu)建管理如此多的網(wǎng)站。Domain Access模塊也提供了類似功能,允許多個(gè)站點(diǎn)共用一套核心代碼和一個(gè)共享的數(shù)據(jù)庫,這個(gè)模塊允許共享用戶、內(nèi)容和配置。

      Drupal同時(shí)提供了另外幾種類似于站點(diǎn)群的方案。一種是核心代碼共享而數(shù)據(jù)庫獨(dú)立,這種模式下,內(nèi)容、用戶都是相對(duì)獨(dú)立的,站點(diǎn)之間可以通過Feeds和Services提供數(shù)據(jù)同步,而用戶可以通過SSO模塊實(shí)現(xiàn)單點(diǎn)登錄。在這種模式下,站點(diǎn)群維護(hù)難度相對(duì)容易且工作量小。另一種模式是完全獨(dú)立,核心代碼和數(shù)據(jù)庫完全獨(dú)立,各個(gè)站點(diǎn)間內(nèi)容、用戶完全隔離,這種模式下,維護(hù)工作量相對(duì)較大但簡(jiǎn)易。

      在站點(diǎn)日常維護(hù)中,Drush充當(dāng)了非常重要的角色。Drush是Drupal和Shell的合并,它是一個(gè)針對(duì)Drupal的命令行外殼和腳本工具,擁有Drupal瑞士軍刀的稱譽(yù)。它提供了一系列命令,譬如節(jié)點(diǎn)的操作、用戶的操作、站點(diǎn)更新操作、模塊的操作,絕大部分的Drupal操作都可以通過Drush來實(shí)現(xiàn)。

      如下載并啟用模塊Views,可以通過一個(gè)命令行來實(shí)現(xiàn):drush-y en views。

      更新語言包,drush l10n_update。

      基本上Drupal站點(diǎn)都會(huì)安裝drush工具。

      安全

      安全也是一個(gè)站點(diǎn)必須考慮的問題。Drupal站點(diǎn)從架構(gòu)到代碼編寫都充分考慮了像SQL注入、XSS跨站腳本等攻擊方式的安全問題,而且提供了Security Review模塊供用戶審計(jì)安全問題。

      此外,Drupal是社區(qū)開源系統(tǒng),有著開源系統(tǒng)的大家共同監(jiān)督的優(yōu)勢(shì)。如果代碼有安全問題,系統(tǒng)將進(jìn)行高優(yōu)先級(jí)別的警告,授權(quán)用戶在管理站點(diǎn),無論是添加內(nèi)容還是進(jìn)行簡(jiǎn)單管理工作時(shí),系統(tǒng)都會(huì)在顯著位置警告系統(tǒng)有安全問題,督促用戶盡快升級(jí)。

      目前很少有Drupal系統(tǒng)的站點(diǎn)被入侵,當(dāng)然,這也需要站點(diǎn)管理員定期監(jiān)控站點(diǎn)。

      性能

      Drupal從拓?fù)浼軜?gòu)上支持簡(jiǎn)易的輕量級(jí)服務(wù)器性能優(yōu)化,也支持龐大的集群架服務(wù)器性能優(yōu)化。

      Drupal官網(wǎng)為大家提供了服務(wù)器性能優(yōu)化指南,在該指南中,提供了修改php.ini文件調(diào)優(yōu)php性能,優(yōu)化數(shù)據(jù)庫性能,啟用緩存機(jī)制,安裝Varnish頁面靜態(tài)緩存,安裝APC啟用代碼緩存以及使用Redis作為key-value存儲(chǔ)的性能優(yōu)化機(jī)制。對(duì)于數(shù)據(jù)庫性能的優(yōu)化,可以使用memcached來緩存查詢。

      緩存機(jī)制是站點(diǎn)優(yōu)化的最直接的方式。鑒于Drupal的架構(gòu),需要做以下幾個(gè)方面的緩存:代碼緩存(APC、eAccelerator)、數(shù)據(jù)庫緩存(Memcache)、服務(wù)器反向代理緩存(Varnish)、頁面緩存(Boost)。針對(duì)高校的中小規(guī)模網(wǎng)站服務(wù)器,我們建議使用boost模塊的匿名用戶訪問的頁面靜態(tài)化來提供性能,它可以壓縮包括xml、ajax、css、javascript在內(nèi)的頁面文件從而減少帶寬,顯著提高用戶訪問速度。Boost模塊需要用戶修改.htaccess文件,不過Drupal會(huì)根據(jù)用戶的配置來自動(dòng)生成修改代碼,方便用戶修改。對(duì)于授權(quán)用戶的緩存處理,有Authenticated User Page Caching(authcache)模塊,它可以提高授權(quán)用戶的訪問速度。

      備份

      網(wǎng)站的備份很重要,使用Drupal制作的網(wǎng)站也不例外。Drupal系統(tǒng)的存儲(chǔ)內(nèi)容主要分為三部分:數(shù)據(jù)庫、核心代碼和用戶文件,因此備份Drupal主要就是備份這三部分的內(nèi)容。在Drupal提供的備份方案中,有多個(gè)模塊可以用來備份數(shù)據(jù)庫和文件,也可以由系統(tǒng)管理員針對(duì)這三部分內(nèi)容做出手工備份,如果是在站群或者多站點(diǎn)的情況下撰寫腳本來實(shí)現(xiàn)批量備份。

      在備份模塊中,首選“Backup and Migrate”,該模塊主要用來備份和恢復(fù)數(shù)據(jù)庫、代碼和文件,也可以用于遷移站點(diǎn),并且配合自動(dòng)調(diào)度任務(wù)來自動(dòng)備份。備份后的文件支持gzip、bzip和zip壓縮,而且可以存放在本地或者通過FTP/S3/Email等多種方式備份到異地,而且對(duì)于目前流行的Dropbox、Rackspace Cloudfiles、Proune、HPCloud也提供了多個(gè)模塊支持。為了系統(tǒng)安全,備份文件可以使用AES算法進(jìn)行加密。

      手工備份Drupal的方式也很簡(jiǎn)單,可以使用drush archive-dump命令行來備份,使用drush archive-restore來還原網(wǎng)站;也可以使用tar等歸檔工具壓縮Drupal核心代碼和用戶文件,對(duì)于數(shù)據(jù)庫使用drush、mysqldump(或pg_dump)來備份數(shù)據(jù)庫。對(duì)于手工操作不熟悉的,可以使用phpMyAdmin等圖形界面來進(jìn)行數(shù)據(jù)庫備份,如圖4所示。

      圖4 備份管理界面

      對(duì)于站群系統(tǒng)或者多站點(diǎn),可以撰寫腳本來進(jìn)行集中備份,也可以采用子站點(diǎn)單獨(dú)備份的策略。

      備份周期,Drupal推薦數(shù)據(jù)庫和用戶文件天天備份,而對(duì)于核心代碼備份間隔為30天。

      在本文中,沒有就Rules(規(guī)則)、Voting API和Flag等模塊進(jìn)行介紹,實(shí)際上結(jié)合這幾個(gè)模塊,可以避免編寫代碼,而實(shí)現(xiàn)一些觸發(fā)器性質(zhì)的工作流,也可以實(shí)現(xiàn)一個(gè)投票網(wǎng)站或者特別標(biāo)記的功能。

      基于Drupal的網(wǎng)站,相對(duì)于其他CMS系統(tǒng)站點(diǎn),最大的難點(diǎn)在于學(xué)習(xí)曲線比較陡峭,尤其是區(qū)塊的概念,不同于以往的CMS系統(tǒng),這是在學(xué)習(xí)Drupal過程中需要優(yōu)先掌握的概念。對(duì)Drupal有了基本的理解后,加上靈活運(yùn)用豐富多彩的模塊,完全可以滿足各類站點(diǎn)的需求。

      (作者單位為上海海事大學(xué))

      猜你喜歡
      字段備份代碼
      “備份”25年:鄧清明圓夢(mèng)
      圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      淺析數(shù)據(jù)的備份策略
      科技視界(2015年6期)2015-08-15 00:54:11
      CNMARC304字段和314字段責(zé)任附注方式解析
      無正題名文獻(xiàn)著錄方法評(píng)述
      出版原圖數(shù)據(jù)庫遷移與備份恢復(fù)
      苍溪县| 伊宁县| 贵德县| 略阳县| 新邵县| 炉霍县| 莱芜市| 铁力市| 虎林市| 龙井市| 清涧县| 万州区| 潞西市| 迁安市| 张家界市| 同心县| 延寿县| 太康县| 丹巴县| 延寿县| 汕尾市| 育儿| 揭阳市| 黎川县| 裕民县| 宜君县| 大理市| 万全县| 天镇县| 通城县| 嘉兴市| 霍林郭勒市| 沙坪坝区| 江北区| 鲁甸县| 修武县| 馆陶县| 内江市| 方城县| 疏勒县| 武宣县|