Giới thiệu APC - PHP Opcode Caching

Giới thiệu APC - PHP Opcode Caching

Giới thiệu APC - PHP Opcode CachingHôm nay, mình giới thiệu tới các bạn một kỹ thuật rất phổ biến khi làm việc với PHP nhưng cũng còn nhiều người chưa biết. Đã là dân lập trình, hẳn không ai trong chúng ta chưa từng nghe qua 2 cụm từ: "Biên dịch" và "Thông dịch". Và hầu như ai cũng biết là các chương trình dạng "biên dịch" sẽ chạy nhanh hơn so với các chương trình dạng "thông dịch", nhưng tại sao nó lại như vậy và có cách nào để cải thiện vấn đề này không. Bài viết sau, nhằm mục đích chia sẽ tới mọi người rõ hơn vì sao "thông dịch" chậm hơn "biên dịch" và 1 giải pháp giúp cải thiện đó là APC - Alternative PHP Caching

Hình 1: Object PHP Lifecycle. Như chúng ta thấy trong hình trên, mỗi request đến file PHP sẽ được tiến hành xử lý thông qua 4 bước trước khi trả kết quả về cho người dùng. Quá trình này là cần thiết cho việc thực thi lệnh lần đầu, nhưng thực sự không cần thiết cho những lần gọi sau đó, vì quá trình vẫn thực hiện đầy đủ 4 bước, dù file PHP không hề có sự thay đổi. Điều này chính là nguyên nhân chính dẫn tới việc "Thông dịch" chậm hơn nhiều so với "Biên dịch".

Hình 2: Object PHP Lifecycle after Caching. Sau khi được cache lại, quá trình thực hiện chỉ còn thông qua 2 bước là quét dữ liệu từ cache và thực thi lệnh. Như vậy nhanh hơn rất nhiều so với trước đó. Và theo đó, trong lần thực thi đầu tiên, ngoài việc chạy 4 bước như trên, thì code sẽ được lưu thêm vào cache để tăng tốc cho lần sau. Cái này gọi là lỗ trước, lời sau, mà lần sau thì lời to mà ^^

APC - Alternative PHP Caching - Opcode Caching Tool

1 - Giới thiệu:

APC là một FREE PHP Extension, là một công cụ hỗ trợ opcode caching rất đơn giản và cũng không kém phần hiệu quả. Ngoài ra, APC còn có thể dùng cho việc data caching.

2 - Cài đặt

APC có phiên bản dành cho Windows lẫn cho Linux. Tuy nhiên, vì blog của mình chủ yếu nói trên Linux, nên mình cũng chỉ tập trung cho cài đặt cho Linux.

Bạn thực hiện lần lượt các câu lệnh sau để tiến hành cài đặt APC vào LAMP Server

yum install php-pear
yum install httpd-devel
yum install pcre-devel
cd /usr/src
wget http://pecl.php.net/get/APC-3.1.9.tgz
tar -xvzf APC-3.1.9.tgz
cd APC-3.1.9
phpize
./configure --enable-apc --enable-apc-mmap --with-apxs --with-php-config=/usr/bin/php-config
make
make install

3 - Cấu hình APC cho PHP

gedit /etc/php.ini

Thêm các dòng sau vào cuối file

[APC]
extension = apc.so
apc.enabled = 1
apc.shm_size = 32
apc.ttl = 7200
apc.user_ttl = 7200

Sau đó restart lại Apache

/etc/init.d/httpd restart

Vậy là xong, quá trình cài đặt cho APC Opcode Caching hoàn tất.

4 - APC Admin

Copy file apc.php từ thư mục gốc vào thư mục chạy web, ví dụ như sau:

mkdir /var/www/html/apcadmin
cp apc.php /var/www/html/apcadmin/index.php
gedit /var/www/html/apcadmin/index.php

Sửa dòng sau:

defaults('ADMIN_PASSWORD','password');

Thành

defaults('ADMIN_PASSWORD','123456'); // Có thể thay bằng password khác, nhưng phải khác giá trị ban đầu

Sau đó vào trình duyệt, nhập vào url: http://localhost/apcadmin để vào trang admin của APC

5 - Disable APC cho PhpMyAdmin

gedit /etc/httpd/conf/httpd.conf

Copy dán đoạn sau vào cuối file

<Directory /var/www/html/phpmyadmin>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride None
       Order allow,deny
       allow from all
       php_flag apc.cache_by_default Off
</Directory>

Sau đó restart lại Apache server

/etc/init.d/httpd restart

Như vậy là hoàn tất mọi thao tác cài đặt, cấu hình APC cho PHP để opcode caching. Thao tác caching sẽ tự động mà chúng ta không cần tác động gì thêm.

Hy vọng bài viết giúp mọi người thành công

Theo Minh Quang Trần 

Blog:   http://tmquang6805.blogspot.com

Bạn thấy bài viết này như thế nào?: 
No votes yet
Ảnh của Khanh Hoang

Khanh Hoang - Kenn

Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Setup Xdebug, Acquia Dev Desktop, and Netbeans in Windows 7

Cấu hình Xdebug, Acquia Dev Desktop, và Netbeans trên Windows 7

I usually use linux, but for various reasons I've needed to use windows lately and so I figured I would setup Xdebug, Acquia Dev Desktop, and Netbeans in Windows.

Việc nhắn tin facebook và kèm thêm những icon ngộ nghĩnh cảm xúc trong facebook

Cài đặt icon Facebook chat đẹp cực kì đơn giản

Việc nhắn tin facebook và kèm thêm những icon ngộ nghĩnh cảm xúc trong facebook

Nokia Lumia 900

Giá Lumia 900 ở Mỹ giảm xuống một nửa

Bắt đầu từ hôm qua (15/7), giá bán Lumia 900 của nhà mạng AT&T đã giảm xuống còn 49,99 USD kèm hợp đồng 2 năm, bằng một nửa so với mức 99,99 USD khi họ bán ra smartphone này vào tháng 4.

Công ty diệt chuột T&C

 

Diet con trung