Skip to main content

[L2MP – 2] Cài đặt Web Server LiteSpeed trên Red Hat CentOS 5 – Cài đặt PHP

[L2MP – 2] Cài đặt Web Server LiteSpeed trên Red Hat CentOS 5 – Cài đặt PHP

Cài đặt PHP Server:

Tiếp tục với phần trước đã cài xong LiteSpeed, phần này mình sẽ tiến hành cài đặt và cấu hình đơn giản PHP Server để cho LiteSpeed có thể tương tác đọc và hiểu các loại code PHP.
Mặc định ở Red Hat CentOS 5 thì PHP của nó là bản PHP 5.1 mình sẽ tiến hành cài luôn bản này nếu đơn giản gõ yum install php... tuy nhiên một số bạn lại có nhu cầu sử dụng phiên bản PHP cao hơn, ví dụ PHP 5.6. Nếu như thế các bạn phải cài thêm kho remi

Install Epel + Remi Repo:

yum -y install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

Tựu chung thì mặc định các kho này luôn tắt khi bạn dùng yum, nó chỉ bật khi bạn kêu gọi yum bật nó lên, thế nên dù có ý định xài PHP 5.4 thì bạn cũng nên cài thêm chúng để khi nào cần thì có thể xài luôn.

Cài PHP:

Sau khi bạn đã cài đặt xong kho Remi, giả sử bạn cần cài phiên bản PHP 5.4 bạn chỉ cần set biến PHPver=54 trước câu lệnh yum và sau đó yum cài theo lệnh chỉ thị:yum -y install --enablerepo=remi,remi-php$PHPver

Ví dụ sau do mình có nhu cầu chạy WordPress nên cài PHP 5.6 mới nhất hiện tại chẳng hạn và các gói mình cần là:

PHPver=56
yum -y install --enablerepo=remi,remi-php$PHPver php php-common php-cli php-bcmath php-gd php-imap php-mbstring php-mcrypt php-mysql php-pdo php-soap php-tidy php-xml php-xmlrpc 

Trong câu lệnh trên mình đã cài các gói: php là gói cài PHP và các module phụ của PHP Server như php-common php-cli php-bcmath php-gd php-imap php-mbstring php-mcrypt php-mysql php-pdo php-soap php-tidy php-xml php-xmlrpc

Tương tự bạn làm với các bản PHP mà bạn muốn cài, ví dụ PHPver=56, PHPver=55, PHPver=54 (chú ý là CentOS 5 không hỗ trợ PHP 5.1 trở xuống và các bản PHP 7.0 trở lên).

Vậy là mình cài xong PHP theo phiên bản như ý, tiếp theo mình sẽ backup lại file cấu hình mặc định của PHP Server:

mkdir -p /backupconfig/php
cp /etc/php.ini /backupconfig/php > /dev/null 2>&1
cp -r /etc/php.d  /backupconfig/php > /dev/null 2>&1

Cấu hình PHP:

Cấu hình tinh chỉnh một vài phần nhỏ cho PHP (500M là dung lượng file bạn muốn giới hạn upload lên máy chủ; Asia/Ho_Chi_Minh là khu vực múi giờ Việt Nam):

ZONE="Asia/Ho_Chi_Minh"
SIZEUPLOAD="500M"
sed -i "/^;date.timezone =/c date.timezone = $ZONE" /etc/php.ini
sed -i "/^short_open_tag/c short_open_tag = On" /etc/php.ini
sed -i '/^;default_charset/c default_charset = "UTF-8"' /etc/php.ini
sed -i "/^post_max_size/c post_max_size = $SIZEUPLOAD" /etc/php.ini
sed -i "/^upload_max_filesize/c upload_max_filesize = $SIZEUPLOAD" /etc/php.ini
sed -i "/^memory_limit/c memory_limit = $SIZEUPLOAD" /etc/php.ini
sed -i "/^max_execution_time/c max_execution_time = 5000" /etc/php.ini

Bạn có thể thấy mình đã dùng 2 biến ZONE="Asia/Ho_Chi_Minh"; SIZEUPLOAD="500M" trước khi thực hiện sửa file php.ini giống như mình đã dùng với biến PHPver=70 việc đặt biến thế này rất quen với các bạn có khả năng viết shell vì rất tiện, bạn hãy thử tham khảo loạt bài hướng dẫn lập trình shell ở đây của mình

Kiểm tra lại PHP:

[[email protected] ~]# php -v

PHP 5.6.30 (cli) (built: Jan 19 2017 08:18:25)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

Cài đặt PHP LSAPI (lsphp):

Có một đặc điểm mà bạn cần nắm được đó là trong mô hình L2MP sự khác biệt giữa nó với LAMP là ở chổ LiteSpeed liên lạc với PHP Server thông qua một giao thức riêng được thiết kế cho LiteSpeed và PHP có tên là PHP LSAPI, đó là một phần bổ trợ cho PHP Server phục vụ xử lý các yêu cầu truy vấn đến từ các đối tượng cần xử lý mã PHP thông qua lệnh lsphp chứ không phải php nữa. (Ngược lại Apache thì có module gắn sẳn cho Apache liên lạc trực tiếp với PHP Server)

[L2MP - 2] Cài đặt Web Server LiteSpeed trên Red Hat CentOS 5 – Cài đặt PHP

Vì vậy để LiteSpeed có thể liên lạc với PHP Server bạn cần cài thêm module phụ PHP LSAPI này cho PHP Server, câu lệnh cài đơn giản như sau:

PHPver=56
yum -y install --enablerepo=remi,remi-php$PHPver php-litespeed

Kiểm tra lại:

[[email protected] ~]# /usr/bin/lsphp -v

PHP 5.6.30 (litespeed) (built: Jan 19 2017 08:18:56)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

Cài đặt Cache:

Chú ý rằng phần tiếp sau này đây chỉ là một tùy chọn, bạn có nhu cầu đối với việc Web Caching thì mới cài còn không thì cũng không cần phải cài. Cache là một việc tương đối quan trọng với vấn đề tải site tốc độ cao, như bạn đã biết PHP sẽ xử lý những mã PHP mà Web Server như LiteSpeed gửi đến và trả kết quả lại cho chúng để chúng gửi đến người dùng, tuy nhiên có một việc nảy sinh đó là chẳng lẽ 100 người dùng cùng truy vấn một mã PHP lại phải bắt PHP Server phải xử lý cả trăm lần rồi gửi trả trăm lần ấy, mọi việc sẽ đơn giản hơn nếu có cache, PHP đối với một mã nào đó sẽ chỉ xử lý một lần thôi và giữ kết quả lại đâu đó (RAM hoặc DISK) khi có yêu cầu lặp lại xử lý file mã PHP kia PHP Server đơn giản chỉ cần gửi lại kết quả đã xử lý trước đó trong cache, đỡ phải tốn tài nguyên xử lý lại.

Đối với các phiên bản PHP về sau này đã có hỗ trợ Cache rất dễ dàng với module mở rộng có tên là Zend Opcache tức php-opcache. Để có được module này đơn giản bạn chỉ cần cài thêm thông qua yum thôi, câu lệnh như sau (chú ý bạn phải cài epelremi như phía trên có hướng dẫn):

PHPver=56
yum -y install --enablerepo=remi,remi-php$PHPver php-opcache

Kiểm tra lại qua câu lệnh php -m:

[[email protected] ~]# php -m
...
[Zend Modules]
Zend OPcache

Vậy là xong, bạn đã cài đặt thành công Zend Opcache cho PHP Server. Mặc định Zend Opcache điều chỉnh dung lượng chứa cache qua file cấu hình /etc/php.d/opcache.ini bạn có thể vào đó sửa lại theo nhu cầu của bạn:

nano /etc/php.d/opcache.ini

; The OPcache shared memory storage size.
opcache.memory_consumption=128
; Only numbers between 200 and 100000 are allowed.
opcache.max_accelerated_files=4000

opcache.memory_consumption là quy định số MB RAM bạn giới hạn cho Zend Opcache caching
opcache.max_accelerated_files là quy định số file bạn giới hạn cho Zend Opcache caching

Theo mình thấy trừ khi bạn có một máy chủ cực kỳ dư dả về phần cứng thì có thể tinh chỉnh theo ý bạn muốn còn đa số các trường hợp thì để mặc định là đã ổn rồi. Vậy là xong phần Zend Opcache tiếp theo mình sẽ nói luôn về Memcached, bởi vì Zend Opcache chỉ cache được các xử lý PHP vậy còn những kết quả khác như database hoặc những dạng khác nữa thì sao?

[L2MP - 2] Cài đặt Web Server LiteSpeed trên Red Hat CentOS 5 – Cài đặt PHP

Câu trả lời chính là Memcached. Nó là một dịch vụ chạy riêng có thể cache cái gì của Web site cũng được với yêu cầu Web site đó có hỗ trợ Memcached và PHP Server đó có hỗ trợ Memcached.

Việc Web site bạn có hỗ trợ Memcached không thì mình không biết tuy nhiên PHP Server của chúng ta hoàn toàn có khả năng hỗ trợ Memcached. Bạn chỉ cần cài thêm module Memcached cho PHP Server là nó sẽ có khả năng kết nối đến dịch vụ Memcached đang chạy để cho Web site bạn có thể truy xuất sử dụng.

Cài dịch vụ Memcached và cả module Memcached cho PHP Server (chú ý bạn phải cài epelremi như phía trên có hướng dẫn):

PHPver=56
yum -y install --enablerepo=remi,remi-php$PHPver memcached php-pecl-memcached php-pecl-memcache php-memcached

memcached là gói cài dịch vụ Memcached
php-pecl-memcached php-pecl-memcache php-memcached là các module của PHP Server để kết nối tới dịch vụ Memcached

Kiểm tra module Memcached của PHP Server:

[[email protected] ~]# php -m|grep mem

memcache
memcached

Chạy dịch vụ Memcached:

service memcached start
chkconfig memcached on

Mặc định Memcached cũng dùng một số lượng RAM nhất định để caching, bạn có thể tùy chỉnh nó ở file /etc/sysconfig/memcached:

nano /etc/sysconfig/memcached

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

CACHESIZE là MB RAM giới hạn của dịch vụ Memcached

Nếu có chỉnh thì bạn nhớ restart dịch vụ Memcached để nhận cấu hình:

service memcached restart

Thấy memcached lắng nghe ở port 11211 là thành công:

[[email protected] ~]# netstat -lntup|grep mem

tcp        0      0 0.0.0.0:11211           0.0.0.0:*               LISTEN      12020/memcached

Cài đặt một số ứng dụng mở rộng khác cho PHP Server:

Cài thêm ImageMagick; ZendFramework; ionCube Loader; Zend Guard Loader... nói về PHP Server với những thành phần ứng dụng bổ trợ của bên thứ 3 viết cho nó thì nhiều vô số kể thế nên mình không thể bê hết chúng vào luôn trong phần cài PHP Server của L2MP này được (vì đâu phải bạn nào cũng có nhu cầu cần cài những thành phần kia), mình xin hẹn các bạn ở những bài riêng lẽ nói về các thành phần thứ 3 kia và tìm cách tích hợp nó vào cho PHP Server:
Hướng dẫn cài ImageMagick cho PHP
Hướng dẫn cài Zend Framework cho PHP
Hướng dẫn cài ionCube Loader cho PHP
Hướng dẫn cài Zend Guard Loader cho PHP

Còn bây giờ nếu PHP Server của bạn đã thực sự chạy tốt bạn hãy đến với phần tiếp theo là Phần 3 hướng dẫn cài Database Server MySQL cho L2MP:

Cám ơn bạn đã đọc hết bài viết, hãy bấm chia sẻ lên mạng xã hội để nhớ rằng bạn đã từng nắm được kiến thức do bài viết này cung cấp rồi:
Share

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Share