大家好~
繼續昨天的主題,
今天要來把 Laravel 部署上 Server,
順便設定一下 MySQL 與 Nginx。
先來為我們的專案建立一位專屬 User 吧。
sudo mysql -u root
CREATE DATABASE `ironman2021`;
CREATE USER 'laravel'@'localhost' IDENTIFIED BY 'password';
// 下面這段給予 laravel 這位 User 在 ironman2021 這個資料庫的所有資料表擁有所有權限
GRANT ALL ON ironman2021 . * TO 'laravel'@'localhost';
再來將專案 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
sudo apt install npm
npm install
cp .env.example .env
vim .env
把剛剛新建的 MySQL user 與 Database 寫進 .env
。
php artisan key:generate
這個 Key 可以在 .env
內的 APP_KEY
看到。
sudo php artisan migrate
cd /etc/nginx/sites-available
// 複製 default 來修改使用
sudo cp default ironman2021
sudo vim 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
為剛剛建立好的 ironman2021
在 sites-enabled
建立連結,
並把 sites-enabled
的 default
刪除。
sudo ln -s /etc/nginx/sites-available/ironman2021 /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
重啟 nginx。
sudo systemctl restart nginx
在瀏覽器上輸入 IP,
看看有沒有出現 Laravel 的預設首頁。
成功~
那麼今天就先這樣啦~
大家明天見!
若文章有任何問題,
還請大家不吝賜教!