Nginx
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
Firewall Setup
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
SSL Let’s Encrypt
sudo apt install certbot
sudo systemctl status certbot.timer
# Standalone domain
sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d domain-name.com
# Wildcard SSL
sudo certbot certonly --manual --agree-tos --preferred-challenges dns -d domain-name.com -d *.domain-name.com
MariaDB
sudo apt install mariadb-server -y
sudo mysql_secure_installation
Cần phải trả lời:
- Mật khẩu hiện tại của root: Enter
- Đặt mật khẩu cho root -> Enter. Nhập mật khẩu 2 lần
- Gở bỏ user vô danh? -> Enter
- Cấm đăng nhập từ xa vời root -> Enter
- Xóa CSDL test? -> Enter
- Nạp lại privilege tables? -> Enter
sudo mysql -u root -p
Để tạo mật khẩu, cần tạo chuỗi hash của mật khẩu:
SELECT PASSWORD('your_password');
+-------------------------------------------+
| PASSWORD('your_password') |
+-------------------------------------------+
| *9E72259BA9214F692A85B240647C4D95B0F2E08B |
+-------------------------------------------+
Đổi mật khẩu root:
ALTER USER root@localhost IDENTIFIED BY PASSWORD '*9E72259BA9214F692A85B240647C4D95B0F2E08B'
sudo service mariadb restart
PHP-FPM
Nginx uses PHP-FPM and for convenient, we use Ondrej Sury’s PPA, so we can install multiple versions of PHP.
sudo apt install -y php7.4 php7.4-fpm php7.4-curl php7.4-gd php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-xml php7.4-xmlrpc php7.4-common php-imagick php-pear
sudo service php7.4-fpm start
Cấu hình Nginx và PHP-FPM
1. nano /etc/nginx/nginx.conf
Bỏ ký tự # trước các dòng sau:.
keepalive_timeout 2;
server_tokens off;
Ctr+X, Y để cất file
2. nano /etc/nginx/sites-available/default
Sửa nhóm location ~ \.php$ thành như sau:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
Ctr+X, Y để cất file
Kiểm tra cấu hình nginx:
sudo nginx -t
Restart nginx
sudo systemctl reload nginx
Cấu hình PHP-FPM
Tìm đến thư mục /etc/php/7.4/fpm và sửa php.ini
cgi.fix_pathinfo=0
Ctr+X, Y để cất file
Khởi động lại PHP-FPM
sudo service php7.4-fpm restart
Cấu hình SSL
Trong /etc/nginx/site-avalable/domain-name.com thêm vào khối server
ssl_certificate /etc/letsencrypt/live/domain-name.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain-name.com/privkey.pem;
Khởi động lai nginx