如何在 CubieTruck 上安裝 MemCached

最近看 OwnCloud 的日誌,常常看到一些有關 memcached 的錯誤,這才想起來,當初架這個站時,似乎忘了安裝 memcached 模組了,難怪會有錯誤發生。

請注意是 Memcached 不是 mmcache(多個字母d),很多人搞不清楚他們兩個之間的不同!多半玩過 PHP 的人大概都聽過 mmcache,mmcache它是一個預編譯緩衝的 PHP 加速程式,能夠提升 PHP 的執行效能。但卻很少人聽過 Memcached ,因為大多人乍看之下都以為它是mmcache,使得它沒什麼機會介紹自己。事實上,若您正打算架構一個真正高負載的大型網站系統,你需要了解的並不是 mmcache,而是 memcached。

Memcached 是什麼?顧名思義,他是由記憶體(Memory)和暫存(cache)所組合起來的常駐程式(Daemon),你也可以稱它為『暫存伺服器』。 Memcached 能提供一個暫存資料的服務,透過網路供其他電腦使用。Memcached 有什麼用途?最常見的應用就是在網站伺服器的叢集,它能讓許多的網站伺服器 Session 互相流通使用。如果你正在傷透腦筋煩惱這一點,恭喜你找到解決方法了!

想要在網站伺服器的叢集中,多網站伺服器 Session 互相流通使用,首先你必須將 Memcached 架起來當 Session 分享伺服器,這邊建議你使用大的記憶體,最好是能多大就有多大,因為 Memcached 並不會以硬碟當資料暫存,而是會完全跑在記憶體上,所以若記憶被用完了,Memcached 就會無法再存放更多資料。

瞭解了 MemCached 之後,首先我們先來安裝套件,這次要安裝兩個套件,一個是基礎的memcached,一個是給 php5用的延伸套件。

# apt-get install php5-memcached memcached

這兩個套件似乎並不大,很快就安裝好了。正常安裝完之後,memcached 就已經正常運作了,我們先來看看是否正常運作:

# ps aux | grep [m]emcached
memcache 20139 0.0 0.1 47616 2168 ? Sl 11:17 0:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1

嗯,memcached 看來有綁定 port和IP位址,為了安全起見,我們也順便幫它把防火牆打開。

# ufw allow from 127.0.0.1 to 127.0.0.1 port 11211
# ufw allow from 192.168.1.199 to 127.0.0.1 port 11211

上面的 192.168.1.199 換上自己的IP,這樣防火牆就可以為 memcached 打開了。

順帶一提的是,從剛剛的訊息看來,預設值給 memcached 的記憶體只有 64M,我的 CubieTruck 有 2GB的記憶體,管它的給他揮霍一筆,增加到 128MB吧(依照自己的記憶體空間決定吧)!所以我們到 /etc 目錄底下去修改 memcached.conf

# nano /etc/memcached.conf

找到 -m 64那行,把它修改成為

-m 128

然後重新啟動服務,

# service memcached restart

因為 PHP5是依附在 Apache2 套件底下的服務,所以一定要重新啟動 apache2  的服務

# service apache2 restart

這樣就可以使 php5底下的 memcached 生效了。為了證明是否有正確運行,在自己的網頁入口目錄增加一個檔案 apache.php(事後可以刪除),把內容填上

<?php
phpinfo();
?>

然後拜訪自己的網站的 apache.php

http://your_ip/apache.php

是否增加了 memcached 這一些資料呢?

memcached

 

還有一點,不要忘了常常看 log,memcached的日誌檔案在 /var/log/memcached.log(剛剛談到的 /etc/memcached.conf 裡面可以更改位置),一般是沒有什麼事情發生的。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *