網站部屬


Posted by chihyu on 2021-01-25

網站部屬 AWS

大致流程:在 AWS 設定主機 --> 用 CLI 連接主機 --> 在主機架設 LAMP --> 上傳本地資料庫到遠端 --> 上傳本地檔案到遠端

AWS 設定主機

  1. 右上角選擇地區(地區越接近就越快)
  2. 從 service 中找到 EC2,點選進去
  3. 出現 Choose an Amazon Machine Image (AMI) 的步驟畫面,選擇 Ubantu Server,下一步
  4. 出現 Choose an Instance Type,選擇有標示 Free tier eligible 的選項
  5. 一直按 Next 直到 Step 6: Configure Security Group
  6. Configure Security Group 設定 AWS 上的防火牆規則,新增(Add Rule),在 Type 選擇 HTTPHTTPSMYSQL,Source 選擇隨處
    預設:

    | Type | Protocol | Port Rnage | Source    |
    | ---- | -------- | ---------- | --------- |
    | SSH  | TCP      | 22         | 0.0.0.0/0 |
    
    • SSH 代表可以用 ssh 指令連到這個主機
    • Source 0.0.0.0/0 表示允許所有 IP 都可以連到
  7. Review and Launch,檢查沒問題按 Launch
  8. 跳出 Select an existing key pair or create a new key pair 的框框,選擇 Create a new key pair,輸入 key pair 的名稱(自訂),按 Download Key Pair,下載存檔(等下會用到)
  9. Launch Instances

CLI 連接主機

  1. 打開 CLI
  2. 改變 Key pair 的權限:
    chmod 400 Key Pair 存檔的位置/ Key Pair 的名稱
    ex. chmod 400 ./Downloads/demo_key.pem
  3. 輸入 Key:
    ssh -i Key Pair 存檔的位置/ Key Pair 的名稱 ubantu@{ Public DNS(IPv4) } 或 { IPv4 Public IP } (AWS 上產生的)
    ex. ssh -i ./Downloads/demo_key.pem ubantu@ec2-0-00-000-000.compute-1.amazonaws.com
  4. 出現 Welcome to Ubantu 就成功進入主機了
    • 輸入 top:出現主機資訊 (按 "q" 離開)

架設 LAMP

LAMP - Linux、Apache、MySQL、PHP

  1. 更新 Ubantu:
    sudo apt update && sudo apt upgrade && apt dist-upgrade

    • sudo:以管理員身分執行
    • apt:在 Ubantu 上管理套件的程式
  2. 安裝 tasksel 這個軟體:
    sudo apt install tasksel

  3. 用 tasksel 安裝 LAMP
    sudo tasksel install lamp-server
  4. 如果安裝好就可以直接在網址列輸入 自己的 IP,跳出 Ubuntu Default Page 就代表 Apache server 架設好了

  5. 安裝 phpMyAdmin
    sudo apt install phpmyadmin

    • 出現勾選框[ ] 按空白鍵會變[ * ] ,就會選到了
    • 出現 ok 選項,一直按下,再按右
    • 輸入 phpmyadmin 的密碼 (管理 phpmyadimin 用的)
  6. 登入 MySQL:
    sudo mysql -u root mysql
  7. 更改 root 的登入方式:
    UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root'; (讓 root 可以用密碼的方式登入)
  8. 接著輸入 FLUSH PRIVILEGES;exit; 離開
  9. 設定 root 的密碼
    sudo mysql_secure_installation
    • 選擇 password 的要求,選 0 最簡單
    • 輸入密碼(注意畫面不會顯示)
    • 回答 yes、no 問題
  10. 進入 phpMyAdmin
    • 在網址列輸入 自己的 IP/phpmyadmin
      ex. 0.00.000.000/phpmyadmin
    • 使用者名稱:root 、密碼:剛剛設定的密碼
  11. 把 bind-address 註解掉
    • sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 進入 vim
    • 找到 bind-address,加上 # 註解掉
    • sudo service mysql restart 重跑一次 mysql

上傳本地資料庫到遠端

  1. 到 localhost 的 phpmyadmin 選要上傳的資料庫
  2. "匯出",匯出方式:快速、格式:SQL(匯出後會有檔案下載下來)
  3. 到遠端的 phpmyadmin 建立新的資料庫
  4. "匯入",選擇剛剛匯出的檔案
  5. 執行 -> 成功時,就可以看到剛剛本地的資料庫出現

上傳本地檔案到遠端

  1. 打開 filezilla
  2. 開啟站台管理員
  3. 按 "新增站台"
  4. 設定
    • 協定:SFTP
    • 主機:自己遠端的 IP
    • 登入形式:金鑰檔案
    • 使用者:ubuntu
    • 金鑰檔案:之前下載過的那個檔案
  5. 按 "連線"
  6. 進入 /var/www/html/
  7. 把要上傳的檔案放入 html 的資料夾
  8. 在網址輸入 IP/檔案名稱 就會出現檔案了
    ex. 0.00.000.000/index.php
    註:這裡把 IP 換成已經設定好的域名也能成功出現檔案

補充:

  • telnet IP + port:確認 port 有沒有開
  • 預設只有 localhost 連到 mysql,要讓所有地方都連得到 mysql 的設定:
    1. 在 phpmyadmin 選使用者權限
    2. 選擇 root 按編輯權限
    3. 進入後按登入資訊
    4. 主機名稱選擇任何主機
    5. 輸入密碼
    6. 執行 -> 成功時,使用者帳號就會出現主機名稱顯示 %

#Web #Deploy #aws #ec2 #LAMP







Related Posts

React 18 入門到放棄day 1

React 18 入門到放棄day 1

原型鏈(Prototype Chain)

原型鏈(Prototype Chain)

r3:0 異世界網站挑戰攻略與心得

r3:0 異世界網站挑戰攻略與心得


Comments