Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z
Xin chào các bạn đang xem bài viết của mình. Nối tiếp các cách cài đặt LEMP Stack, thì ở bài viết này mình xin chia sẻ cách cài đặt LEMP Stack trên máy chủ AlmaLinux 8.
AlmaLinux 8 hiện tại rất phổ biến khi CentOS 8 và CentOS 8 trong tương lai sẽ ngừng hỗ trợ. AlmaLinux là bản được CloudLinux phát triển miễn phí cho cộng đồng sử dụng.
Để Cài đặt LEMP Stack trên AlmaLinux 8 thì không quá khó, cấu trúc và tập lệnh sử dụng cũng tương tự với CentOS. Ở trong bài này mình sẽ cài đặt LEMP Stack và một số thành phần phụ nhưng cần thiết khi xây dựng website.
Các thành phần được cài đặt
- NGINX
- MariaDB
- PHP-FPM
- phpMyAdmin
- WordPress
- Certbot
- Redis Cache
Các bước cài đặt LEMP Stack trên AlmaLinux từ A-Z
1. Cài đặt máy chủ web NGINX trên AlmaLinux
Cập nhật hệ thống
dnf update -y
Cài đặt NGINX
dnf install nginx -y
Sau khi cài xong NGINX bạn kích hoạt và khởi động NGINX lên
systemctl enable nginx systemctl start nginx systemctl status nginx
Mở port trên hệ thống Firewall
firewall-cmd --zone=public --add-service=http firewall-cmd --zone=public --add-service=http --permanent firewall-cmd --reload
Sau khi mở port HTTP xong, bạn hãy mở trình duyệt và truy cập từ IP để kiểm tra. Nếu hiện như ảnh bên dưới là đã thành công.
2. Cài đặt MariaDB trên AlmaLinux
Mình sẽ cài đặt bản MariaDB 10.5 để sử dụng. Trước khi cài bạn hãy tạo một file MariaDB.repo
với nội dung như sau
Tạo file MariaDB.repo
vi /etc/yum.repos.d/MariaDB.repo
Sau đó bạn thêm nội dung sau vào
# MariaDB 10.5 CentOS repository list # http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.5/rhel8-amd64 module_hotfixes=1 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Cập nhật lại hệ thống
dnf update -y
Cài đặt MariaDB 10.5
dnf install MariaDB-server MariaDB-client -y
Kích hoạt và khởi động dịch vụ
systemctl start mariadb systemctl enable mariadb systemctl status mariadb
Kiểm tra phiên bản MariaDB vừa cài đặt
mysql -V
Kích hoạt bảo mật máy chủ cơ sở dữ liệu
mysql_secure_installation
Mở port trên firewall
firewall-cmd --permanent --add-service=mysql irewall-cmd --reload
3. Cài đặt PHP-FPM trên AlmaLinux
Thêm EPEL(Extra Packages for Enterprise Linux)
dnf install epel-release -y
Cài đặt Remi repository
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Tiếp theo, hãy xem các module PHP có sẵn bằng cách chạy lệnh này. Tại đây bạn có thể chọn phiên bản PHP nào bạn muốn cài đặt.
dnf module list php
Tiếp theo bạn thực hiện chạy lệnh sau để cài đặt
dnf module reset php -y dnf module enable php:remi-8.0 -y
Cài đặt PHP
dnf install php php-fpm -y
Sau khi cài xong bạn kiểm tra lại với lệnh php -v
Cài đặt một số Extension cần thiết
dnf install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-opcache php-soap php-common
Sau khi cài xong bạn có thể kiểm tra lại với lệnh php --modules
Bây giờ bạn hãy mở file cấu hình php-fpm và sửa lại các dòng sau
vi /etc/php-fpm.d/www.conf
Bạn tìm dòng sau và sửa lại
user = apache sửa thành user = nginx group = apache sửa thành group = nginx Sau đó thêm vào dòng sau listen = /var/run/php-fpm/php-fpm.sock
Kích hoạt và khởi động dịch vụ PHP-FPM
systemctl start php-fpm && systemctl enable php-fpm
4. Cài đặt phpMyAdmin trên AlmaLinux
phpMyAdmin là một ứng dụng dùng để quản lý cơ sở dữ liệu dưới dạng giao diện. Giúp bạn quản lý Database trực quan hơn. Từ đó dễ dàng kiểm soát và quản lý. Để cài đặt bạn hãy thực hiện như sau
Kích hoạt EPEL và REMI repository
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y dnf install http://rpms.remirepo.net/enterprise/8/remi/x86_64/php-fedora-autoloader-1.0.0-5.el8.remi.noarch.rpm -y
Cài đặt phpMyAdmin
dnf --enablerepo=remi install phpMyAdmin -y
Tạo vhost
vi /etc/nginx/conf.d/phpmyadmin.conf
Sau đó bạn nhập vào nội dung sau
server { listen 80; listen [::]:80; server_name pma.dotrungquan.info; root /usr/share/phpMyAdmin; index index.php index.html index.htm index.nginx-debian.html; access_log /var/log/nginx/phpmyadmin_access.log; error_log /var/log/nginx/phpmyadmin_error.log; location / { try_files $uri $uri/ /index.php; } location ~ ^/(doc|sql|setup)/ { deny all; } location ~ .php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /.ht { deny all; } }
Khởi động lại dịch vụ
systemctl restart php-fpm systemctl restart nginx
Bây giờ bạn hãy truy cập vào http://server-ip/phpMyAdmin/
để kiểm tra nhé.
5. Tạo website WordPress trên AlmaLinux
5.1. Tạo cơ sở dữ liệu và người dùng
Bạn hãy truy cập vào mysql và tạo database mới cho website.
mysql -u root -p CREATE DATABASE database_name; CREATE USER 'user_database'@'localhost' IDENTIFIED BY 'my-password'; GRANT ALL PRIVILEGES ON database_name.* TO 'user_database'@'localhost';
5.2. Tải mã nguồn WordPress
Bạn hãy di chuyển vào thư mục sau đó tải về mã nguồn từ trang chủ. Mình sẽ chủ thích từng lệnh sau.
mkdir -p /var/www/site1 cd /var/www/site1 wget https://wordpress.org/wordpress-5.8.zip unzip wordpress-5.8.zip mv /var/www/site1/worpdress/* /var/www/site1 chown -R nginx:nginx /var/www/site1
- Lệnh 1: Tạo thư mục lưu trữ
- Lệnh 2: di chuyển vào thư mục Document root của website, tuỳ vào cách cấu hình mã bạn hãy đặt tương ứng
- Lệnh 3: Tải mã nguồn wordpress về bằng lệnh wget
- Lệnh 4: Giải nén file ra
- Lệnh 5: Vơi mã nguồn download từ trang chủ, khi giải nén nó sẵn bên trong một thư mục là wordpress. Vì vậy cần di chuyển ra document root.
- Lệnh 6: Chỉnh lại Owner tương ứng cho user:group
5.3. Tạo vhost cho website
Để web có thể truy cập. Bạn cần tạo vhost và khai báo thông tin.
vi /etc/nginx/conf.d/site1.conf
Sau đó bạn dán vào cấu hình mẫu sau và lưu ý hãy thay những dòng này
- root /var/www/site1 : Đường dẫn lưu trữ mã nguồn
- server_name : thay vào tên website của bạn
- access_log: Log lưu truy cập
- error_log: Log lưu lỗi
server { listen 80; server_name site1.dotrungquan.info; root /var/www/site1; 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; } }
Sau đó kiểm tra lại cấu hình nginx xem có lỗi không bằng lệnh nginx -t
. Nếu không lỗi thì khởi động lại nginx.
Bây giờ bạn hãy truy cập vào domain/subdomain và cài đặt WordPress
Nhập vào thông tin Database đã tạo ở bước 5.1
6. Cài đặt Cerbot trên AlmaLinux
Cập nhật hệ thống vào cài epel-release
dnf update -y dnf install epel-release -y
Cài đặt Cerbot trên NGINX
dnf install certbot python3-certbot-nginx -y
Cài đặt SSL cho website với Certbot
Lưu ý: SSL sẽ cài thành công khi tên miền bạn đã trỏ về IP VPS.
certbot --nginx
Cấu hình mở port trên Firewall
HTTPS sẽ chạy với port 443. Vì vậy bạn cần mở port này cho nó hoạt động.
firewall-cmd --permanent --add-port=443/tcp --zone=public firewall-cmd --reload
Sau đó bạn truy cập lại website với giao thức https://my-domain
để kiểm tra SSL nhé.
Để chạy với HTTP/2 bạn hãy mở lại vhost của domain. Tìm block 443 và thêm vào http2
sau 443 như ảnh đính kèm
Và truy cập vào trang HTTP/2 Test – Verify HTTP/2 Support | KeyCDN Tools để kiểm tra
7. Cài đặt WP-CLI để quản trị WordPress (không quan trọng)
WP-CLI là một tính năng được ra đời và phát triển từ những năm 2011 , với WP-CLI bạn có thể dễ dàng thao tác quản lý website WordPress của mình một cách đơn giản thông qua giao diện dòng lệnh (Command). Với cách thức thông thường , khi các bạn cần cài đặt Plugins, Themes, hay chỉnh sửa liên quan đến WordPress các bạn cần phải truy cập vào trình quản trị WordPress và thực hiện các thao tác bằng cách click chuột.
Để cài đặt bạn hãy nhập các lệnh như sau.
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar php wp-cli.phar --info chmod +x wp-cli.phar mv wp-cli.phar /usr/local/bin/wp
Ảnh minh qua sử dụng wp-cli để xem theme, plugin và user.
8. Cài đặt Redis Cache
Redis là phần mềm một mã nguồn mở được dùng để lưu trữ dữ liệu có cấu trúc, có thể sử dụng như một database, bộ nhớ cache hay một message broker. Nó là hệ thống lưu trữ dữ liệu với dạng KEY-VALUE rất mạnh mẽ và phổ biến hiện nay. Redis nổi bật bởi nó hỗ trợ nhiều cấu trúc dữ liệu cơ bản như: hash, list, set, sorted set, string. Tất cả dữ liệu được ghi lại và lưu trên RAM, do đó tốc độ đọc ghi dữ liệu sẽ rất nhanh.
8.1. Cài đặt Redis
dnf update -y dnf install redis -y
Bạn hãy mở file redis.conf, tìm các dòng dong và sửa lại.
vi /etc/redis/redis.conf
maxmemory 256mb maxmemory-policy allkeys-lru
Khởi động và kích hoạt Redis
systemctl start redis systemctl enable redis systemctl status redis
8.3. Cài đặt PHP Extension
dnf install php-redis -y
Sau khi cài xong bạn có thể tạo một file info.php
bên trong mã nguồn để kiểm tra. Bên dưới là cú pháp của file info.php
<?php phpinfo(); ?>
8.4. Cài đặt Redis trên WordPress
Để cài đặt redis trên wordpress, bạn hãy cài đặt một Pluginc ó tên là Redis Object Cache. Sau đó mở file wp-config.php
và thêm vào đoạn sau.
define('WP_CACHE_KEY_SALT', 'site1.dotrungquan.info');
Tiếp đến bạn vào admin WordPPress, Settings => Redis và kích hoạt lên.
Như vậy mình đã hoàn tất bài Hướng dẫn Cài đặt LEMP Stack trên AlmaLinux 8 từ A-Z. Hy vọng bài viết trên sẽ giúp các bạn cài đặt một máy chủ web riêng thành công.
Ở bài viết tiếp theo, mình sẽ hướng dẫn bạn thiết lập NGINX FastCGI cache trên WordPress để tối ưu hiệu xuất cho website. Rất mong được sử ủng hộ của các bạn.
Chúc bạn thực hiện thành công.