Thứ hai, 05/08/2013 | 00:00 GMT+7

Cách lưu trữ các phiên PHP trong Memcached trên CentOS VPS


Giới thiệu về Memcached

Memcached là một repository key-value trong bộ nhớ cho các phần nhỏ dữ liệu tùy ý (chuỗi, đối tượng) từ kết quả của lệnh gọi database , lệnh gọi API hoặc kết xuất trang.

Tại backup trữ các phiên trong Memcached?

Memcached sẽ lưu trữ các phiên trong bộ nhớ thay vì các file . Bởi vì bộ nhớ nhanh hơn đọc một file , trang web sẽ hoạt động tốt hơn và giảm thời gian tải.

Bắt được là gì?

Các phiên sẽ chỉ được lưu trữ trong bộ nhớ, bộ nhớ không thể chứa dữ liệu khi VPS của bạn bị tắt hoặc được khởi động lại nên các phiên sẽ bị xóa khi tắt máy.

Cài đặt

Trước khi bắt đầu hướng dẫn này, hãy đảm bảo bạn đã cài đặt và chạy PHP 5, bạn có thể tìm thấy hướng dẫn về cách thực hiện việc này trong phần trợ giúp PHP.

Đảm bảo rằng bạn đã cài đặt kho EPEL, bạn cần kho EPEL cho Memcached vì Memcached không có sẵn trong repository cơ sở.

rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

Không bắt buộc phải cập nhật các gói lên version mới nhất hiện có.

yum update

Cài đặt Memcached

Hãy bắt đầu với việc cài đặt Memcached.

yum install memcached

Sau khi cài đặt Memcached, mở file cấu hình của Memcached bằng VI.

vi /etc/sysconfig/memcached

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

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

Memcached không được bảo vệ bằng password hoặc tên user nên bất kỳ ai cũng có thể truy cập qua cổng 11211. Ta không muốn điều này nên chỉ cho phép VPS của bạn truy cập nó bằng cách chèn một số tùy chọn trong phần 'OPTIONS =':

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

Bạn có thể cần thay đổi kích thước bộ nhớ đệm; theo mặc định, nó là 64MB. Ngay sau khi Memcached đạt đến giới hạn này, nó sẽ xóa các mục cũ để giải phóng bộ nhớ cho các mục mới. Trừ khi bạn có một trang web rất lớn, 64 MB sẽ ổn.

Hãy bắt đầu Memcached.

/etc/init.d/memcached start

Memcached không khởi động theo mặc định khi khởi động, ta muốn nó khởi động khi server khởi động .

chkconfig --levels 235 memcached on

Cài đặt Phần mở rộng PHP Memcached

Ta cần cài đặt một số thứ, hãy bắt đầu với các công cụ phát triển. Chúng được yêu cầu để xây dựng từ mã nguồn:

yum groupinstall "Development Tools"

Sau đó, ta sẽ cài đặt thêm một số thứ. Hai phần đầu tiên được yêu cầu để xây dựng phần mở rộng và hai phần cuối cùng được yêu cầu để chạy / cài đặt phần mở rộng trong PHP.

yum install zlib-devel libmemcached-devel php-pear php-pecl-memcached

Bây giờ ta sẽ cài đặt tiện ích mở rộng PHP Memcached bằng cách sử dụng PECL (Thư viện cộng đồng mở rộng PHP) mà ta vừa cài đặt.

pecl install -f memcached-1.0.0

Thay đổi PHP.ini thành Cài đặt Memcached làm Trình xử lý phiên

Điều cuối cùng cần làm là cấu hình PHP để sử dụng Memcached làm trình xử lý phiên. Để làm như vậy, bạn phải mở /etc/php.ini bằng VI.

vi /etc/php.ini

Tìm kiếm khu vực '[Phiên]' như hiển thị bên dưới (cuộn từ dưới lên trên dễ dàng hơn).

[Session]
; Handler used to store/retrieve data.
; http://www.php.net/manual/en/session.configuration.php#ini.session.save-handler
session.save_handler = files

Và thay đổi nó thành thế này:

[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"

Như bạn thấy , ta đã thay đổi session_handler thành memcached và đường dẫn đến localhost của ta trên cổng 11211 mà Memcached hoạt động. Bây giờ, hãy khởi động lại Apache để reload file PHP.ini.

service httpd restart

Tất cả các phiên hiện được lưu trữ trong Memcached thay vì file .

Bạn có thể gặp lỗi sau:
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

Bạn có thể giải quyết vấn đề này bằng cách chỉnh sửa cấu hình apache:

vi /etc/httpd/conf/httpd.conf

và bỏ comment ServerName:

ServerName localhost

Nội dung khác có Memcached

Memcached là lý tưởng để lưu trữ các truy vấn chuyên sâu không cần phải theo thời gian thực trên mọi lần xem trang nhưng theo khoảng tăng thời gian được chỉ định (tức là 10 phút một lần). Để biết thêm thông tin về cách sử dụng Memcached bên trong các tập lệnh của bạn, tôi khuyên bạn nên xem bước ba trong hướng dẫn này .

Đệ trình bởi: Tim Kotkamp

Tags:

Các tin liên quan

Cách sử dụng Gmail hoặc Yahoo với chức năng PHP mail ()
2013-08-02
Cách tạo plugin Nagios với PHP trên Ubuntu 12.10
2013-04-29
Cách tạo plugin Nagios với PHP trên CentOS 6
2013-04-29