PHP 7 được phát hành vào ngày 3 tháng 12 năm 2015 đã hứa hẹn những cải tiến đáng kể về tốc độ cùng với các tính năng mới như gợi ý kiểu vô hướng. Trong bài viết này, Vietnix sẽ hướng dẫn cách nâng cấp nhanh web server Apache hoặc web server Nginx lên PHP 7 trên CentOS 7.
Yêu cầu để nâng cấp lên PHP 7 trên CentOS 7
Để có thể thực hiện theo hướng dẫn này, bạn cần đáp ứng những yêu cầu sau:
- Chạy PHP 5.x trên CentOS 7, sử dụng
mod_php
kết hợp với Apache hoặc là PHP-FPM kết hợp với Nginx. - Sở hữu user non-root được cấp quyền
sudo
.
Các bước nâng cấp PHP 7 trên CentOS 7
Để nâng cấp PHP 7 trên CentOS 7 nhanh chóng, bạn có thể thực hiện theo những bước sau:
Bước 1 – Tham gia cộng đồng IUS Project Repository
Vì bản phân phối của PHP 7.x chưa được xuất hiện trong repository chính thức nên bạn sẽ phải dựa vào bên thứ 3 để tải xuống phiên bản này. Có rất nhiều repository cung cấp file PHP 7 RPM. Trong bài hướng dẫn này sẽ sử dụng file của IUS repository.
IUS cung cấp script cài đặt để đăng ký vào repository của họ và nhập các GPG key được liên kết. Hãy đảm bảo rằng bạn đang ở trong directory chính của mình và dùng lệnh sau để truy xuất script:
cd ~
curl 'https://setup.ius.io/' -o setup-ius.sh
Chạy script:
sudo bash setup-ius.sh
Tiếp theo, tùy vào cách chạy PHP 5.x trên CentOS 7 là sử dụng mod_php
kết hợp với Apache hay là PHP-FPM kết hợp với Nginx mà bạn sẽ chuyển đến phần tiếp theo của bài viết. Trong đó, bước 2 sẽ hướng dẫn nâng cấp trên CentOS 7 sử dụng mod_php
kết hợp với Apache, còn bước 3 là PHP-FPM kết hợp với Nginx.
Bước 2 – Nâng cấp mod_php
kết hợp Apache
Phần này nâng cấp PHP cho hệ thống sử dụng Apache làm web server và mod_php
để thực thi mã PHP. Nếu bạn đang chạy Nginx và PHP-FPM, hãy chuyển sang phần tiếp theo.
Bắt đầu bằng cách xóa các package PHP hiện có. Nhấn y và Enter để tiếp tục khi được yêu cầu:
sudo yum remove php-cli mod_php php-common
Nhấn y và Enter một lần nữa khi được thông báo để cài đặt package PHP 7 mới từ IUS:
sudo yum install mod_php70u php70u-cli php70u-mysqlnd
Cuối cùng, khởi động lại Apache để load bản mod_php
mới:
sudo apachectl restart
Trạng thái của Apache được quản lý bởi httpd systemd unit
, để kiểm tra, dùng systemctl
:
systemctl status httpd
Để thực hiện quá trình nâng cấp PHP 7 trên CentOS 7 một cách suôn sẻ và hiệu quả, bạn cần phải sử dụng một máy chủ có khả năng mở rộng linh hoạt và đầy đủ quyền quản trị. VPS Server có thể là sự lựa chọn tốt nhất cho bạn với các ưu điểm sau:
- Tính linh hoạt cao: Với VPS Vietnix, bạn có thể dễ dàng tùy chỉnh cấu hình máy chủ phù hợp với yêu cầu của hệ điều hành, ứng dụng cần cài đặt. Điều này giúp cho quá trình nâng cấp PHP 7 trở nên dễ dàng hơn bao giờ hết.
- Độ ổn định cao, khả năng chịu tải lớn giúp mọi hoạt động trên ứng dụng, hệ thống luôn mượt mà với độ trễ ở mức tối thiểu.
- Hỗ trợ 24/7: Đội ngũ kỹ thuật của Vietnix sẵn sàng hỗ trợ bạn bất kỳ lúc nào trong quá trình sử dụng, giúp bạn giải quyết mọi vấn đề phát sinh trong quá trình nâng cấp PHP 7.
- Được quản trị độc quyền: Bạn sẽ được cung cấp đầy đủ quyền quản trị máy chủ, giúp cho việc cấu hình và cài đặt các ứng dụng trên hệ thống nhanh chóng.
Liên hệ để được tư vấn chi tiết gói cấu hình VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp, VPS NVMe phù hợp theo nhu cầu của bạn.
Bước 3 – Nâng cấp PHP-FPM kết hợp Nginx
Bắt đầu bằng cách xóa các package PHP hiện có. Nhấn y và Enter để tiếp tục khi được yêu cầu:
sudo yum remove php-fpm php-cli php-common
Nhấn y và Enter một lần nữa khi được thông báo để cài đặt package PHP 7 mới từ IUS:
sudo yum install php70u-fpm-nginx php70u-cli php70u-mysqlnd
Khi cài đặt hoàn thành, bạn sẽ cần thực hiện một số thay đổi về cấu hình cho PHP-FPM và Nginx. Khi cấu hình, PHP-FPM sẽ nghe các kết nối trên socket TCP cục bộ, còn Nginx thì cần một socket miền Unix ánh xạ tới một đường dẫn trên file system.
PHP-FPM có thể xử lý nhiều pools tiến trình con. Như đã cấu hình, PHP-FPM cung cấp một pool duy nhất có tên www, được xác định trong /etc/php-fpm.d/www.conf
. Mở file này bằng nano
(hoặc text editor bất kỳ):
sudo nano /etc/php-fpm.d/www.conf
Tìm block chứa listen = 127.0.0.1:9000
, lệnh này yêu cầu PHP-FPM nghe địa chỉ loopback tại cổng 9000. Comment dòng này bằng dấu chấm phẩy và uncomment listen = /run/php-fpm/www.sock
tương tự như ở bên dưới:
; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on
; a specific port;
; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
; a specific port;
; 'port' - to listen on a TCP socket to all addresses
; (IPv6 and IPv4-mapped) on a specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
;listen = 127.0.0.1:9000
; WARNING: If you switch to a unix socket, you have to grant your webserver user
; access to that socket by setting listen.acl_users to the webserver user.
listen = /run/php-fpm/www.sock
Tiếp theo tìm block chứa giá trị listen.acl_users
, và uncomment listen.acl_users = nginx
:
; When POSIX Access Control Lists are supported you can set them using
; these options, value is a comma separated list of user/group names.
; When set, listen.owner and listen.group are ignored
;listen.acl_users = apache,nginx
;listen.acl_users = apache
listen.acl_users = nginx
;listen.acl_groups =
Thoát và lưu file. Trong nano
, bạn có thể thực hiện việc này bằng cách nhấn Ctrl-X, sau đó nhấn y và Enter để xác nhận tên file cần ghi đè.
Giờ phải đảm bảo rằng Nginx đang sử dụng đúng đường dẫn socket để xử lý các file PHP. Bắt đầu bằng cách mở /etc/nginx/conf.d/default.conf
:
sudo nano /etc/nginx/conf.d/php-fpm.conf
php-fpm.conf
xác định module upstream, có thể được tham chiếu bởi các directive cấu hình Nginx khác. Bên trong block upstream, sử dụng dấu #
để comment server 127.0.0.1:9000;
và uncomment server unix:/run/php-fpm/www.sock;
:
# PHP-FPM FastCGI server
# network or unix domain socket configuration
upstream php-fpm {
#server 127.0.0.1:9000;
server unix:/run/php-fpm/www.sock;
}
Thoát và lưu file, sau đó mở /etc/nginx/conf.d/default.conf
:
sudo nano /etc/nginx/conf.d/default.conf
Tìm block bắt đầu bằng location ~ \.php$ {
. Trong block này, hãy tìm directive fastcgi_pass
. Comment hoặc xóa dòng này và thay thế bằng fastcgi_pass php-fpm
, dòng này sẽ tham chiếu upstream được xác định trong php-fpm.conf
:
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_pass php-fpm;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Thoát và lưu file, sau đó khởi động lại PHP-FPM và Nginx để cấu hình mới được áp dụng:
sudo systemctl restart php-fpm
sudo systemctl restart nginx
Để kiểm tra trạng thái của từng thiết bị, dùng systemctl
:
systemctl status php-fpm
systemctl status nginx
Bước 4 – Kiểm tra PHP
Sau khi cấu hình xong web server và cài đặt các package mới, để xác minh xem PHP có đang hoạt động hay không bạn chạy lệnh:
php -v
Output
PHP 7.0.1 (cli) (built: Dec 18 2015 16:35:26) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
Bạn cũng có thể tạo file test trong document root của web server. Mặc dù vị trí của nó phụ thuộc vào cấu hình server của bạn nhưng tài liệu gốc thường được cài đặt dưới dạng các thư mục sau:
/var/www/html
/var/www/
/usr/share/nginx/html
Sử dụng nano
, mở một file mới có tên info.php
trong document root. Theo mặc định trên Apache, đây sẽ là:
sudo nano /var/www/html/info.php
Nếu là trên Nginx:
sudo nano /usr/share/nginx/html/info.php
Dán code sau:
info.php
<?php
phpinfo();
Thoát khỏi editor, lưu info.php
. Bây giờ, hãy truy cập vào địa chỉ sau trong trình duyệt của bạn:
http://server_domain_name_or_IP/info.php
Bạn sẽ thấy trang thông tin PHP 7 có liệt kê phiên bản đang chạy và cấu hình. Sau khi đã kiểm tra kỹ, bạn nên xóa info.php
để đảm bảo an toàn:
sudo rm /var/www/html/info.php
Với hơn 10 năm kinh nghiệm hoạt động trong lĩnh vực cung cấp giải pháp hosting, VPS, tên miền, máy chủ, Firewall Anti DDoS,.. Vietnix đã phục vụ cho hơn 50.000 khách hàng cá nhân và doanh nghiệp. Trong đó bao gồm cả các đối tác lớn như GTV, UB Group, iVIVU, Vietnamworks, SEOSONA, SAGO Media,…
Tổng số lượng dịch vụ được kích hoạt lên tới hơn 100.000. Đồng thời, tỷ lệ khách hàng giới thiệu dịch vụ sau khi sử dụng là 97%, cho thấy chất lượng và sự hài lòng đối với Vietnix. Với sự phát triển bền vững và những nỗ lực không ngừng nghỉ, Vietnix sẽ tiếp tục là một đối tác đáng tin cậy trong việc cung cấp giải pháp hosting, VPS, tên miền, máy chủ, Firewall Anti DDoS,… hàng đầu cho khách hàng tại Việt Nam và trên toàn thế giới.
Mọi vấn đề thắc mắc cần tư vấn, quý khách vui lòng liên hệ:
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
- Hotline: 1800 1093 – 07 088 44444
- Email: sales@vietnix.com.vn
Lời kết
Trên đây là bài hướng dẫn nâng cấp lên PHP 7 trên CentOS 7. Nếu thấy bài viết này hữu ích, đừng quên chia sẻ cho nhiều người biết hơn. Ngoài ra nếu trong quá trình nâng cấp gặp khó khăn, hãy để lại bình luận bên dưới để được hỗ trợ nhanh chóng nhé.