1. Giới thiệu
Trong bài hướng dẫn này, chúng ta sẽ cài đặt LEMP stack với PHP phiên bản 7.4 trên server chạy hệ điều hành CentOS 7 và sử dụng MariaDB.
LEMP stack là một nhóm các phần mềm mã nguồn mở được cài chung với nhau cho phép server có thể host websites và web apps. LEMP là kết hợp của các chữ cái đầu của hệ điều hành Linux, ENginx web server, MySQL-based database và PHP.
2. Cài đặt Nginx
Trước khi cài đặt Nginx phiên bản mới nhất, chúng ta cần cài đặt EPEL repository bao gồm các ứng dụng hỗ trợ dành cho CentOS 7.
Để thêm EPEL repository cho CentOS 7 ta chạy câu lệnh sau:
sudo yum install epel-release
Sau khi EPEL repository đã được cài đặt, cài đặt Nginx sử dụng lệnh sau:
yum install nginx
Sau khi cài đặt hoàn tất, chạy Nginx với câu lệnh:
systemctl start nginx
Ta có thể kiểm tra nginx đã chạy hay chưa bằng câu lệnh:
systemctl status nginx
Hoặc ta có thể kiểm tra bằng cách truy cập đường dẫn sau trên trình duyệt, thay “IP-hoac-domain” bằng IP hoặc domain của bạn:
http://IP-hoac-domain/
Đây là giao diện Nginx mặc định của Nginx web server trên CentOS 7, nếu bạn thấy được trang này thì Nginx đã được cài đặt đúng.
Để Nginx tự chạy khi boot, chạy câu lệnh sau:
systemctl enable nginx
3. Cài đặt MariaDB
Sau khi web server đã hoạt động, kế tiếp ta cần cài đặt MariaDB. Ta chạy lệnh sau để cài đặt MariaDB:
yum install mariadb-server mariadb
Sau khi cài đặt hoàn tất ta chạy MariaDB bằng dòng lệnh sau:
systemctl start mariadb
Sau khi MariaDB đã chạy, ta chạy đoạn script sau để xóa một số giá trị mặc định có thế chặn quyền truy cập của người dùng đến với cơ sở dữ liệu
mysql_secure_installation
Đầu tiên bạn cần thiết lập password cho MariaDB, nhấn enter sau đó chọn Y, các mục phía sau nhấn enter để sử dụng giá trị mặc định (Y) hoặc có thể chọn n tùy mục đích sử dụng:
Để chạy MariaDB tự động khi boot ta chạy dòng lệnh sau:
systemctl enable mariadb
4. Cài đặt PHP
Phiên bản sẵn có của PHP trên server CentOS 7 hiện tại đã cũ, vì thế ta cần cài đặt gói repository của bên thứ 3 để cài đặt PHP 7+ trên CentOS 7. Remi là gói repository cung cấp phiên bản PHP mới nhất trên server CentOS.
Để cài đặt Remi repository trên CentOS 7 ta chạy lệnh sau:
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Sau khi cài Remi repository, để kiểm tra các phiên bản PHP 7+ Remi đang có ta chạy lệnh sau:
yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64
Kết quả thu được như sau:
Như đã nói ở trên, trong bài hướng dẫn này ta sẽ cài đặt PHP 7.4, để chọn gói PHP phiên bản 7.4 từ Remi repository ta chạy lệnh sau:
yum-config-manager --enable remi-php74
Sau khi chạy lệnh trên ta có thể cài đặt PHP 7.4 với lệnh sau:
yum install php php-mysqlnd php-fpm
Sau khi cài đặt PHP ta kiểm tra lại phiên bản đã đúng hay chưa bằng lệnh:
php --version
PHP đã hoạt động. Kế đến ta cần điều chỉnh một sốt thông số mặc định để PHP có thể kết hợp với Nginx. Ta có thể dùng các công cụ chỉnh sửa file như vi/vim/nano, trong bài viết sử dụng nano vì nano dễ sử dụng.
Mở file /etc/php-fpm.d/www.conf:
nano /etc/php-fpm.d/www.conf
Thay thế giá trị mặc định apache trong “user = apache” và “group = apache” bằng nginx.
Thay thế giá trị “listen = /var/run/php-fpm/php-fpm.sock;” và các giá trị “listen.owner = nginx”, “listen.group = nginx”, “listen.mode = 0660”
Sau khi điều chỉnh các giá trị trên ta lưu lại và chạy php-fpm bằng lệnh sau:
systemctl start php-fpm
5. Cấu hình Nginx để chạy PHP
Ta cần tạo một file conf riêng cho PHP, file này sẽ chạy thay thế cho /etc/nginx/nginx.conf mặc định
Đầu tiên ta mở một file mới tại đường dẫn /etc/nginx/conf.d:
nano /etc/nginx/conf.d/default.conf
Copy đoạn sau vào file vừa mới mở, thay “domain_or_IP” bằng domain hoặc IP của bạn sau đó lưu lại:
server {
listen 80;
server_name domain_or_IP;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Restart Nginx để áp dụng những thay đổi:
systemctl restart nginx
6. Kiểm tra PHP trên web server
Trước tiên ta cần cấp quyền cho user, thay “user” và “group” phù hợp với bạn:
chown -R user.group /usr/share/nginx/html/
Tiếp tục ta tạo một trang PHP để test tại đường dẫn /usr/share/nginx/html:
nano /usr/share/nginx/html/info.php
Ta copy đoạn code sau vào file vừa mới tạo sau đó lưu lại:
<?php
phpinfo();
phpinfo(INFO_MODULES);
?>
Bây giờ ta có thể kiểm tra web server có xử lý được thông tin được tạo ra bằng PHP script không bằng cách truy cập vào đường dẫn sau:
http://domain_or_IP/info.php
Nếu hoạt động bạn sẽ thấy trang tương tự như sau:
7. Tổng kết
Trong bài hướng dẫn này, chúng ta đã xây dựng được Nginx web server và PHP phiên bản mới nhất. Ta đã cấu hình Nginx để xử lý được các yêu cầu từ PHP thông qua php-fpm, và ta cũng đã cấu hình cơ sở dữ liệu MariaDB để lưu trữ dữ liệu của website.
Xem thêm nhiều bài hướng dẫn khác tại: https://howto.nsupport.asia
Tham khảo thêm nhiều dịch vụ khác tại: https://vhost.vn
Leave A Comment?