-1

Deploy laravel on EC2 aws thật đơn giản

Hôm nay, mình sẽ hướng dẫn các bước để deploy project laravel lên ec2 aws với ngix.

  1. Create instance linux ec2 và connect ssh vào đó. Phần này mình ko mô tả, cách làm các bạn có thể tham khảo thêm https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html
  2. Sau khi connect tới ec2, ta sẽ thực hiện install PHP và các thứ cần thiết, thực hiện các lệnh command sau:

Update Package Lists: sudo yum update

Install Nginx and PHP: sudo yum install nginx php php-fpm php-mysqlnd

Start Nginx and PHP-FPM:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Install MySQL Server:

Open a terminal window. Install the MySQL Community repository:

sudo wget https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm 
sudo ls -lrt

Install the MySQL server:

sudo dnf install mysql80-community-release-el9-1.noarch.rpm
dnf repolist enabled | grep "mysql.*-community.*"
sudo dnf install mysql-community-server

Start the MySQL server:

sudo systemctl start mysqld
sudo mysql -V

Secure the MySQL server:

sudo mysql_secure_installation Test the MySQL server:

sudo mysql -uroot -p

Nếu có lỗi install do key thi run command sau: rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023

  1. cd /home, sau đó tạo thư mục source, cd vào source rồi pull code về
  2. cd vào thư mục source code đã pull rồi chạy command:

sudo composer i sudo cp .env.example .env sudo nano .env update các thông tin env php artisan key:generate

  1. Tạo tệp cấu hình khối máy chủ Nginx mới cho ứng dụng Laravel của bạn: sudo nano /etc/nginx/conf.d/your-laravel-app.conf Nội dung file như sau:
server {
    listen 80;
    server_name localhost;
    root /home/source/ndungu-real-estate-api/public;

    index index.php index.html index.htm;

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

    location ~ \.php$ {
                include ./fastcgi.conf;
                fastcgi_pass unix:/run/php-fpm/www.sock;
        }

    error_log  /var/log/nginx/ndungu-real-estate-api.error.log;
    access_log /var/log/nginx/ndungu-real-estate-api.access.log;
}

Kiểm tra cấu hình ngix xem có lỗi gì ko bằng lệnh: sudo nginx -t

Restart Nginx Service: sudo systemctl restart nginx

Run Laravel Migrations: php artisan migrate Kiểm tra bằng cách truy cập vào ip public của ec2


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.