Tăng tốc PHP với Zend OpCache trên Debian/Ubuntu

Zend OpCache là một extension cho PHP, cung cấp khả năng thực thi các file PHP nhanh hơn rất nhiều lần bằng cách lưu trữ các mã lệnh PHP đã dịch (pre-compiled) trong bộ nhớ chia sẻ (shared memory).

Cảnh báo!

Các hướng dẫn ở bài viết này được thực hiện trên Ubuntu, và sẽ chạy tốt trên Debian. Nếu không phải Ubuntu/Debian, bạn có thể cần phải điều chỉnh lại một số thông số về đường dẫn. Nếu bạn chạy PHP trên Windows, lời khuyên của tôi là: Hãy chuyển sang Linux càng sớm càng tốt!!!

Đối với bản PHP 5.5, OpCache đã được tích hợp sẵn (built-in), do đó, nếu bạn đang sử dụng PHP 5.5 thì bạn có thể bỏ qua phần cài đặt và xem phần Cấu hình. Trên server của tôi đang sử dụng PHP 5.4 và tôi muốn tận dụng ưu thế của OpCache nên tôi đã cài đặt thêm extension này.

Cài đặt

Lưu ý: Kiểm tra phiên bản mới nhất của OpCache tại đây. Phiên bản mới nhất vào thời điểm tôi viết bài này là 7.0.2 (beta).
# Cài đặt "pecl" thông qua php-pear
$ sudo apt-get install -y php-pear

# Cài đặt các thư viện phụ thuộc (build dependencies)
$ sudo apt-get install -y build-essential php5-dev

# Cài đặt Zend OpCache
$ sudo pecl install zendopcache-7.0.2

Cấu hình

Nào, hãy bắt tay vào việc cấu hình sau khi việc cài đặt đã hoàn tất. Ubuntu/Debian có quy ước về nơi lưu trữ các tập tin cấu hình cho PHP (*.conf) tại đây /etc/php5/conf.d, (các tập tin trong đó được link từ /etc/php5/mods-available). Dưới đây là cách cấu hình mà tôi đã thiết lập trên server của tôi

Đầu tiên, tôi tìm vị trí của tập tin opcache.so (module OpCache mở rộng cho PHP để có thể chức năng của Zend OpCache):

$ sudo find / -name 'opcache.so'
/usr/lib/php5/20121212/opcache.so # kết quả tìm kiếm trên server của tôi với php 5.4

Sau khi tìm được tập tin opcache.so, tôi bổ sung nó vào tập tin cấu hình như sau:

# Tạo mới và thêm nội dung cho tập tin opcache.ini:
$ sudo nano /etc/php5/mods-available/opcache.ini
; priority=20
zend_extension=/usr/lib/php5/20121212/opcache.so # đường dẫn đến file opcache.ini
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
Lưu ý: Trong trường hợp ứng dụng PHP của bạn chỉ sử dụng các chú thích cho việc/trong quá trình phát triển (development) chứ không sử dụng lúc chạy thực tế (production), bạn có thể thêm chỉ lệnh opcache.save_comments=0 vào tập tin opcache.ini bên trên.

Để PHP có thể đọc được tập tin opcache.ini bên trên, ta cần tạo một symbolic link đến nó từ /etc/php5/mods-available như sau:

$ sudo ln -s /etc/php5/mods-available/opcache.ini /etc/php5/mods-available/opcache.ini 20-opcache.ini

Đến đây, mọi việc đã hoàn tất. Việc cần làm tiếp theo là khởi động lại Apache nếu bạn đang chạy PHP với Apache

$ sudo service apache2 restart
# Hoặc: /etc/init.d/apache2 restart

Hoặc khởi động lại PHP-FPM nếu đang chạy PHP với chế độ FPM

$ sudo service php5-fpm restart
# Hoặc: /etc/init.d/php5-fpm restart

Kiểm tra xem việc cài đặt đã thành công hay chưa

$ php -v
PHP 5.4.23 (cli) (built: Dec 13 2013 10:32:38) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.2, Copyright (c) 1999-2013, by Zend Technologies

Làm sạch sau khi cài đặt

$ sudo apt-get remove --purge build-essential php5-dev

Đến đây, mọi việc đã hoàn tất. Hãy tận hưởng sự cải thiện tốc độ mà OpCache mới mang lại cho bạn. Mọi vấn đề, thắc mắc hay góp ý đều được hoan nghênh!