deploy
gcp
nginx
laravel
database
這次部署踩了不少雷,像是因為專案是用 Laravel 8 寫的,所以機器也要升到 PHP7.4,但怎麼升、要裝哪些東西也是卡很久;裝好後那個權限問題也是折騰了一番,為了下次不再崩潰,紀錄個部署流程
準備
步驟
GCP 全名 Google Cloud Platform,Compute Engine 是 GCP 開虛擬機的服務
開好機器
Make sure you are authenticated with the correct account:
gcloud config set account ACCOUNT
Depending on the account, the project list will be different:
若要安裝特定版本sudo apt-get install mysql-server-5.7
若要設密碼:$sudo mysql_secure_installation
啟動 mysql-server:
查看是否成功啟動:
進入 mysql server:
查看目前使用者及其身份驗證方式:
給予新建的使用者存取DB的權限:
(*.* 代表所有DB的所有 table)
查看目前 mysql server的使用者:
建立 DB
安裝相關套件
環境檔設置
其他環境變數設置,例如 API KEY、AUTH TOKEN
這邊很重要!三顆星!
移動到專案目錄
專案擁有者改為自己、全組改為 www-data
權限設定,讓自己和 server 都能存取
變更三個路徑的權限
查看Port 80 是否被佔用:
(參數意義 udp, tcp, listen, numeric, process)
numeric 的意思是將名稱數字化(IP),例:原本的 localhost 會變成 127.0.0.1
Ubuntu 的映像檔已內建 Apache2,預設是開啟聽著 80 port, 查看 apache2 狀態:sudo systemctl status apache2
我們要改用 Nginx, 但是因為安裝 Nginx 後它也會自動聽 80 port,所以先把 apache2 停掉:sudo systemctl stop apache2
安裝 Nginx:sudo apt-get install nginx -y
安裝 Nginx 與 PHP溝通之套件 sudo apt-get -y --allow-unauthenticated install php7.4-fpm
以下是只 host 一個網站的方式,所以直接改 default
修改預設 config
內容可參考以下
改好儲存後重新載入設定
reload 成功的話 /var/log/nginx/error.log 會有紀錄
去網址查看是否成功!
如果錯誤,例如 500 可去看 nginx 或 Laravel 專案的 log /var/log/nginx/error.log debug、project/storage/logs/
如果誤刪 error.log 只要在執行一次 reload 就會再產生
Set up domain
SSL
https://xenby.com/b/101-教學-申請lets-encrypt憑證與啟用https-nginx
自動更新憑證的指令要新增排成在 root
登入 root 使用者
編輯 crontab