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.
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:
- 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.
- 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.
- 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ả.
- 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.
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:
Bước 1: Cài đặt Nginx
Đầ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
Bước 2: Cài đặt MySQL/MariaDB
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