網站部屬
常用主機
- AWS
- Digital Ocean
- GCP
- Linode
AWS 網站部屬
建立虛擬主機
- 選擇區域,再點選使用 EC2
- 選擇機器,有標註 Free Tier eligible為提供免費之機器,選擇 Ubuntu Server 20.04 LTS
- 選擇機器Type(Free Tier eligible 為免費),選擇 t2.micro,再點選 “Next: Configure Instance Details”
- Configure 機器,不需變動,直接點選 “Next:Add Storage”
- 設定儲存記憶體,直接點選 “Next:Add Tags”
- 設定 Tags,不用設定,直接點選 “Configure Security Group”
- 設定 使用 port,default 為 SSH TCP port:22, 新增 HTTP TCP port:80,點選 “Review and Launch”,再選 Launch
- 選擇/新建 SSH key
新建: 選擇 “Create a new key pair”,填入Key pair name,點選 Download Key Pair,下載 SSH key,最後點選 “Launch Instances” 啟動機器
- 點選 “View Instances”,然後輸入新建 Instance 的 Nanme
- ssh 登入命令,點選 instance 再點選 Connect 即可看到 ssh 登入 command
- ssh 登入,進入 command line 輸入視窗,將 ssh key copy 到 command line 的目錄下,執行前一步查到的 command,即可登入
安裝
安裝 lamp
1 | # 更新軟體 |
安裝 phpmyadmin
1 | sudo apt install phpmyadmin |
按 space 選擇 apache2,再用 tab 選到 ok
選 Yes mapping database to phpadmin
輸入 phpmyadmin 註冊到資料庫的密碼
使用 browser 開啟 http://public_ip/phpmyadmin/ 即可用帳號 phpmyadmin 登入
(public_ip 填入實際ip)
設定 database
1 | # mysql version |
change apache root folder
1 | # change apache root folder |
建立 SFTP link
執行 FileZilla, 新增站台, 選擇協定為 SFTP, 設定IP, 設定使用者,選擇 ssh key 檔案,點選連線
選擇信任主機
SFTP 連線後,即可將必要的檔案傳入
建立 user 和 資料庫
建立 user
1 | sudo mysql -u root -p |
建立資料庫
匯入已有之資料庫
設定 Elastic IP(彈性IP) - 關機重開不會更改IP
- 選擇 Elastic IPs, 再點選 Allocate Elastic IP address
- 點選 Allocate
- 再選擇 Actions, Associate IP address
- 點選 Associate 即 設定完成,開 browser 看是否執行正常
設定 Domain name - DoDaDDy
- 設定 domain name 對應 ip
VSCode SFTP 同步 Server Code
- VSCode 安裝 SFTP FTP sync
- Setup Config
Ctrl
+ shift
+ P
or F1
–> SFTP:Config
–> 設定 sftp.json 內容
sftp.json 內容
1 | { |
sftp.json 內容 mutiple Context
mutiple Context 僅能 link 最後一個, name也不能重複
所以要使用時,copy 到最後,改一下 name 即可
1 | [ |
- 同步 remote Servet
Ctrl
+ shift
+ P
or F1
–> SFTP:Sync Local -> remote
選擇 server
OUTPUT 會顯示 SFTP 執行內容
安裝 #2 - 個別安裝
安裝 apache2
1 | # 更新軟體 |
安裝 php
1 | # install |
安裝 MySQL
1 | # Install MySQL |
檢查 MySQL 安裝結果
1 | # chec mysql status |
install phpMyAdmin
1 | # install phpMyAdmin 相關 package |
按 space 選擇 apache2,再用 tab 選到 ok
選 Yes mapping database to phpadmin
輸入 phpmyadmin 註冊到資料庫的密碼
1 | # enable mbstring PHP extension, |
使用 browser 開啟 http://public_ip/phpmyadmin/ 即可用帳號 phpmyadmin 登入
(public_ip 填入實際ip)
可使用 .htaccess 增加 phpMyAdmin 安全性(有必要再來研究)
其他 app 連至 MySQL
Inbound Rules 新增 HTTP TCP port:3306
mask bind-address(允許連線主機)
1 | sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf |
root localhost 改成 %
1 | sudo mysql -u root -p |
1 | # restart mysql |
heidisq port 3306 setting
logs 查詢
- apache2 log
1 | less -m -N /var/log//apache2/error.log |
AWS 部署和託管 React 應用程式
建立新的 React 應用程式
1 | npx create-react-app react-todos |
初始化 GitHub 儲存庫
建立 GitHub 儲存庫
初始化 git, 並將程式推送至 GitHub
1
2
3# git 已自動 init
git remote add origin https://github.com/hot5656/react-todos.git
git push -u origin master
使用 AWS Amplify 部署應用程式
AWS Amplify –> Deliver –> Get started
select GitHub
驗證完後, 選擇正確的 repository
接受預設的建置設定,然後選取 Next
檢閱最終詳細資訊,然後選取 Save and Deploy (儲存並部署)
AWS Amplify 主控台現在將在 https://…amplifyapp.com 建立您的源代碼並部署您的應用程式
選擇 link 即可看到執行畫面
更新應用程式
程式更動後 push 到 github
1
2
3git add .
git commit -m "update for todos"
git push -u origin master在 AWS Amplify 即可檢視更新的應用程式