Memcached là một hệ thống cache hoạt động bằng cách lưu tạm thông tin những dữ liệu bạn hay sử dụng vào bộ nhớ RAM. Do tốc độ đọc ghi của bộ nhớ bao giờ cũng cao hơn so với lưu trữ file nên việc sử dụng memcached giúp cho hệ thống của bạn tăng tốc lên một cách đáng kể.
Mô hình hoạt động của Memcached:
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.
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)
## 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
## 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.
# nano /etc/sysconfig/memcached
PORT="11211" USER="memcached" MAXCONN="10240" CACHESIZE="128" OPTIONS="-l 127.0.0.1 -U 0"
Khởi động Memcached
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/
:
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
yum --enablerepo=remi,remi-php55 install php-pecl-memcached php-pecl-memcache
PHP 5.6
yum --enablerepo=remi,remi-php56 install php-pecl-memcached php-pecl-memcache
PHP 7.0
yum --enablerepo=remi,remi-php70 install php-pecl-memcached php-pecl-memcache
PHP 7.1
yum --enablerepo=remi,remi-php71 install php-pecl-memcached php-pecl-memcache
Cuối cùng khởi động PHP và web server
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
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT
Khởi động lại Iptables Firewall
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
nano /etc/php.ini
Tìm dòng [Session]
, thay thế session.save_handler = files
bằng:
[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:
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
service php-fpm restart
Cài đặt 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ờ thì 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 lệnh bên dưới:
yum remove memcached php-pecl-memcached php-pecl-memcache service php-fpm restart service nginx restart
Chúc các bạn thành công!
Mình cài hocvps script v2.2 trên CentOS 8:
1) Cài đặt Memcache và Memcached PHP Module:
Dùng PHP 8.0 thì câu lệnh cài phải sửa thế nào admin. Mình thử dùng :
yum –enablerepo=remi,remi-php80 install php-pecl-memcached php-pecl-memcache
thì báo lỗi: Error: Unknown repo: ‘remi-php8’
2) Sau khi cài phpMemcachedAdmin:
Giờ bạn có thể truy cập PHPMemcachedAdmin qua domain:port/memcached/
Phải khai báo lại đường dẫn hay cập nhật gì để vào dc domain:port/memcached/ vậy bạn.
Mình cài xong vào như trên thì bị báo lỗi:
This page isn’t working domain is currently unable to handle this request.
HTTP ERROR 500
Trong khi vào File Manager, OpCache,Server info…qua port thì vào được bình thường.
Cài đặt Memcache và Memcached PHP Module
Phần này php 7.3 mới nhất thì lệnh sao ad ơi
Sửa cái chỗ 71 thành 73
yum –enablerepo=remi,remi-php73 install php-pecl-memcached php-pecl-memcache
Chào bác luân
Em vừa nâng cấp vps lên gói 12$ và ram là 2GB thì em set lại memcached thế này đúng chưa.
PORT=”11211″
USER=”memcached”
MAXCONN=”20480″
CACHESIZE=”1024″
OPTIONS=”-l 127.0.0.1 -U 0″
CACHESIZE=”1024″ sửa lại 128 hay 256 được rồi. Bác ghi như vầy 1024 là nó giành hết 1GB Ram làm Cache đấy
Lệnh tìm đúng đường dẫn file cài đặt là gì hả bác?
Mình xài cloud VPS 2gb Ram ở Digital Ocean, web bán hàng thì lúc cài Page cache, Object Cache và Database cache thì nên chọn Disk hay Memcached
Chào admin.
Mình cài memcached lên vps và hiện tại đang sử dụng vps ssd nvme của vultr gói 6$
.
Memcached của mình set 128m và cứ một ngày là bị full cache.
Cho mình hỏi có nâng dung dượng lên được không.
Nâng được bạn nhé
Bạn nên nâng cấu hình Memcached nhưng cẩn thận đầy Ram. Tham khảo thêm: https://pus.edu.vn/vps-hosting/cai-dat-memcache-tren-centos.html
sài vps cài thêm memcached load bao phê luôn,thannks ad nhiều
Sử dụng varnish cache rồi có cần cài thêm cái này nữa không ạ?
admin ơi giúp với
mình tính vps A chạy codeweb, vps B chạy memcached. Nhưng không biết cấu hình cho vps biết dùng memcached trên vps B. có thể hướng dẫn mình việc này hok.
Hay cho chỉ cho mình,tài liệu để nghiên cứu. mình tìm trên web memcached, mà hok có
thanks
Không được bạn nhé.
Được nhé bạn, mô hình Cluster
Ko có session.inc.php thì làm sao 🙁
Sau khi mình làm các bước thì bị lỗi này thông báo ở setup plugin:
The following memcached servers are not responding or not running:
Database Cache: 127.0.0.1:11211.
Object Cache: 127.0.0.1:11211.
Page Cache: 127.0.0.1:11211.
This message will automatically disappear once the issue is resolved.
Mình nên giải quyết lỗi này thể nào ạ?
Trạng thái memcached của bạn như thế nào? Có đang hoạt động bình thường không
service memcached status
mình dùng phiên bản PHP 7.2 thì dùng module nào vậy ad?
Ad cho em hỏi, sau khi cài memcache. Nhưng các web chung server nó lại xài chung 1 cache.
Ví dụ web 1 kích hoạt cache trước. web 2 kích hoạt cache sau thì web 2 nó co giao diện như web 1.
Làm sao để tách cache 2 web ra ạ ?
hi Luân,
Cho mình hỏi dùng script hocvps đã có sẵn PHP OPcache, vps chủ yếu dùng wordpress cài plugin WP Super Cache, vậy cài thêm memcached thì có cần thiết hay ko, nếu có thì tích hợp vào plugin wp super cache như thế nào. xin cám ơn
Memcached dùng qua W3 Total Cache như hướng dẫn đó bạn, còn Super Cache mình không rõ rồi
Còn việc sử dụng thêm Memcached hay không tùy nhu cầu hệ thống và khả năng quản lý của bạn nhé
Anh ơi cho em hỏi chút ạ
Em có 1 cái vps, em chạy 2 cái site trên đó và có dùng chung memcache port 11211, nếu 2 site đó gọi chung 1 key memcache liệu nó có lấy chung giá trị của nhau ko ạ, giờ muốn tách ra mỗi site lấy 1 memcache riêng thì mình phải làm thế nào ạ
Không cần tách bạn nhé
Vẫn bị dính 1 cache, em bị nè 🙁
Nó thông báo thế này
“The following memcached servers are not responding or not running:
Database Cache: 127.0.0.1:11211.
Page Cache: 127.0.0.1:11211.
This message will automatically disappear once the issue is resolved.”
Thì mình phải xử lý như thế nào vậy ad?
Bạn mở cổng 11211 chưa?
Mình cũng bị y chang lỗi này. telnet 127.0.0.1 11211 thì báo là connected, mình đã mở port 11211, tắt luôn firewalld, vv…mà vẫn không được. Mình thử PHPMemcachedAdmin thì nó báo “Permission denied”, đã set full quyền (777, chown, vv)
Permission denied thì bạn check lại thư mục source code của phpmemcachedadmin thuộc nginx:nginx chưa?
domain:port/memcached/
phần port mình thay bằng thông số gì ạ?
Port của HocVPS Admin nhé bạn. Hệ thống bạn là hocvps?
1. đúng mình dùng hocvps, vậy là số nào?tks
2. trong plugin w3 total cache phần Page Cache, Database Cache và Object Cache mình chọn là Memcached và test passed ( màu xanh) là memcached đã hoạt động chưa? tks
1. Bạn cài đặt hocvps chọn số nào thì nó là số đó nhé. Có thể kiểm tra lại qua /root/hocvps-script.txt
2. Bạn đọc bài viết đó
ok cảm ơn Việt Phương , mình làm được rồi
Không hiểu mình cài Memcached + W3 cache xong giờ viết comment nó đều báo lỗi tới đường dẫn : abc.com/wp-comments-post.php
“405 Not Allowed nginx” cả tháng nay k đụng tới code chỉ cài 2 thằng trên thui 🙁
Có vẻ lỗi này cần check nhiều để tìm ra nguyên nhân. Bạn tham khảo trên mạng nhé
https://www.google.com/search?q=%22wp-comments-post.php%22+%22405+Not+Allowed+nginx&oq=%22wp-comments-post.php%22+%22405+Not+Allowed+nginx&aqs=chrome..69i57.2728j0j7&sourceid=chrome&ie=UTF-8
https://wordpress.org/support/topic/wp-comments-post-405-nginx/
Có thể liên quan tới plugin lọc cmt spam
Hic mình tìm ra nguyên nhân rồi bạn mình đã thêm block request spam comment và kết quả là không comment được j hết :((
#Block Spam comment
location ~* /wp-comments-post\.php$ {
if ($http_user_agent ~* “x11; linux i686; rv:17” ) {
return 403;
}
}
Okie bạn. Noted. Nếu vậy đâu liên quan gì đến Memcached và W3 Total Cache