Cài đặt và cấu hình memcached với vBulletin trên CentoS - Phan II
Trong phần I mình đã giới thiệu cách cài đặt memcached lên CentOS. Vậy trong phần này mình sẽ hướng dẫn cách kiểm tra xem memcached đã hoạt động chưa và cách cấu hình với vBulletin.
Chúng ta sẽ kiểm tra hoạt động của memcached qua 2 phần test. Phần 1 ta sẽ test phần cache dữ liệu, phần 2 ta sẽ test việc cache dữ liệu từ database mysql.
Phần 1
Tạo một tập tin cache_test.php trong mục /var/www/html :
Vi /var/www/html/cache_test.php
Chép đoạn code này vào file đấy:/var
Trong lần đầu tiên tải trang này ta thấy sẽ thấy một thông báo “ No matching key found “
Sau đó ta tải lại trang, nếu memcached hoạt động thì nó sẽ hiện thông báo “Data held in memcache”.
Phần 2
Tạo dữ liệu mẫu trong MySQL để test.
Kết nối tới csdl :
mysql -u root -p
Chọn cơ sở dữ liệu
CREATE DATABASE mem_test;
USE mem_test;
Tạo một người dùng là testing với một mậu khẩu testing123 có quyền truy cập vào csdl.
GRANT ALL ON mem_test.* TO test@localhost IDENTIFIED BY 'testing123';
Bây giờ ta sẽ tạo một bảng và chèn một bản ghi vào đấy.
CREATE TABLE sample_data (id int, name varchar(30));
INSERT INTO sample_data VALUES (1, "some_data");
Bây giờ thoát khỏi cơ sở dữ liệu:
exit
Tạo một đoạn PHP Script để cache dữ liệu MySQL
Tao một file scriptndatabase_test.php để test.
Vi /var/www/html/database_test.php
Và copy đoạn script sau vào:
Bây giờ ta chạy nó. Trong lần đầu request thì sẽ hiện ra dòng:
Data was: some_data
Data not found in memcached
Data retrieved from MySQL and stored in memcached for next time
Nếu ta làm mới trong vòng 10s thì nó sẽ hiện thông báo sau (Nếu quá 10s thì nó sẽ lại hiển thị thông báo như ban đầu).
Data was: some_data
Caching success
Retrieved data from memcacehed
Vậy là đã hoàn thành việc test memached.
Cấu hình với vBulletin
Mở file config.php trong thư mục forum, ví dụ như:
cd/var/www/www.example.com/web/forums/includes/
vi config.php
Bạn sẽ thấy mấy dòng như thế này:
[...]
/ *
$ Config ['Datastore'] ['class'] = 'vB_Datastore_Memcached';
$ I = 0;
// Server Đầu tiên
$ I ++;
$ Config ['Misc'] ['memcacheserver'] [$ i] = '127.0.0.1';
$ Config ['Misc'] ['memcacheport'] [$ i] = 11211;
$ Config ['Misc'] ['memcachepersistent'] [$ i] = true;
$ Config ['Misc'] ['memcacheweight'] [$ i] = 1;
$ Config ['Misc'] ['memcachetimeout'] [$ i] = 1;
$ Config ['Misc'] ['memcacheretry_interval'] [$ i] = 15;
* /
[...]
Các /*…..*/ có nghĩa là phần này đã được comment lại. Hủy bỏ 2 dấu đấy đi và lưa tập tin lại.
[...]
$ Config ['Datastore'] ['class'] = 'vB_Datastore_Memcached';
$ I = 0;
// Server Đầu tiên
$ I ++;
$ Config ['Misc'] ['memcacheserver'] [$ i] = '127.0.0.1';
$ Config ['Misc'] ['memcacheport'] [$ i] = 11211;
$ Config ['Misc'] ['memcachepersistent'] [$ i] = true;
$ Config ['Misc'] ['memcacheweight'] [$ i] = 1;
$ Config ['Misc'] ['memcachetimeout'] [$ i] = 1;
$ Config ['Misc'] ['memcacheretry_interval'] [$ i] = 15;
[...]
Bây giờ ta khởi động lại dịch vụ.
#servce httpd resart
Hoặc
#/etc/init.d/apache2 restart
Chúc các bạn thành công cho việc cấu hình memcached.
Chúng ta sẽ kiểm tra hoạt động của memcached qua 2 phần test. Phần 1 ta sẽ test phần cache dữ liệu, phần 2 ta sẽ test việc cache dữ liệu từ database mysql.
Phần 1
Tạo một tập tin cache_test.php trong mục /var/www/html :
Vi /var/www/html/cache_test.php
Chép đoạn code này vào file đấy:/var
Trong lần đầu tiên tải trang này ta thấy sẽ thấy một thông báo “ No matching key found “
Sau đó ta tải lại trang, nếu memcached hoạt động thì nó sẽ hiện thông báo “Data held in memcache”.
Phần 2
Tạo dữ liệu mẫu trong MySQL để test.
Kết nối tới csdl :
mysql -u root -p
Chọn cơ sở dữ liệu
CREATE DATABASE mem_test;
USE mem_test;
Tạo một người dùng là testing với một mậu khẩu testing123 có quyền truy cập vào csdl.
GRANT ALL ON mem_test.* TO test@localhost IDENTIFIED BY 'testing123';
Bây giờ ta sẽ tạo một bảng và chèn một bản ghi vào đấy.
CREATE TABLE sample_data (id int, name varchar(30));
INSERT INTO sample_data VALUES (1, "some_data");
Bây giờ thoát khỏi cơ sở dữ liệu:
exit
Tạo một đoạn PHP Script để cache dữ liệu MySQL
Tao một file scriptndatabase_test.php để test.
Vi /var/www/html/database_test.php
Và copy đoạn script sau vào:
Bây giờ ta chạy nó. Trong lần đầu request thì sẽ hiện ra dòng:
Data was: some_data
Data not found in memcached
Data retrieved from MySQL and stored in memcached for next time
Nếu ta làm mới trong vòng 10s thì nó sẽ hiện thông báo sau (Nếu quá 10s thì nó sẽ lại hiển thị thông báo như ban đầu).
Data was: some_data
Caching success
Retrieved data from memcacehed
Vậy là đã hoàn thành việc test memached.
Cấu hình với vBulletin
Mở file config.php trong thư mục forum, ví dụ như:
cd/var/www/www.example.com/web/forums/includes/
vi config.php
Bạn sẽ thấy mấy dòng như thế này:
[...]
/ *
$ Config ['Datastore'] ['class'] = 'vB_Datastore_Memcached';
$ I = 0;
// Server Đầu tiên
$ I ++;
$ Config ['Misc'] ['memcacheserver'] [$ i] = '127.0.0.1';
$ Config ['Misc'] ['memcacheport'] [$ i] = 11211;
$ Config ['Misc'] ['memcachepersistent'] [$ i] = true;
$ Config ['Misc'] ['memcacheweight'] [$ i] = 1;
$ Config ['Misc'] ['memcachetimeout'] [$ i] = 1;
$ Config ['Misc'] ['memcacheretry_interval'] [$ i] = 15;
* /
[...]
Các /*…..*/ có nghĩa là phần này đã được comment lại. Hủy bỏ 2 dấu đấy đi và lưa tập tin lại.
[...]
$ Config ['Datastore'] ['class'] = 'vB_Datastore_Memcached';
$ I = 0;
// Server Đầu tiên
$ I ++;
$ Config ['Misc'] ['memcacheserver'] [$ i] = '127.0.0.1';
$ Config ['Misc'] ['memcacheport'] [$ i] = 11211;
$ Config ['Misc'] ['memcachepersistent'] [$ i] = true;
$ Config ['Misc'] ['memcacheweight'] [$ i] = 1;
$ Config ['Misc'] ['memcachetimeout'] [$ i] = 1;
$ Config ['Misc'] ['memcacheretry_interval'] [$ i] = 15;
[...]
Bây giờ ta khởi động lại dịch vụ.
#servce httpd resart
Hoặc
#/etc/init.d/apache2 restart
Chúc các bạn thành công cho việc cấu hình memcached.