Nội dung
Hướng dẫn cài đặt LEMP Stack trên CentOS 7 đơn giản cùng với AZDIGI.
I. Giới thiệu
LEMP là chữ viết tắt thường được dùng để chỉ sự sử dụng các phần mềm Linux, Nginx, MySQL/MariaDB và PHP/PHP-FPM để tạo nên một môi trường máy chủ Web giúp triển khai các website trên môi trường Internet.
Các chức năng cụ thể các bạn có thể hiểu nhanh là LEMP hoạt động từ các phần mềm Linux, với máy chủ web là Nginx, máy chủ cơ sở dữ liệu MariaDB hoặc MySQL và nội dung file động được xử lý bởi PHP.
LEMP là dạng mã nguồn mở với lợi thế miễn phí, nên các năm gần đây LEMP luôn được cộng động tin tưởng sử dụng bởi tính ổn định, dễ dàng cài đặt cũng như dễ dàng vận hành. Nhìn chung LEMP cũng tương tự như LAMP , chỉ khác là webserver sử dụng Nginx thay vì Apache.
Cụ thể cách cài đặt LEMP như thế nào và có gì khác với LAMP, thì mời các bạn xem tiếp phần II.
II. Hướng dẫn cài đặt
Để cài đặt LEMP các bạn có thể thực hiện cài đặt với 5 bước sau.
Bước 1: Cài đặt Nginx Web Server
Giống với Apache , máy chủ web Nginx là một trong những máy chủ web phổ biến nhất trên thế giới. Nó đã được ghi chép đầy đủ và được sử dụng rộng rãi trong một thời gian dài, điều này khiến cho Nginx trở thành một lựa chọn mặc định tuyệt vời để lưu trữ một website.
- Vì NGINX không có sẵn repository của CentOS vì vậy chúng ta phải cài repository EPEL với câu lệnh sau:
yum install epel-release -y
- Cài đặt Nginx
yum install nginx -y
- Sau khi cài đặt hoàn tất, các bạn có thể sử dụng các lệnh sau để quản lý Nginx
systemctl start nginx (Khởi động dịch vụ Nginx) systemctl stop nginx (Dừng dịch vụ Nginx) systemctl reload nginx (Tải lại dịch vụ Nginx) systemctl restart nginx (Khởi động lại dịch vụ Nginx:) systemctl enable nginx (Thiết lập Nginx khởi động cùng hệ thống) systemctl disable nginx (Vô hiệu hoá Nginx khởi động cùng hệ thống ) systemctl status nginx (Xem trạng thái dịch vụ Nginx)
Mặc định trên Centos 7 sẽ sử dụng tường lửa là Firewalld, nên các bạn cần thực hiện mở Port dịch vụ với Firewalld theo các cách sau:
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload (Reload lại Firewalld)
Bước 2: Cài đặt MariaDB
Để cài đặt MariaDB các bạn chạy lệnh sau.
yum install -y mariadb mariadb-server
Sau khi cài đặt hoàn tất, các bạn có thể sử dụng các lệnh sau để quản lý MariaDB
systemctl start mariadb (Khởi động dịch vụ mariadb) systemctl stop mariadb (Dừng dịch vụ mariadb) systemctl restart mariadb (Khởi động lại dịch vụ mariadb) systemctl enable mariadb (Thiết lập mariadb khởi động cùng hệ thống) systemctl disable mariadb (Vô hiệu hoá mariadb khởi động cùng hệ thống ) systemctl status mariadb (Xem trạng thái dịch vụ mariadb)
Lưu ý: File cấu hình chính của MariaDB là file /etc/my.conf
Thiết lập bảo mật MariaDB Server
[root@template ~]# mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): (Nhấn Enter) OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] Y New password: (Nhập password root mysql mới) Re-enter new password: (Nhập lại password) Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] Y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Bước 3: Cài đặt PHP-FPM và các Module
Phiên bản PHP có sẵn CentOS 7 là các bản cũ và đã lỗi thời và vì lý do đó, các bạn nên cài đặt kho lưu trữ gói của bên thứ ba để có thể sử dụng các phiên bản PHP mới nhất . Và Remi là kho lưu trữ gói phổ biến cung cấp các bản phát hành PHP mới nhất cho các máy chủ CentOS.
- Để cài đặt kho Remi các bạn chạy lệnh sau.
yum -y install yum-utils rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
- Sau khi cài đặt gói Remi xong, các bạn cần chọn phiên bản PHP mà mình cần cài đặt và kích hoạt gói chứa phiên bản PHP đó. Ở hướng dẫn này mình sẽ cài đặt PHP 8.0 nên sẽ kích hoạt gói bằng lệnh sau.
yum-config-manager --enable remi-php80
Lưu ý: Ở số 80 (tương ứng PHP 8.0), bạn có thể thay thế bằng phiên bản PHP bạn muốn (Ví dụ: 72 – 73 –74 tương ứng 7.2 –7.3 – 7.4..)
- Khi module remi-80 của PHP đã được bật, bạn có thể tiến hành cài đặt PHP và các PHP Extension cần thiết bằng lệnh bên dưới.
yum install -y php php-fpm php-ldap php-zip php-embedded php-cli php-mysql php-common php-gd php-xml php-mbstring php-mcrypt php-pdo php-soap php-json php-simplexml php-process php-curl php-bcmath php-snmp php-pspell php-gmp php-intl php-imap perl-LWP-Protocol-https php-pear-Net-SMTP php-enchant php-pear php-devel php-zlib php-xmlrpc php-tidy php-opcache php-cli php-pecl-zip unzip gcc
- Kiểm tra phiên bản PHP vừa cài đặt bằng lệnh.
php -v
Như hiển thị trên thì đã cài đặt thành công PHP 8.0 rồi nhé.
[root@template ~]# php -v PHP 8.0.1 (cli) (built: Jan 5 2021 13:54:54) ( NTS gcc x86_64 ) Copyright (c) The PHP Group Zend Engine v4.0.1, Copyright (c) Zend Technologies with Zend OPcache v8.0.1, Copyright (c), by Zend Technologies [root@template ~]#
Xem thêm:
- Hướng dẫn nâng cấp phiên bản PHP-FPM trên CentOS 7 (Upgrade PHP-FPM)
- Hướng dẫn hạ cấp PHP-FPM (Downgrade php-fpm)
- Mặc định PHP sẽ thực thi file PHP gần nhất nếu không tìm thấy file php được request. Để ngăn chặn việc thực thi PHP không mong muốn các bạn thay đổi cấu hình như sau.
vi /etc/php.ini
Các bạn tìm và thay thế các dòng sau
cgi.fix_pathinfo=1 => cgi.fix_pathinfo=0
- Tiếp theo ta thực hiện điều chỉnh lại cấu hình mặc định như sau.
Mở và chỉnh sửa file cấu hình /etc/php-fpm.d/www.conf bằng lệnh sau
vi /etc/php-fpm.d/www.conf
Các bạn tìm và thay thế các dòng sau
;listen = 127.0.0.1:9000 => listen = /var/run/php_fpm.sock ;listen.owner = nobody => listen.owner = nginx ;listen.group = nobody => listen.group = nginx user = apache => user = nginx group = apache => group = nginx
Điều chỉnh xong bạn Save lại bằng cách gõ :x
- Bảo mật php_fpm.sock với câu lệnh sau:
chmod 666 /var/run/php_fpm.sock chown nginx:nginx /var/run/php_fpm.sock
- Khởi động PHP-FPM sau khi đã hoàn tất chỉnh sửa cấu hình bằng lệnh.
systemctl start php-fpm systemctl enable php-fpm
Bước 4: Cầu hình NGINX
- Để cấu hình Nginx xử lý , các bạn cần chỉnh sửa cấu hình file default.conf tại đường dẫn /etc/nginx/conf.d/default.conf bằng lệnh.
vi /etc/nginx/conf.d/default.conf
- Copy và dán đoạn dưới đây vào file default.conf (Bạn nhớ thay server_domain_or_IP bằng IP hoặc Domain của bạn)
server { listen 80; server_name server_domain_or_IP; root /var/www/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.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
- Lưu lại cấu hình (gõ
:x
) và khởi động lại Nginx
systemctl restart nginx
Bước 5: Kiểm tra hoạt động website
Sau khi đã cấu hình hoàn tất Virtual Host và tạo folder website hoàn tất, các bạn kiểm tra nhanh xem website của mình có hoạt động hay không bằng cách tạo thử file index.php bằng lệnh sau
touch /var/www/html/index.html | echo 'Cai dat thanh cong LEMP' > /var/www/html/index.html
Tạo xong file các bạn ra trình duyệt bất kỳ và gõ tên website để kiểm tra, như hiển thị bên dưới là website của mình đã hoạt động.
Xem thêm: Thiết lập Nginx FastCGI Cache trên NGINX giảm thời gian phản hồi máy chủ
III. Tổng kết
Như vậy, ở bài viết này AZDIGI đã hướng dẫn bạn cách cài đặt LEMP lên máy chủ sử dụng Centos 7 hoàn tất một cách chi tiết nhất. Việc cài đặt LEMP sẽ giúp bạn có một máy chủ để vận hành website một cách ổn định và trơn tru nhất. Do LEMP chỉ cài đặt các dịch vụ cần thiết để sử dụng Website , điều đó có nghĩa là nó sẽ loại bỏ được các dịch vụ không cần thiết để tài nguyên VPS có thể tập trung tối đa cho việc vận hành website. Hy vọng bài viết này sẽ giúp bạn cài đặt thành công.!
Nếu thấy bài viết hữu ích, hãy chia sẻ rộng rãi đến mọi người để cùng biết cách cài đặt nhé. Ngoài ra Các bạn có thể xem qua một số bài viết khác về kiến thức Linux tại link bên dưới
Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:
- Hotline 247: 028 888 24768 (Ext 0)
- Ticket/Email: Bạn dùng email đăng ký dịch vụ gửi trực tiếp về: support@azdigi.com