Cài đặt và cấu hình memcached với vBulletin trên CentoS

hungp

Whi-----
27/12/2014
49
72 bài viết
Cài đặt và cấu hình memcached với vBulletin trên CentoS
Hôm nay mình sẽ viết một bài về việc cài đặt trên CentoS và tích hợp nó vào vBulletin Forum. Trong loạt bài này mình sẽ chia làm 3 phần. Phần I sẽ hướng dẫn về việc cài đặt memcached lên CentoS, phần II sẽ hướng dẫn cách kiểm tra xem memcached đã hoạt động chưa và phần III mình sẽ đi vào việc tích hợp vào vBulletin Forum.

Phần I – Cài đặt memcached lên CentoS
Trước khi cài đặt mình sẽ nói qua cho mọi người hiểu thêm về memcached là gì và tác dụng của nó.

1. Memcached là gi?
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 từ 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
1489939942memcached1.png
2. Hướng dẫn cài đặt memcached trên CentOS server
Ở trong bài này mình sẽ hướng dẫn cài memcached trên CenOS 6 - 64 bit

Thiết lập
Trước khi bắt đầu hướng dẫn, các bạn phải chắc chắn rằng đã cài PHP 5. Bạn cần cài đặt kho EPEL cho Memcached vì Memcached mặc định không có sẵn trong kho lưa trữ.
Cài đặt Remi repository

rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpmrpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
Cập nhật phần mềm lên phiên bản mới nhất
Yum update

Cài đặt Memcached
yum install memcached

Cần lưu ý là có 2 memcache package tồn tại là memcache và memcached cũng như có 2 phiên bản PHP Extention Module tương ứng là php-pecl-memcache và php-pecl-memcached. Ở đây chúng ta sẽ sử dụng phiên bản thứ 2 vì nó ổn định và hỗ trợ nhiều chức năng hơn.

Sau khi cài đặt Memcached, mở các tập tin cấu hình của Memcached

vi /etc/sysconfig/memcached

Bạn sẽ thấy điều này:

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="512"
OPTIONS=""

Thông số quan trọng nhất bạn cần lưu ý đó là CACHESIZE (kích thước cho bộ nhớ cache), đơn vị tính là MB. Ví dụ như bên dưới mình sử dụng 512MB để cache (mặc định 64MB).

Memcached không được bảo vệ bằng mật khẩu hoặc tên người dùng, do vậy bất cứ ai cũng có thể truy cập vào thông qua cổng 11211. Từ đó đưa ra giải pháp để đảm bảo an ninh là chỉ cho phép VPS của bạn truy cập, để thiết lập điều này ta thông qua phần tùy chọn ‘OPTIONS=’:

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="512"
OPTIONS="- l 127.0.0.1"

Khởi động Memcached
chkconfig memcached on
service memcached start

Kiểm tra xem Memcached có hoạt động hay không
memcached-tool 127.0.0.1:11211 stats

#127.0.0.1:11211 Field Value
accepting_conns 1
auth_cmds 0
auth_errors 0
bytes 0
bytes_read 14
bytes_written 768
cas_badval 0
cas_hits 0
cas_misses 0
cmd_flush 0
cmd_get 0
cmd_set 0
conn_yields 0
connection_structures 11
curr_connections 10
curr_items 0
decr_hits 0
decr_misses 0
delete_hits 0
delete_misses 0
evictions 0
get_hits 0
get_misses 0
incr_hits 0
incr_misses 0
limit_maxbytes 536870912
listen_disabled_num 0
pid 1232
pointer_size 64
rusage_system 0.000999
rusage_user 0.000000
threads 4
time 1402941264
total_connections 12
total_items 0
uptime 114
version 1.4.4

Chú ý thông số uptime phía cuối, như vậy là memcached đã sẵn sàng hoạt động rồi.

Mở cổng Memcached (11211) trên Iptables Firewall
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 PHP Module trên CentOS 6
Trước hết cần phải cài đặt một vài công cụ để hỗ trợ cho việc cài đặt các bước sau:
yum groupinstall "Development Tools"

Để Memcached có thể hoạt động được với PHP, chúng ta cần cài đặt thêm PHP module.
yum install zlib-devel libmemcached php-devel php-pecl-memcached

Nếu trong quá trình cài có lỗi ở gói tin libmemcached thì ta có thể cài như sau:
# wget https://launchpad.net/libmemcached/1.0/1.0.17/+download/libmemcached-1.0.17.tar.gz
#tar xvf libmemcached-1.0.17.tar.gz
# cd libmemcached-1.0.17
# ./configure
# make & make install

Nếu lỗi quá trình cài gói tin php-pecl-memcached thì ta có thể cài lệnh sau:

yum --enablerepo=remi,remi-php55 install php-pecl-memcachedBây giờ chúng ta sẽ cài đặt phần mở rộng PHP sử dụng Memcached PECL
pecl install -f memcached

Các module memcached.so sẽ được cài đặt trong thư mục Module php, sau đó kích hoạt nó bằng cách thêm một dòng vào file php.ini như sau:

Mở file php.ini
vi /etc/php.ini

Sau đó thêm dòng sau vào và lưa lại.
extension = memcached.so

Thay đổi php.ini để cài đặt memcached như phiên Handler
Trước hết mở file php.ini
vi /etc/php.ini

Tìm một đoạn giống như dưới đây:

[Session]
; Handler used to store/retrieve data.
; http://www.php.net/manual/en/session.configuration.php#ini.session.save-handler
session.save_handler = filesThay đoạn đấy bằng đoạn như sau:

[Session]
; Handler used to store/retrieve data.
; http://www.php.net/manual/en/session.configuration.php#ini.session.save-handler
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"
Bây giờ khởi động lại Apache để tải lại file php.ini
service httpd restart

Nếu bị lỗi này sau khi khởi động:
Starting httpd: httpd: apr_sockaddr_info_get() failed for memcached
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

Ta có thể giải quyết điều này bằng cách chỉnh sửa cấu hình apache:
vi /etc/httpd/conf/httpd.conf
Và bỏ dấu ghi chú ở dòng này:
ServerName localhost

Kiểm tra hoạt động của memcached
Mọi người có thể kiểm tra xem memcached đã hoạt động chưa bằng cách xem thông tin file info.php. Nếu đã xuất hiện như hình dưới đây thì memcached chạy như một dịch vụ.
1489939942memcached2.png

Vậy mình đã viết xong phần I. Mọi người chú ý theo dõi phần II nhé.
 
Chỉnh sửa lần cuối bởi người điều hành:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Bên trên