LEMP stack

LEMP Stack là gì?

LEMP Stack là bộ công cụ phần mềm để triển khai ứng dụng web. Tên LEMP là viết tắt của: Linux (hệ điều hành), Nginx (máy chủ web), MySQL/MariaDB (hệ quản trị cơ sở dữ liệu), và PHP (ngôn ngữ lập trình). LEMP Stack thay thế phổ biến cho LAMP Stack, trong đó Apache được thay bởi Nginx.

LEMP Stack cung cấp môi trường mạnh mẽ và linh hoạt. Linux là nền tảng mở và miễn phí. Nginx xử lý hàng ngàn kết nối đồng thời với hiệu suất cao. MySQL/MariaDB là hệ quản trị cơ sở dữ liệu mạnh mẽ. PHP là ngôn ngữ lập trình phổ biến cho phát triển web.

LEMP Stack là gì?

Cách thức hoạt động của LEMP

Các thành phần trong LEMP Stack hoạt động cùng nhau để xử lý và phục vụ các yêu cầu web hiệu quả. Dưới đây là mô tả chi tiết cách thức hoạt động của từng thành phần:

  1. Linux: Là hệ điều hành nền tảng, Linux cung cấp môi trường cho các thành phần khác. Nó quản lý tài nguyên hệ thống, bảo mật và cung cấp các dịch vụ cơ bản cho việc chạy ứng dụng web.
  2. Nginx: Nginx là máy chủ web xử lý các yêu cầu HTTP nhanh chóng và hiệu quả. Nó có khả năng xử lý hàng ngàn kết nối đồng thời, nhận các yêu cầu từ trình duyệt web và chuyển tiếp chúng đến PHP.
  3. MySQL/MariaDB: Là hệ quản trị cơ sở dữ liệu quan hệ, MySQL/MariaDB lưu trữ và quản lý dữ liệu của ứng dụng web. Nó cung cấp các công cụ mạnh mẽ để truy vấn, cập nhật và quản lý dữ liệu hiệu quả.
  4. PHP: PHP là ngôn ngữ lập trình phía máy chủ, được sử dụng để viết mã xử lý logic của ứng dụng web. PHP tương tác với MySQL/MariaDB để xử lý dữ liệu, sau đó gửi kết quả trả về cho Nginx.
lemp stack la gi

Hướng dẫn cài đặt LEMP Stack trên CentOS 7

Dưới đây là các bước cơ bản để cài đặt LEMP Stack trên CentOS 7:

Đầu tiên, bạn cần cài đặt EPEL repository để có thể cài đặt Nginx:

sudo yum install epel-release

Tiếp theo, cài đặt Nginx:

sudo yum install nginx

Khởi động và kích hoạt Nginx để chạy tự động khi hệ thống khởi động:

sudo systemctl start nginx
sudo systemctl enable nginx

Cài đặt MySQL bằng lệnh sau:

sudo yum install mysql-server

Khởi động và kích hoạt MySQL:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Chạy cấu hình bảo mật ban đầu cho MySQL:

sudo mysql_secure_installation

Bước 3: Cài đặt PHP

Một số module PHP thông dụng:

  • OPcache (php-opcache) – Zend OPcache cung cấp khả năng thực thi PHP nhanh hơn thông qua kỹ thuật opcode caching và tối ưu hóa.
  • APCu (php-pecl-apc) – Bộ nhớ đệm người dùng APCu.
  • CLI (php-cli) – Giao diện dòng lệnh cho PHP.
  • PEAR (php-pear) – Khung mở rộng và kho lưu trữ ứng dụng PHP.
  • PDO (php-pdo) – Một mô-đun trừu tượng truy cập cơ sở dữ liệu cho các ứng dụng PHP.
  • MySQL (php-mysqlnd) – Một mô-đun cho các ứng dụng PHP sử dụng cơ sở dữ liệu MySQL.
  • PostgreSQL (php-pgsql) – Một mô-đun cơ sở dữ liệu PostgreSQL cho PHP.
  • MongoDB (php-pecl-mongo) – Trình điều khiển cơ sở dữ liệu MongoDB.
  • SQLite (php-pecl-sqlite) – Phần mở rộng cho SQLite Embeddable SQL Database Engine.
  • Memcache (php-pecl-memcache) – Tiện ích mở rộng để làm việc với daemon lưu trữ đệm Memcached.
  • Memcached (php-pecl-memcached) – Tiện ích mở rộng để làm việc với daemon lưu trữ đệm Memcached.
  • GD (php-gd) – Một mô-đun cho các ứng dụng PHP để sử dụng thư viện đồ họa GD.
  • XML (php-xml) – Một mô-đun cho các ứng dụng PHP sử dụng XML.
  • MBString (php-mbstring) – Một mô-đun cho các ứng dụng PHP cần xử lý chuỗi nhiều byte.
  • MCrypt (php-mcrypt) – Mô-đun PHP chuẩn cung cấp hỗ trợ thư viện mcrypt.

Để cài đặt bạn hãy sử dụng lệnh. Ví dụ:

yum --enablerepo=remi,remi-php56 install -y php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongo php-pecl-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

Khởi động và kích hoạt PHP-FPM:

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Bước 4: Cấu hình Nginx để sử dụng PHP

Mở file cấu hình Nginx:

sudo vi /etc/nginx/conf.d/default.conf

Thêm hoặc chỉnh sửa các dòng sau để cấu hình Nginx sử dụng PHP:

#
# The default server
#
server {
    listen       80 default_server;
    server_name example.com;

    location / {
        root   /usr/share/nginx/html;
        index index.php index.html index.htm;
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

Khởi động lại Nginx để áp dụng các thay đổi:

sudo systemctl restart nginx

Cấu hình PHP-FPM

– Chỉnh user và group

nano /etc/php-fpm.d/www.conf

Thay user và group = apache sang nginx

 [...]
 ; Unix user/group of processes
 ; Note: The user is mandatory. If the group is not set, the default user's group
 ; will be used.
 ; RPM: apache Choosed to be able to access some dir as httpd
 user = nginx
 ; RPM: Keep a group allowed to write in log dir.
 group = nginx
 [...]

– Restart PHP-FPM

systemctl restart php-fpm.service

Bước 5: Kiểm tra cài đặt

Để kiểm tra cài đặt của bạn, tạo một file info.php trong thư mục gốc web:

nano /usr/share/nginx/html/info.php

Thêm đoạn sau vào

<?php
phpinfo();
?>

Test thử bằng link: http://<ip-address>/info.php. Nếu bạn thấy thông tin về PHP hiện ra thì đã cài đặt thành công.

Lưu ý: nếu bạn truy cập thẳng vào IP mà báo lỗi không kết nối được thì hãy open port http:

service iptables start
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
service iptables restart

Lợi ích của LEMP Stack

LEMP Stack mang lại nhiều lợi ích cho phát triển và triển khai ứng dụng web. Đầu tiên, LEMP sử dụng Nginx, một máy chủ web hiệu suất cao, giúp tăng tốc độ tải trang và giảm thiểu tài nguyên hệ thống. Thứ hai, Linux mang lại sự ổn định và bảo mật cao, cùng khả năng tùy chỉnh linh hoạt. MySQL/MariaDB là hệ quản trị cơ sở dữ liệu mạnh mẽ và đáng tin cậy, giúp quản lý dữ liệu hiệu quả. Cuối cùng, PHP là ngôn ngữ lập trình phổ biến và dễ học, vì vậy giúp giảm thời gian phát triển và bảo trì ứng dụng. Tất cả các yếu tố này tạo nên một môi trường mạnh mẽ và linh hoạt, lý tưởng cho phát triển các ứng dụng web hiện đại.

Kết luận

LEMP Stack là công cụ mạnh mẽ và hiệu quả để triển khai các ứng dụng web. Hiểu rõ từng thành phần trong LEMP Stack sẽ giúp bạn tối ưu hóa và quản lý ứng dụng hiệu quả. Hy vọng hướng dẫn cài đặt LEMP Stack trên CentOS 7 này sẽ giúp bạn dễ dàng triển khai môi trường phát triển web.

Nhờ sự kết hợp của Linux, Nginx, MySQL/MariaDB và PHP, LEMP Stack mang đến nền tảng mạnh mẽ và đáng tin cậy cho việc phát triển và triển khai các ứng dụng web. Vì vậy, dù bạn là nhà phát triển web chuyên nghiệp hay mới bắt đầu, việc nắm vững cách cài đặt và cấu hình LEMP Stack sẽ giúp bạn tiết kiệm thời gian và công sức, đồng thời mang lại hiệu suất tuyệt vời cho ứng dụng.

Tham khảo:

https://www.geeksforgeeks.org/what-is-lemp-stack

Tìm hiểu thêm tại đây:

LAMP Stack Cài Đặt Trên CentOS 7 Chỉ Với Vài Bước Đơn Giản

Leave a Reply

Your email address will not be published. Required fields are marked *