
2011年初改用Drupal建站一個原因就是看中了對多語言的支持,2011年9月做了“多語言的中國郵政編碼系列子網站”。
但當時對多語言的認識并不是很充分,隻是單個網站用某一種語言,不了解同一套數據庫做多種語言,所以當時做的多語言的中國郵政編碼系列子網站
2011年初改用Drupal建站一個原因就是看中了對多語言的支持,2011年9月做了“多語言的中國郵政編碼系列子網站”。
但當時對多語言的認識并不是很充分,隻是單個網站用某一種語言,不了解同一套數據庫做多種語言,所以當時做的多語言的中國郵政編碼系列子網站
從用MediaWiki做網站開始,服務器負載一直就是個問題,為了解決這個問題,我們添加了各種緩存,如MediaWiki的多種緩存機制,包括File Cache,也加上了外部的Squid。後來做Drupal網站并不需要Squid,但因為服務器上已經安裝了Squid,我們也隻好把Drupal架設在Squid之後,另外Drupal也采用了内部core緩存和Boost緩存。
這些緩存機制可以解決不少問題,但緩存主要對數據量小、每頁訪問多的網站有明顯效果,而對于數據量很大、每頁訪問少的網站起不到明顯效果,有時甚至因為緩存文件過多起到反效果,而且緩存更新機制也有些小問題。
在《Drupal的MySQL過度膨脹,清理緩存、翻譯表》這篇2012年8月的博文中,提到有些非英文網站的locales_source表不斷變大的問題,當時在網上找了一些資料,臨時先用删除表中某些特征的數據來解決,半年後再次逐步變大導緻網站訪問困難,又編寫了一個自動删除表中記錄的腳本來解決,但始終是治标不治本。
這些天在對其它網站進行多語言擴充的時候,發現有些網站也有類似問題,都是locales_source中包含大量不需要進行翻譯的内容,再次查找資料并逐步調試,終于是找到問題的根源并可以解決了,有兩種情況:
各國郵編的系列網站是用Drupal 6搭建的,當初都開啟了Pathauto, Boost等模塊,使用起來也都還正常,後來将一部分網站進行了50種多語言和手機版的擴充,訪問速度就感覺要慢一些,最近一兩個月來擴充得越多就感覺網站訪問越慢,而且後來取消了Boost緩存(因為沒有那麼大的硬盤來緩存100倍的文件,即使可以放得下,文件數量太多訪問也慢)後感覺更慢了一些。
這個問題先在google webmaster tools中有所發現,但直到最近操作越來越慢才引起重視,監控軟件的報錯也開始頻繁,昨天再一查監控軟件的記錄,這個系列的子網站打開首頁都需要20秒以上,基本上沒有
這些天在做系列網站的時候,遇到多個子網站、每個子網站都有多個内容類型,希望在首頁展示内容類型、包含的字段名稱以及頁面數量,以前是人工來讀取的,但網站多了就很麻煩,而且以後不便更新,這次用Drupal的API調用及SQL語句來實現了。
站内讀取的例子:http://hangye.mingluji.com/it/,源代碼:
<?php $node_types=node_type_get_names(); print '<ul>'; f
Drupal中的Views是一個非常有用的工具,不需要編程就可以生成各種列表,我們一直在各個網站中使用。但也存在一個問題,舉例如下:
我的這個博客基本都是中文寫的,但也常遇到國外垃圾信息的騷擾,幾乎每天都有英文的垃圾留言,帶有一些Spam廣告網址,我先是發現後手工删除,但太多了,每天都有上十條,遠比正常留言多,後來用Drupal的Captcha插件,但Spammer似乎有技術手段跳過驗證,依然不斷地發,我被迫把留言添加人工審核、甚至關閉留言一段時間,但隻要放開後馬上又可以看到垃圾源源不斷。😠
春節前同事們一起也談工作總結、計劃的時候,到說到幾個開放提交信息、留言的網站存在大量垃圾,每天要花費好多時間去檢查、删除。于是我嘗試了Drupal的Mollom插件,這個有所謂智能反垃圾的功能,建立在對大量垃圾
最近我們在對一些網站添加多語言以及修改自定義模塊的工作中,需要對Boost緩存進行清除操作,逐個網站在菜單中清除需要很長時間,想到用Drush來批量處理系列網站,但Drush本身隻能清除系統緩存,并不能處理Boost緩存,在網上找了些資料,找到了boost.drush.inc這個補丁可以解決,隻需要在drupal/sites/all/modules/boost目錄下新建這個文件,複制這些代碼就可以了。
為Drush添加了下面三個命令:
我們一些使用Drupal的網站中啟用了系統自帶的留言功能contact模塊,用戶使用的時候填入表單就可以反饋,不需要另外發送郵件,還是很方便的,但同事發現一些要求更改或者删除某個頁面的留言中,用戶并沒有按照我們的提示填寫需要更改或者删除的頁面網址,導緻需要反複聯系多次,增加了工作量也不利于客戶體驗。
本來同事是想在contact表單中加入一欄讓用戶填寫相關的網址,但默認的contact模塊并無此功能,這幾天在網上搜索了半天才找到辦法,就是修改contact模塊中的表單及發送php程序可以搞定。我先是嘗試直接修改drupal/modules/contact中的兩個文
在用Drupal 7搭建新網站時,根據具體情況可以添加多語言及手機版,我記錄在博文《Drupal的多語言系列網站搭建和設置》中。
在對更早使用Drupal 6已經搭建起來的網站進行擴充添加多語言及手機版的時候,過程也類似,隻是稍微有些不同,下面我也記錄一下過程:
初期準備:
2002-2023 v11.7 a-j-e-0