Cài đặt Symfony 5 với PHP 7.4 với Nginx Let Encrypt


Cài đặt Symfony 5 với PHP 7.4 trên Ubuntu với Nginx và Let Enc Encrypt. Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Symfony một khung PHP mã nguồn mở được sử dụng để xây dựng các ứng dụng web, API hoặc microservice và nhiều hơn nữa.

Bạn cũng sẽ cài đặt Nginx và bảo vệ tài khoản của bạn bằng chứng nhận SSL miễn phí Let Encrypt.

Thiết lập này được thử nghiệm trên AWS, do đó, nó sẽ hoạt động trên các nhà cung cấp dịch vụ lưu trữ đám mây khác như Google Cloud, Azure, v.v hoặc bất kỳ VPS hoặc bất kỳ máy chủ chuyên dụng nào.

Cài đặt Symfony 5 với PHP 7.4 với Nginx Let Encrypt

Điều kiện tiên quyết cho AWS

  • Một Inst2 EC2 đang chạy.
  • Đã gán Elastic IP cho EC2 của bạn.
  • Thiết lập Amazon RDS và kết nối nó với EC2 Instance.
  • Thiết lập và định cấu hình Tuyến 53 và trỏ tên miền của bạn đến AWS.
  • Kết nối SSH thành công với Inst2 EC2 của bạn.

SSH đến EC2 Instance của bạn và thực hiện các bước được liệt kê bên dưới.

Thiết lập máy chủ ban đầu

sudo apt update
sudo apt upgrade

Sau khi cập nhật xong, bạn có thể bắt đầu cài đặt các gói cần thiết.

Cài đặt Nginx

Để cài đặt Nginx thực hiện các lệnh sau.

sudo apt install nginx

Bây giờ Nginx đã được cài đặt và bạn cần cấu hình tường lửa.

Cấu hình tường lửa với UFW

Giờ đây, bạn có thể thiết lập Tường lửa không biến đổi (UFW) với Nginx để cho phép truy cập công khai trên các cổng web mặc định cho HTTP và HTTPS

sudo ufw app list

Bạn sẽ thấy tất cả các ứng dụng được liệt kê.

Output
Available applications:
   Nginx Full
   Nginx HTTP
   Nginx HTTPS
   OpenSSH

Bây giờ chúng tôi sẽ cho phép tường lửa cho SSH và cho cổng 80 và 443.

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'

Với lệnh này, bạn có thể xem trạng thái của UFW.

sudo ufw status

Bạn sẽ thấy đầu ra như sau.

Output
Status: active
 To                         Action      From
 --                         ------      ----
 Nginx Full                 ALLOW       Anywhere                  
 OpenSSH                    ALLOW       Anywhere                  
 Nginx Full (v6)            ALLOW       Anywhere (v6)             
 OpenSSH (v6)               ALLOW       Anywhere (v6)

Cài đặt PHP 7.4 FPM

Thực hiện lệnh sau để cài đặt PHP 7.4 FPM và một số phần mở rộng cần thiết bằng các lệnh sau.

Thêm ondrej/php có gói PHP 7.4 FPM và các phần mở rộng PHP cần thiết khác.

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

Cài đặt PHP 7.4 và các phần mở rộng.

sudo apt install php7.4 php7.4-fpm php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-intl php7.4-bcmath unzip -y

Cài đặt trình soạn thảo

Để cài đặt Symfony phiên bản mới nhất, bạn cần sử dụng Trình soạn thảo để tải xuống Symfony. Thực hiện lệnh sau để cài đặt Trình soạn thảo.

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

Download Symfony 5

Khi bạn đã cài đặt Nginx, PHP và Trình soạn thảo, bạn có thể tiếp tục và tải xuống Symfony bằng Trình soạn thảo.

Điều hướng đến thư mục gốc web của bạn và tiến hành tải xuống Symfony.

cd /var/www/html
sudo composer create-project symfony/skeleton symfony5

Nếu bạn đang sử dụng các loại máy micro machine, cài đặt của bạn sẽ bị tắt do bộ nhớ thấp, trong trường hợp này bạn có thể thiết lập không gian hoán đổi. Phương pháp này cho phép bạn cài đặt Symfony trên máy vi tính.

Sau khi cài đặt hoàn tất, bạn cần thiết lập quyền chính xác.

sudo chown -R www-data:www-data /var/www/html/symfony5/
sudo chmod -R 755 /var/www/html/symfony5/

Định cấu hình Nginx cho Symfony

Bắt đầu bằng cách vô hiệu hóa cấu hình Nginx mặc định.

sudo rm /etc/nginx/sites-available/default
sudo rm /etc/nginx/sites-enabled/default

Tạo cấu hình Nginx mới cho trang web của bạn trong thư mục trang web có sẵn.

sudo nano /etc/nginx/sites-available/domainname.com

Sao chép và dán cấu hình sau, đảm bảo rằng bạn thay đổi tên miền bằng tên miền của bạn.

server {
     listen 80;
     listen [::]:80;
     server_name domainname.com www.domainname.com;

     error_log /var/log/nginx/error.log;

     root  /var/www/html/symfony5/public/;
     index index.html index.php;

     client_max_body_size 100M;

     location / {
         try_files $uri $uri/ /index.php?$args;
     }

     location = /favicon.ico {
         log_not_found off;
         access_log off;
     }

     location ~ \.php$ {
         try_files $uri =404;
         fastcgi_split_path_info ^(.+.php)(/.+)$;
         fastcgi_pass unix:/run/php/php7.4-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
         fastcgi_param DOCUMENT_ROOT $realpath_root;
         fastcgi_read_timeout 3600;
         fastcgi_index index.php;
         fastcgi_buffers 16 16k; 
         fastcgi_buffer_size 32k;
         include fastcgi_params;
         internal;
     }
} 

Nhấn Ctrl + X theo sau là Y và Enter để lưu tệp và thoát.

Để kích hoạt cấu hình trang web mới được tạo này, hãy tạo một liên kết tượng trưng của tệp mà bạn vừa tạo vào thư mục kích hoạt trang web.

sudo ln -s /etc/nginx/sites-available/domainname.com /etc/nginx/sites-enabled/domainname.com

Cài đặt Let’s Encrypt SSL cho Nginx

HTTPS là một giao thức để liên lạc an toàn giữa máy chủ (ví dụ) và máy khách (trình duyệt web). Do sự ra đời của Let Dòng Encrypt, cung cấp chứng chỉ SSL miễn phí, HTTPS được mọi người chấp nhận và cũng cung cấp niềm tin cho khán giả của bạn.

sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install python-certbot-nginx

Bây giờ chúng ta đã cài đặt Chứng chỉ bot bằng Let Encrypt cho Ubuntu 18.04, chạy lệnh này để nhận chứng chỉ của bạn.

sudo certbot --nginx certonly

Nhập email của bạn và đồng ý với các điều khoản và điều kiện, sau đó bạn sẽ nhận được danh sách các tên miền bạn cần để tạo chứng chỉ SSL.

Để chọn tất cả các tên miền, chỉ cần nhấn Enter

Điều này sẽ tự động tạo chứng chỉ mới cho miền của bạn.

Mở cấu hình Nginx của bạn và sửa đổi nó để cho phép kết nối HTTPS và cài đặt chứng chỉ SSL.

 sudo nano /etc/nginx/sites-available/domainname.com

Cấu hình sau đây sẽ chuyển hướng tất cả lưu lượng truy cập http sang https bằng www. Nếu bạn cần chuyển hướng mà không có www, bạn có thể sửa đổi dễ dàng.

server {
    listen [::]:80;
    listen 80;
    
    server_name domain.com www.domainname.com;
    
    return 301 https://www.domainname.com$request_uri;
}

 server {
     listen [::]:443 ssl http2;
    listen 443 ssl http2;
     server_name domainname.com; 

     ssl_certificate /etc/letsencrypt/live/domainname.com/fullchain.pem;
     ssl_certificate_key /etc/letsencrypt/live/domainname.com/privkey.pem; 

     error_log  /var/log/nginx/error.log; 

     root  /var/www/html/symfony5/public/;
     index index.html index.php;

     return 301 https://www.domainname.com$request_uri; 
} 
 
server {
     listen 443 ssl http2;
     listen [::]:443 ssl http2;
     server_name www.domainname.com;

     ssl_certificate /etc/letsencrypt/live/domainname.com/fullchain.pem;
     ssl_certificate_key /etc/letsencrypt/live/domainname.com/privkey.pem;  

     error_log  /var/log/nginx/error.log;

     root  /var/www/html/symfony5/public/;
     index index.html index.php;

     location / {
         try_files $uri $uri/ /index.php?$args;
     }

     location = /favicon.ico {
         log_not_found off;
         access_log off;
     }

     location ~ \.php$ {
         try_files $uri =404;
         fastcgi_split_path_info ^(.+.php)(/.+)$;
         fastcgi_pass unix:/run/php/php7.4-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
         fastcgi_param DOCUMENT_ROOT $realpath_root;
         fastcgi_read_timeout 3600;
         fastcgi_index index.php;
         fastcgi_buffers 16 16k; 
         fastcgi_buffer_size 32k;
         include fastcgi_params;
         internal; 
     }
} 

Giá trị http2 là tất cả những gì cần thiết để kích hoạt giao thức HTTP/2.

Nhấn CTRL + X theo sau là Y để lưu các thay đổi.

Kiểm tra cấu hình của bạn và khởi động lại Nginx để các thay đổi có hiệu lực.

sudo nginx -t
sudo service nginx restart

Gia hạn chứng chỉ SSL

Chứng chỉ được cung cấp bởi Let Enc Encrypt chỉ có hiệu lực trong 90 ngày, vì vậy bạn cần gia hạn chúng thường xuyên. Vì vậy, hãy để thử nghiệm tính năng gia hạn bằng cách sử dụng lệnh sau.

Chứng chỉ được cung cấp bởi Let Enc Encrypt chỉ có hiệu lực trong 90 ngày, vì vậy bạn cần gia hạn chúng thường xuyên. Bây giờ bạn thiết lập một cronjob để kiểm tra chứng chỉ sắp hết hạn trong 30 ngày tới và tự động gia hạn.

sudo crontab -e

Thêm dòng này vào cuối tập tin

0 0,12 * * * certbot renew >/dev/null 2>&1

Nhấn CTRL + X theo sau là Y để lưu các thay đổi.

Cronjob này sẽ cố gắng kiểm tra để gia hạn chứng chỉ hai lần mỗi ngày.

Xác minh cài đặt Symfony

Bây giờ hãy truy cập tên miền của bạn trên trình duyệt của bạn, bạn sẽ thấy trang chào mừng Symfony của bạn.

Phần kết luận

Bây giờ bạn đã tìm hiểu cách cài đặt Symfony5 với PHP 7.4 và định cấu hình Nginx và cũng bảo mật cài đặt với chứng chỉ Let Enc Encrypt.

Xem thêm :Tại Đây
Blog Download Template Blogspot : Tại Đây
Blog Download Phần Mềm Free : Tại Đây
Blog Download Acapella : Tại Đây
Trang mã hóa URL : Tại Đây

.


Welcome to F4vnn.com - Blog Thủ Thuật, tất cả nội dung trên website được chúng tôi sưu tập trên Internet. Nếu có vấn đề về bản quyền với bài viết trên Blog vui lòng liên hệ với và chúng tôi sẽ xóa bài viết ngay lập tức . Liên lạc với Admin qua mail: hoangvansy90@gmail.com!

ĐỪNG QUÊN ĐĂNG KÝ FANPAGE ĐỂ NHẬN THỦ THUẬT MỚI NHẤT NHÉ!