Chi tiết từ A-Z: Hướng dẫn cách cài đặt LEMP trên Ubuntu 18

Cài đặt LEMP trên Ubuntu 18 có khó? cần phải thực hiện nhiều bước dài dòng? Không quá khó đâu, chỉ cần bạn làm theo bài hướng dẫn bên dưới đây.

LEMP là viết tắt của Linux, Nginx, MariaDB/MySQL và PHP tạo nên môi trường máy chủ Web. Hãy cùng cài đặt LEMP trên Ubuntu 18 với chúng tôi nhé.

Yêu cầu: Bạn cần có một VPS sử dụng hệ điều hành Ubuntu 18.04.

Hướng dẫn các cài đặt LEMP trên Ubuntu 18

Bước 1: Cài đặt Nginx

Trước tiên các bạn cần cài đặt một số thư viện cần thiết bằng cách chạy lệnh sau

sudo apt install curl gnupg2 ca-certificates lsb-release -y

Trong hướng dẫn này chúng tôi sẽ hướng dẫn các bạn cài đặt Nginx mainline phiên bản mới nhất tại thời điểm viết bài là v17.10. Để cài đặt Nginx các bạn cần tạo source.list bằng lệnh sau:

echo "deb http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx"
| sudo tee /etc/apt/sources.list.d/nginx.list

Tiếp theo, tiến hành nhập nginx signing key để apt có thể xác minh tính xác thực của các gói:

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

Sau đó tiến hành xác minh key

sudo apt-key fingerprint ABF5BD827BD9BF62

Chi tiết từ A-Z: Hướng dẫn cách cài đặt LEMP trên Ubuntu 18 1

Để cài đặt Nginx, hãy chạy các lệnh sau:

sudo apt update
sudo apt install nginx -y

Để kiểm tra phiên bản Nginx các bạn dùng lệnh sau

sudo nginx -v

Chi tiết từ A-Z: Hướng dẫn cách cài đặt LEMP trên Ubuntu 18 2

Tiến hành khởi động Nginx bằng 2 lệnh sau

sudo systemctl start nginx
sudo systemctl enable nginx

Để kiểm tra xem Nginx đã hoạt động hay chưa hãy dùng lệnh

service nginx status

Chi tiết từ A-Z: Hướng dẫn cách cài đặt LEMP trên Ubuntu 18 3

Bước 2: Cài đặt MariaDB

Cài đặt MariaDB

Để cài đặt MariaDB 10.4 trên Ubuntu 18.04, các bạn sẽ cần thêm MariaDB repository vào hệ thống. Trước tiên các bạn cần cài đặt software-properties-common bằng lệnh sau:

sudo apt-get install software-properties-common -y

Sau đó các bạn chạy lệnh sau để thêm Repository Key vào hệ thống

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Chi tiết từ A-Z: Hướng dẫn cách cài đặt LEMP trên Ubuntu 18 4

Tiếp theo thêm repository bằng lệnh sau

sudo add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"

Để cài đặt Mariadb, hãy chạy các lệnh sau:

sudo apt update
sudo apt -y install mariadb-server mariadb-client

Đặt mật khẩu root MariaDB

Sau khi quá trình cài đặt hoàn tất các bạn tiến hành đặt mật khẩu root cho Mariadb bằng cách chạy lần lượt các lệnh sau

sudo mysql -u root
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mật-Khẩu-Bạn-Muốn-Đặt';
flush privileges;
exit

Thay Mật-Khẩu-Bạn-Muốn-Đặt bằng mật khẩu của bạn

Chi tiết từ A-Z: Hướng dẫn cách cài đặt LEMP trên Ubuntu 18 5

Sau khi đặt mật khẩu root các bạn chạy các lệnh sau để khởi động Mariadb

sudo systemctl start mariadb
sudo systemctl enable mariadb

Cấu hình bảo mật MariaDB

Cuối cùng tiến hành bảo mật MariaDB bằng lệnh sau

sudo mysql_secure_installation
Enter current password for root (enter for none): Nhập mật khẩu root các bạn đã đặt
Switch to unix_socket authentication [Y/n] : n
Change the root password? [Y/n] : n
Remove anonymous users? [Y/n] : Y
Disallow root login remotely? [Y/n] : Y
Remove test database and access to it? [Y/n] : Y
Reload privilege tables now? [Y/n] : Y

Để kiểm tra MariaDB đã chạy hãy chưa các bạn dùng lệnh

service mariadb status

Chi tiết từ A-Z: Hướng dẫn cách cài đặt LEMP trên Ubuntu 18 6

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

Cài đặt PHP-FPM

Để cài đặt PHP các bạn nên sử dụng ppa:ondrej/php PPA để có thể cài đặt phiên bản PHP-FPM mới nhất

sudo add-apt-repository ppa:ondrej/php

Tiếp theo các bạn cài đặt PHP bằng lệnh sau. Trong bài viết này sẽ cài đặt PHP 7.4

sudo apt update && sudo apt upgrade -y
sudo apt -y install php7.4 php7.4-fpm php7.4-ldap php7.4-zip php7.4-cli php7.4-mysql php7.4-gd php7.4-xml php7.4-mbstring php7.4-common php7.4-soap php7.4-json php7.4-curl php7.4-bcmath php7.4-snmp php7.4-pspell php7.4-gmp php7.4-intl php7.4-imap php7.4-enchant php7.4-xmlrpc php7.4-tidy php7.4-opcache php7.4-cli unzip gcc

Cấu hình PHP-FPM

Đầu tiên các bạn backup lại file cấu hình mặc định

sudo cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/www.conf.bak

Tiếp theo các bạn mở file /etc/php/7.4/fpm/pool.d/www.conf

Tìm

user = www-data
group = www-data

Sửa thành

user = nginx
group = nginx

Tìm

listen.owner = www-data
listen.group = www-data

Sửa thành

listen.owner = nginx
listen.group = nginx

Tìm

;listen.mode = 0660

Sửa thành

listen.mode = 0660

Tìm

;security.limit_extensions = .php .php3 .php4 .php5 .php7

Sửa thành

security.limit_extensions = .php .php3 .php4 .php5 .php7

Cấu hình php.ini

Tất cả cấu hình thông số php cần thiết sẽ nằm trong file /etc/php/7.4/fpm/php.ini. Trước khi chỉnh sửa các bạn nên backup lại file php.ini bằng lệnh sau

sudo cp /etc/php/7.4/fpm/php.ini /etc/php/7.4/fpm/php.ini.bak

Một số thông số cơ bản bạn có thể sửa như sau

;date.timezone =
expose_php = On
short_open_tag = Off
;max_input_vars = 1000
max_execution_time
max_input_time
post_max_size
upload_max_filesize

Các bạn sửa lại thành như sau:

date.timezone = Asia/Ho_Chi_Minh
expose_php = Off
short_open_tag = On
max_input_vars = 3000
max_execution_time = 90
max_input_time = 90
post_max_size = 128M
upload_max_filesize = 128M

Khởi động PHP-FPM

Sau khi quá trình cài đặt hoàn tất các bạn chạy 2 lệnh sau để khởi động PHP-FPM

sudo systemctl start php7.4-fpm
sudo systemctl enable php7.4-fpm

Để kiểm tra xem php-fpm đã chạy hay chưa các bạn sử dụng lệnh sau

systemctl status php7.4-fpm

Chi tiết từ A-Z: Hướng dẫn cách cài đặt LEMP trên Ubuntu 18 7

Khi bạn sử dụng PHP-FPM. Tất cả các file cấu hình PHP đều nằm trong thư mục /etc/php/7.4/fpm Chi tiết từ A-Z: Hướng dẫn cách cài đặt LEMP trên Ubuntu 18 8

Bước 4: Cài đặt PhpMyAdmin

Cài đặt PhpMyAdmin

Để cài đặt PhpMyAdmin các bạn chạy lần lượt các lệnh sau:

cd /usr/share
sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip
sudo unzip phpMyAdmin-5.0.2-all-languages.zip
sudo mv phpMyAdmin-5.0.2-all-languages phpMyAdmin
sudo rm -rf phpMyAdmin-5.0.2-all-languages.zip
sudo rm -rf /usr/share/phpMyAdmin/setup
sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html/phpMyAdmin

Lưu ý: Truy cập phpmyadmin.net để lấy link down phiên bản mới nhất

Cấu hình PhpMyAdmin

Tiếp theo các bạn tiến hành cấu hình PhpMyadmin:

sudo mv /usr/share/phpMyAdmin/config.sample.inc.php /usr/share/phpMyAdmin/config.inc.php

Mở file /usr/share/phpMyAdmin/config.inc.php và chỉnh sửa các thông số sau

– Tìm

$cfg['blowfish_secret'] = '';

Thêm một đoạn ký tự bất kỳ vào giữa cặp nháy đơn. Ví dụ:

$cfg['blowfish_secret'] = 'dsa123e12rwDSADs1few12tr3ewg3s2df3sAD';

– Tiếp theo thêm vào cuối file doạn code sau

$cfg['TempDir'] = '/usr/share/phpMyAdmin/tmp/';

Sau đó các bạn cần tạo thư mục tmp cho PhpMyAdmin

sudo mkdir -p /usr/share/phpMyAdmin/tmp
sudo chown -R nginx:nginx /usr/share/phpMyAdmin/tmp

Cấu hình bảo mật cho PhpMyAdmin

Các bạn mở file /etc/nginx/conf.d/default.conf xoá toàn bộ nội dung và thay thế bằng nội dung sau:

server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.log;
error_log /var/log/nginx/localhost.error.log;
root /usr/share/nginx/html;
index index.html index.htm index.php;

location ~ .php$ {
try_files $uri $uri/ =404;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;

if (-f $request_filename)
{
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}
location ~ ^/phpmyadmin {
rewrite ^/* /phpMyAdmin last;
}
location ~ ^/pma {
rewrite ^/* /phpMyAdmin last;
}
location ^~ /phpMyAdmin/log/ {
deny all;
}
location ^~ /phpMyAdmin/libraries/ {
deny all;
}
location ^~ /phpMyAdmin/templates/ {
deny all;
}
location ^~ /phpMyAdmin/tmp/ {
deny all;
}
}

Tiếp theo các bạn chạy lệnh sau:

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

Mở file /etc/nginx/nginx.conf và thêm vào bên trên dòng include /etc/nginx/conf.d/*.conf; đoạn rule sau

include /etc/nginx/default.conf;

Chi tiết từ A-Z: Hướng dẫn cách cài đặt LEMP trên Ubuntu 18 9

Khởi động lại Nginx để reload cấu hình

sudo service nginx restart

Sau đó các bạn có thể truy cập: địa-chỉ-vps/pma và đăng nhập bằng user là root và mật khẩu là mật khẩu root của MariaDB

Chi tiết từ A-Z: Hướng dẫn cách cài đặt LEMP trên Ubuntu 18 10

Bước 5: Tạo Virtual host

Virtual Host là file cấu hình cho phép nhiều domain cùng chạy trên một máy chủ. Tất cả các file vhost sẽ nằm trong thư mục /etc/nginx/conf.d/. Để tiện quản lý mỗi website nên có một vhost riêng, ví dụ: hostvn.net.conf

Trong ví dụ này sẽ tạo website hostvn.net với vhost tương ứng là /etc/nginx/conf.d/hostvn.net.conf với nội dung sau:

server {
listen 80;
server_name www.hostvn.net hostvn.net;
access_log /home/hostvn.net/logs/access.log;
error_log /home/hostvn.net/logs/error.log;
root /home/hostvn.net/public_html;
index index.html index.htm index.php;

location ~ .php$ {
try_files $uri $uri/ =404;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;
if (-f $request_filename)
{
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}
}

Tiếp theo các bạn cần tạo thư mục chứa mã nguồn website và thư mục chứa file log bằng các lệnh sau

sudo mkdir -p /home/hostvn.net/public_html
sudo mkdir -p /home/hostvn.net/logs
sudo chown -R nginx:nginx /home/hostvn.net

Khởi động lại Nginx để load cấu hình

sudo systemctl restart nginx

Sau khi cấu hình hoàn tất các bạn trỏ tên miền về vps sau đó tạo file /home/hostvn.net/public_html/index.php với nội dung sau và gõ tên miền của bạn vào thanh địa chỉ của trình duyệt để kiểm tra

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>HOSTVN.NET - Hướng dẫn cài đặt LEMP trên Ubuntu 18</title>
</head>
<body>
<p><center><?= "HOSTVN.NET - Hướng dẫn cài đặt LEMP trên Ubuntu 18" ?></center></p>
</body>
</html>

Cuối cùng là cấu hình SSL

Đã xong rồi. Mời các bạn thực hiện theo từng bước trong bài hướng dẫn cách cài đặt LEMP trên Ubuntu 18 rất chi tiết bên trên nhé.

Nguồn bài tham khảo: blog.hostvn