Memcached là một hệ thống lưu trữ bản sao các đối tượng (objects) và dữ liệu được truy cập nhiều lần để tăng tốc độc truy xuất. Mục đích chính của nó là để tăng tốc độ ứng dụng web bằng cách truy vấn cơ sở dữ liệu bộ nhớ đệm, nội dung, hoặc kết quả tính toán khác.
Mô hình hoạt động:
Trong bài viết này, mình sẽ hướng dẫn các bạn cách cài đặt Memcached trên CentOS 7/6/5.
Bắt đầu cài đặt Memcached
– Cài đặt Remi repository với CentOS 5 (CentOS 7 và 6 không cần bước này)
1 2 3 |
## Remi Dependency on CentOS 5 rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm |
– Cài đặt Memcached package
1 2 3 4 5 |
## CentOS 7 and 6 yum install memcached ## CentOS 5 yum --enablerepo=remi install memcached |
Bạn cần lưu ý là có 2 memcache package tồn tại là memcache và memcached (có thêm chữ d ở cuối) cũng như có 2 phiên bản PHP Extention Module tương ứng là php-pecl-memcache và php-pecl-memcached. Chúng ta sẽ sử dụng phiên bản thứ 2 (có chữ d) vì nó ổn định và hỗ trợ nhiều chức năng hơn.
Cấu hình Memcached
Thông số quan trọng nhất bạn cần lưu ý đó là CACHESIZE, đơn vị tính là MB và MAXCONN. Ví dụ như bên dưới mình sử dụng 128MB để cache (mặc định 64MB). OPTIONS cấu hình bảo mật chỉ cho local connect được tới port 11211 mà thôi.
1 2 3 4 5 6 7 |
nano /etc/sysconfig/memcached PORT="11211" USER="memcached" MAXCONN="10240" CACHESIZE="128" OPTIONS="-l 127.0.0.1" |
Khởi động Memcached
1 2 |
chkconfig memcached on service memcached start |
Để theo dõi tình trạng memcached, các bạn có thể có thể sử dụng phpMemcachedAdmin để xem ngay trên trình duyệt. PHPMemcachedAdmin chỉ cần tải về là có thể sử dụng, nên cài đặt trong thư mục quản lý của HocVPS Script để bảo mật. Cụ thể, mình sẽ cài đặt trong thư mục /home/hocvps.com/private_html/
:
1 2 3 4 5 |
cd /home/hocvps.com/private_html/ wget https://github.com/elijaa/phpmemcachedadmin/archive/1.3.0.tar.gz tar -xvzf 1.3.0.tar.gz mv phpmemcachedadmin-1.3.0 memcached && chmod -R 777 memcached && chown -R nginx:nginx memcached rm -f 1.3.0.tar.gz |
Giờ bạn có thể truy cập PHPMemcachedAdmin qua domain:port/memcached/
Lưu ý: ở lần truy cập đầu tiên bạn sẽ thấy thông báo “Error : Configuration file or folder is missing, please fix this error and try again“. Bạn vào Editing Configuration
rồi Save Live Configuration
là xong.
Cài đặt Memcache và Memcached PHP Module
Để Memcached có thể hoạt động được với PHP, chúng ta cần cài đặt thêm PHP module.
PHP 5.5
1 |
yum --enablerepo=remi,remi-php55 install php-pecl-memcached php-pecl-memcache |
Phiên Bản PHP 5.6
1 |
yum --enablerepo=remi,remi-php56 install php-pecl-memcached php-pecl-memcache |
PHP 7.0
1 |
yum --enablerepo=remi,remi-php70 install php-pecl-memcached php-pecl-memcache |
Phiên bản PHP 7.1
1 |
yum --enablerepo=remi,remi-php71 install php-pecl-memcached php-pecl-memcache |
Cuối cùng khởi động PHP và web server
1 2 |
service php-fpm restart service nginx restart |
Mở cổng Memcached (11211) trên Iptables Firewall
Trong trường hợp bạn sử dụng riêng một server để chạy Memcached thì cần phải mở port 11211 trên server cache.
Sử dụng lệnh sau
1 |
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT |
Khởi động lại Iptables Firewall
1 |
service iptables restart |
Cài đặt Memcached làm Session Handler
Bạn có thể cấu hình PHP sử dụng Memcached làm session handler, thay vì dùng files, để tăng hiệu năng xử lý của hệ thống. Tất nhiên thao tác này chỉ nên thực hiện với các mã nguồn sử dụng nhiều session, WordPress thì không cần.
Mở file cấu hình php.ini
1 |
nano /etc/php.ini |
Tìm dòng [Session]
, thay thế session.save_handler = files
bằng:
1 2 3 |
[Session] session.save_handler = memcached session.save_path = "127.0.0.1:11211" |
Nhấn Ctrl+O để save file, Ctrl+X để đóng editor.
Nếu dùng phpMyAdmin, bạn cần tùy chỉnh cơ chế lưu trữ session của ứng dụng. Chỉnh sửa file session.inc.php
của phpMyAdmin:
1 |
nano /home/domain.com/private_html/phpmyadmin/libraries/session.inc.php |
_Uncomment (bỏ //) dòng: //ini_set('session.save_handler', 'files');
_Thêm dòng : ini_set('session.save_path', '/tmp');
Cuối cùng restart lại PHP
1 |
service php-fpm restart |
Cài Memcached làm việc với WordPress
Để Memcached có thể hoạt động với WordPress bạn cần sử dụng plugin cache W3 Total Cache.
Trong phần cài đặt plugin, hãy chọn page cache method là Memcached cho các module Page Cache, Database Cache và Object Cache là xong.
Giờ các bạn hãy hãy tận hưởng tốc độ vù vù mà Memcache đem lại nhé.
Xóa Memcached
Nếu không dùng nữa và muốn xóa hoàn toàn Memcached khỏi server, bạn hãy chạy các lệnh bên dưới:
1 2 3 |
yum remove memcached php-pecl-memcached php-pecl-memcache service php-fpm restart service nginx restart |
Tuanvd.com Chúc các bạn thành công!
Bài viết có sự tham khảo từ hocvps.com.