Hướng dẫn cài đặt LEMP trên CentOS 7 & CentOS 8
Hướng dẫn cài đặt LEMP (Linux Nginx, MariaDB, PHP-FPM, PhpMyAdmin) trên CentOS 7 & 8 làm hệ quản trị cơ sở dữ liệu.
LEMP là gì?
LEMP stack là một tập hợp các công cụ phần mềm mã nguồn mở được cài đặt cùng nhau để hỗ trợ server quản lý website động và các ứng dụng liên quan. LEMP là viết tắt của các chữ cái đầu trong Linux - Nginx (phát âm là engine X), MariaDB/MySQL và PHP.
Đây là loại web server phổ biến nhất hiện nay. LEMP cũng tương tự như LAMP server, ngoại trừ việc web server nền tảng được giám sát bằng Nginx thay vì Apache.
Điều kiện cài đặt LEMP trên CentOS 7 - 8
Để cài đặt serie này tốt, bạn nên chuẩn bị một VPS có cấu hình:
- CentOS 7 hoặc 8.
- VPS chưa cài đặt gì cả.
- Tài khoản root của VPS.
Cài đặt LEMP trên CentOS
Sau khi đã chuẩn bị xong, cùng tiến hành cài đặt theo các bước dưới đây:
1. Cài đặt Nginx Web Server
Nginx là một phần mềm mã nguồn mở và nó được dùng như một web server độc lập. So với Apache thì Nginx có thể xử lý một lượng lớn các kết nối đồng thời và có dung lượng bộ nhớ nhỏ hơn trên mỗi kết nối.
Trước khi cài đặt Nginx thì bạn phải được đăng nhập với tư cách là người dùng có quyền sudo và không có Apache hay bất kỳ chương trình nào khác chạy trên cổng 80 hoặc 443.
Bạn hãy xem chi tiết cài đặt Nginx: Hướng dẫn cài đặt Nginx trên CentOS 7 & 8
2. Cài đặt MariaDB Database Server
MariaDB là hệ thống quản lý cơ sở dữ liệu mã nguồn mở. Để cài đặt MariaDB bạn hãy theo dõi bài viết Hướng dẫn cài đặt và bảo mật MariaDB trên CentOS 7 và 8 đã có trên blog.kdata.vn.
3. Cài đặt PHP
Sau khi đã cài đặt Nginx, MariaDB thì tiếp theo đây, chúng ta sẽ cùng cài đặt tiếp PHP.
Trước khi bắt đầu cài đặt, bạn cần đăng nhập vào máy chủ của mình bằng một tài khoản (user account) có quyền sudo hoặc root user. Nếu không có sudo user cho hệ thống của mình thì có thể khởi tạo.
4. Cấu hình Nginx để xử lý PHP Pages
Sau khi cài đặt Nginx và PHP thì giờ ta chỉ cần thay đổi cấu hình để lệnh cho Nginx sử dụng bộ xử lý PHP thao tác với nội dung động.
Thao tác trên server block level, mở file cấu hình server block Nginx mặc định lên:
sudo vi /etc/nginx/conf.d/default.conf
File sẽ thế này (những ghi chú đã bị lược bỏ):
/etc/nginx/conf.d/default.conf — original server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; }error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; }}
Các thông số cần thay đổi:
- Thêm index.php để cho phép file chỉ số PHP hoạt động khi truy cập vào một danh mục được yêu cầu.
- Chỉnh sửa mục server_name để trỏ tới tên miền hoặc địa chỉ IP.
- Với những dòng lệnh ở trạng thái ghi chú mà có chức năng xác định các thủ tục xử lí lỗi thì ta nên hữu hiệu hóa chức năng của chúng.
- Thêm mục try_files để đảm bảo Nginx không cho phép những nguồn không đáng tin truy cập tới bộ xử lý PHP.
Thay đổi thông tin trong vùng chữ màu đỏ sao cho phù hợp với cài đặt của bạn. Nếu muốn thì có thể copy và paste cả đoạn rồi đổi giá trị server_name thành tên miền hoặc địa chỉ IP phù hợp.
/etc/nginx/conf.d/default.conf — updated server { listen 80; server_name server_domain_name_or_IP; # note that these lines are originally from the "location /" block 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;}}
Lưu và đóng file khi hoàn thành.
Khởi động lại Nginx để lưu thay đổi đó:
sudo systemctl restart nginx
5. Test PHP
Để kiểm tra PHP với Nginx Web Server, chúng ta cần tạo một tệp info.php trong thư mục gốc của tài liệu.
nano /usr/share/nginx/html/info.php
Thêm đoạn sau vào:
<?php phpinfo(); ?>
Lưu lại và đóng file.
Nếu đã cài đặt LEMP trên CentOS 7, 8 thì hãy nhập 127.0.0.1/info.php hoặc localhost/info.php vào thanh địa chỉ trình duyệt. Bạn sẽ thấy thông tin máy chủ PHP của bạn. Điều này nghĩa là tập lệnh PHP đã chạy đúng với Nginx Web Server.
Nếu CentOS đang chạy trên một máy chủ từ xa, sau đó nhập server-ip-address/info.php trên thanh địa chỉ trình duyệt. Thay thế sever-ip-address bằng địa chỉ IP thực của bạn.
Nếu trình duyệt không hiển thị thông tin PHP thì chỉ cần khởi động lại Nginx và PHP.
sudo systemctl restart nginx php-fpm
Sau đó, bạn có thể xem thông tin PHP trên trình duyệt web.
Chúc bạn thành công!