iT邦幫忙

2021 iThome 鐵人賽

DAY 21
2
Software Development

Laravel 新手初見 API系列 第 21

Day21-部署篇(三)Laravel 專案部署與 MySQL、Nginx 設定

  • 分享至 

  • xImage
  •  

大家好~
繼續昨天的主題,
今天要來把 Laravel 部署上 Server,
順便設定一下 MySQL 與 Nginx。

MySQL

先來為我們的專案建立一位專屬 User 吧。

進入 MySQL

sudo mysql -u root 

建立 DATABASE

CREATE DATABASE `ironman2021`;

建立新 User

CREATE USER 'laravel'@'localhost' IDENTIFIED BY 'password';

給新 User 權限

// 下面這段給予 laravel 這位 User 在 ironman2021 這個資料庫的所有資料表擁有所有權限
GRANT ALL ON ironman2021 . * TO 'laravel'@'localhost';

Laravel 專案部署

再來將專案 clone 下來~

git clone

使用 git clone 下載專案 ,
這邊我是將專案放在 /var/www 下。

sudo git clone https://github.com/rrrui0812/Laravel-LINEBot.git ironman2021

修改專案的擁有者與群組

// 將 ubuntu 加到 www-data 這個群組
sudo usermod -a -G www-data ubuntu
// 修改擁有者與群組
sudo chown -R ubuntu:www-data /var/www/ironman2021
sudo chown -R www-data:www-data /var/www/ironman2021/storage

composer install

composer install

安裝 npm

sudo apt install npm

npm install

修改 .env

cp .env.example .env
vim .env

把剛剛新建的 MySQL user 與 Database 寫進 .env

建立 Key

php artisan key:generate

這個 Key 可以在 .env 內的 APP_KEY 看到。

php artisan migrate

sudo php artisan migrate

Nginx

cd /etc/nginx/sites-available
// 複製 default 來修改使用
sudo cp default ironman2021
sudo vim ironman2021
/etc/nginx/sites-available/ironman2021
server {
        listen 80;

        root /var/www/ironman2021/public;

        index index.php index.html;

        server_name 127.0.0.1;
        
        location / {
                try_files $uri $uri/ =404;
        }

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

        location ~ /\.ht {
                deny all;
        }
}

測試一下,
確定 Nginx 可以正常執行。

sudo nginx -t

為剛剛建立好的 ironman2021sites-enabled 建立連結,
並把 sites-enableddefault 刪除。

sudo ln -s /etc/nginx/sites-available/ironman2021 /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default

restart nginx。

重啟 nginx。

sudo systemctl restart nginx

成果預覽:

在瀏覽器上輸入 IP,
看看有沒有出現 Laravel 的預設首頁。

成功~

那麼今天就先這樣啦~
大家明天見!
若文章有任何問題,
還請大家不吝賜教!

參考資料:


上一篇
Day20-部署篇(二)SSH 連線與 PHP、Composer、Nginx、MySQL 安裝
下一篇
Day22-部署篇(四)Domain name、TLS
系列文
Laravel 新手初見 API30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言