如何在 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 裡面可以更改位置),一般是沒有什麼事情發生的。

如何增大 Apache 上傳檔案大小限制

之前架設 ownCloud 時,雖然 ownCloud 已經把上傳檔案大小限制改為 512MB,但是有時候還是上傳不了,後來查了一下原來在 PHP5裡面是有限制的,必須修改一下,設定檔案在 /etc/php5/apache2/php.ini 裡面。

# nano /etc/php5/apache2/php.ini

找到下面兩行,改成你要的檔案大小,

upload_max_filesize = 512M ;預設值是 2M
post_max_size= 512M ;預設值是 2M

然後重新啟動 Apache2 服務即可。

# service apache2 restart

如何在 CubieTruck 搭建一個輕量級的 Apache 網站

對於一個伺服器來說,其中 HTTP 的服務是不可缺少的。目前最流行的作法就是以 Apache2 加上 PHP5和MySQL來搭建一個輕量級的HTTP網站。目前的套件都已經很進步了,只要安裝一下套件及執行一些命令就可以了。

在安裝之前你先確定你的系統已經更新到最新版本。

# apt-get -f install
# apt-get update
# apt-get upgrade

之後,第一步驟需要安裝的就是 Apache2 套件。

# apt-get install apache2

猶如之前提及的,現在的套件都已經很完備了,所以安裝完之後應該可以立刻用瀏覽器看看自己的網站 http://www.example.org/ 應該會有一個在 /var/www 底下的檔案列表或是預設的Apache網頁,這也代表你的 Apache2 安裝成功了,你開始擁有你自己的HTTP平台。

http://你的IP位址

接下來就是安裝 MySQL 資料庫,需要的套件如下,注意整個安裝過程最好以 root 身分執行,才不會導致權限不足的錯誤。

# apt-get install mysql-server php5-mysql

安裝好 MySQL 套件之後,你必需起始化 MySQL 資料庫

# mysql_install_db
# mysql_secure_installation

整個過程會要求輸入 root 的密碼,請您確定好,最好密碼含有英文字母和數字,而且最好十個字元以上。執行完之後,MySQL 也應該是安裝好了。

最後一個步驟就是安裝 PHP5 套件,需要的套件如下:

# apt-get install php5 libapache2-mod-php5 php5-mcrypt php5-cli

經過幾分鐘後,整個 PHP5的套件就會安裝完畢。然後重啟 Apache2 服務即可。

# service apache2 restart

夠簡單吧!當然這都是最基礎的,你還得微調一下你的 Apache2/PHP5/MySQL的效能,讓它能在效能低的可憐的 CubieTruck 運作順暢!