Hướng dẫn cài Memcached cho Direct Admin.

Hiện tại thì Memcached module hỗ trợ 2 Version và mỗi version này sẽ hỗ trợ cho các loại phiên bản PHP khác nhau như sau :

php-memcached 3.x:
- Supports PHP 7.0 - 7.1.
- Requires libmemcached 1.x or higher.
- Optionally supports igbinary 2.0 or higher.
- Optionally supports msgpack 2.0 or higher.
php-memcached 2.x:
- Supports PHP 5.2 - 5.6.
- Requires libmemcached 0.44 or higher.
- Optionally supports igbinary 1.0 or higher.
- Optionally supports msgpack 0.5 or higher.

Cho nên để hỗ trợ cho PHP 7 thì bạn phải cài Memcached 3 và ngược lại, điều kiện cần nữa là bạn phải có bộ thư viện cho Memcached là libmemcached.

Bài viết này sẽ hướng dẫn cài trên Memcached Version 3.

memcached download: https://pecl.php.net/package/memcached
libmemcached download: https://launchpad.net/libmemcached/+download
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
wget https://pecl.php.net/get/memcached-3.0.4.tgz

Bước 2: Cài đặt Libmemcached

gunzip libmemcached-1.0.18.tar.gz
tar -xvf libmemcached-1.0.18.tar
cd libmemcached-1.0.18
./configure
make && make install

Bước 3: Cài đặt Memcached module

tar -xvzf memcached-3.0.4.tgz
cd memcached-3.0.4
phpize
./configure
make && make install

Sau khi cài đặt xong bạn sẽ thấy thông báo có đính kèm liên kết đến thư mục chưa file của memcached module dạng như sau:

Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20160303/

Bước 4: Cấu hình cho PHP nhận cấu hình của memcached module

Các bạn sử dụng lệnh sau để tìm file php.ini

php -i | grep "php.ini"

Tiếp đến mở file php.ini ra và thêm vào cuối file đoạn chỉ thị sau:

extension = "/usr/local/lib/php/extensions/no-debug-non-zts-20160303/memcached.so"

Lưu lại và khởi động lại apache bằng lệnh sau:

/etc/init.d/httpd restart

bây giờ bạn kiểm tra bằng cách dùng lệnh:

php -m | grep memcached
Nếu xuất hiện dòng chữ memcached thì xin chúc mừng, bạn đã thành công trong việc compile memcached module rồi đấy.

Bước 5: Cài tiếp memcached service

memcached service listen trên port 11211, có 2 cách để cài đặt nó và ở đây mình dùng yum cài cho dễ
yum install memcached -y
/etc/init.d/memcached start
chkconfig memcached on

kiểm tra lại xem memcached service đã hoạt động hay chưa bằng lệnh sau:

netstat -nltp | grep 11211
nếu thấy có kết nối tcp trả về việc đã lắng nghe trên port này là thành công rùi đó.
Bây giờ nếu mã nguồn là wordpress bạn có thể tải plugin w3 total cache về để kết hợp cùng các method memcached sẽ thấy cải thiện tốc độ load trang đáng kể.

Bước 6: Kiểm tra memcached có làm việc không

Cách 1:

Trong thư mục chứa mã nguồn các bạn tạo ra 1 file cache_test.php nội dung như sau:
<?php
$mem = new Memcached();
$mem->addServer("127.0.0.1", 11211);

$result = $mem->get("hello");

if ($result) {
echo $result;
} else {
echo "Khong thay key. Toi se them vao ngay bay gio!";
$mem->set("hello", "Toi la data! toi da duoc luu trong memcached!") or die("Khong the luu den memcached...");
}
?>

Lưu lại và truy cập dạng domain/cache_test.php lần đầu sẽ không có cache và lần thứ 2 trở đi sẽ có cache, nếu nội dung từ lần 2 trở đi là “hello”, “Toi la data! toi da duoc luu trong memcached!” thì thành công roài đó.

Cách 2:

Các bạn sẽ sử dụng lệnh telnet để kiểm tra:

telnet localhost 11211
stats items

kết quả dạng như sau là các lưu key – value

STAT items:2:number 1
STAT items:2:age 106
STAT items:2:evicted 0
STAT items:2:evicted_nonzero 0
STAT items:2:evicted_time 0
STAT items:2:outofmemory 0
STAT items:2:tailrepairs 0
STAT items:2:reclaimed 0
STAT items:2:expired_unfetched 0
STAT items:2:evicted_unfetched 0

Xóa cache và thoát telnet bằng lệnh sau, truy cập lại trang, nếu các giá trị dạng key – value được ghi lại thì tức là memcached module đã làm việc cùng memcached service roài các bạn nhé.

flush_all
quit

Như vậy là bài viết hướng dẫn compile memcached module xong rồi đó các bạn, hy vọng sẽ giúp ích các bạn ít nhiều trong việc lựa chọn các công cụ caching cho mã nguồn của mình.

Related Articles