Step By Step 部屬紀錄


Posted by cmtilo on 2021-07-25

人生第一次部屬~小心翼翼紀錄下來

AWS 啟動執行個體

1.註冊 AWS 帳號
2.登入 AWS 管理主控台,選擇 EC2 服務

3.跟著啟動執行個體精靈一步步啟動執行個體

  • Step1:選擇 ubuntu 18.04 LTS (HVM), SSD Volume Type(免費方案 Free tier eligible)

  • Step2:t2.micro(免費方案 Free tier eligible)

  • Step3:預設免更動直接下一步

  • Step4:可以調整 size 但不能超過磁碟大小 30GB 的上限

  • Step5:略過直接下一步

  • Step6:安全群組除了SSH 之外再增加一個 HTTP、一個 HTTPS
    (如果家裡網路是固定 IP 的話 SSH 的 source 可選擇 My IP,可限制只能從自己的 IP 連進虛擬機,但如果是浮動 IP 就不要用 My IP)

  • step7:選擇 Launch,系統提示要求金鑰對,選擇 Create a new key pair 並輸入名稱,下載私鑰 XXX.pem(這邊是儲存私有金鑰檔案的唯一機會,務必下載)
    確認 Launch Instances 啟動執行個體

4.執行個體畫面,點選進入可看詳細資訊,記住這組公有IPv4地址,就是我們虛擬機的外部 IP,等一下要連進去的位址

5.右上角點選連線,選擇SSH用戶端,停留在這個畫面等一下會用到這 2 行指令


連線到執行個體

1.打開終端機/命令提示字元,我用 git bash
2.逐步輸入以下指令(剛才複製的)
chmod 400 xxx.pem
ssh -i "xxx.pem" ubuntu@ec0-00-000-000-00.us-east-2.compute.amazonaws.com

出現以下訊息:
Are you sure you want to continue connecting (yes/no)?
輸入yes

3.現在成功連進我們的機器了!可輸入pwd確認一下,可以看到我們現在位置的確是在 /home/ubuntu 底下了


安裝 LAMP

連線完成後逐步輸入以下指令(出現訊息都採用預設選項直接 enter繼續往下)

sudo apt update && sudo apt upgrade && sudo apt dist-upgrade

sudo apt install tasksel

sudo tasksel install lamp-server


瀏覽器檢視測試檔案

1.我們虛擬機有一個預設檔案 index.html,用瀏覽器再網址列輸入 IP 可以看到預設檔案頁面,並告訴你檔案所在位置

2.回到 git bash 輸入指令進去虛擬機檔案存放位置
cd /var/www/html

3.試著建立一個測試檔案
sudo touch test.html
sudo vim test.html
輸入 hello 存檔離開

4.回到瀏覽器看一下 test.html,真的出現了!

5.注意!這邊雖然我們用 sudo 指令最高權限強制建立編輯檔案,但最好還是改變權限,之後用 FileZilla 上傳時才不會遇到權限不足的問題
輸入sudo chown ubuntu /var/www/html


設定資料庫

1.回到 git bash 逐步輸入以下指令進行資料庫登入的設定

sudo mysql -u root mysql

select * from users

UPDATE user SET plugin=’mysql_native_password’ WHERE User=’root’;

FLUSH PRIVILEGES;

exit

2.設定密碼
輸入 sudo mysql_secure_installation

出現訊息:
Would you like to setup VALIDATE PASSWORD plugin?
輸入y

There are three levels of password validation policy:
輸入012選擇不同等級的密碼規則
輸入密碼
再次輸入密碼

Do you wish to continue with thw password provided?
輸入y

Remove anymous users? 移除匿名使用者
輸入y

Disallow root login remotely? 是否關閉root遠端登入功能
輸入n
這問題是因為遠端 SSH 連線 root 是眾所周知的帳號名稱,如果密碼設定太簡單容易被攻破,所以較安全的作法是不用 root 遠端登入,另外用一般使用者帳號登入再使用 sudo 權限,但我們現在先維持使用 root 登入,所以這邊輸入n

Remove test database and access to it? 移除測試資料庫
輸入y

Reload privilege tables now? 重新載入表格權限
輸入y

3.接著我們先回去 AWS 設定一下安全群組,加入 MYSQL

新增規則 IPv4 、再一次 IPv6

4.接著繼續 git bash 設定,輸入
sudo apt install phpmyadmin

然後我們會進入一個很紫的畫面
出現訊息:
Please choose the web server that should be automatically configured to run phpMyAdmin
移動選擇 [*]apach2 -> <ok>

Configure database for phpmyadmin with dbconfig-common?
<yes>

Connection method for MySQL database of phpmyadmin:
移動選擇 [*]Unix socket -> <ok>
(問要從哪裡連資料庫,選 Unix socket 從 localhost 自己的虛擬機連自己的資料庫)

MySQL database name for phpmyadmin:
維持預設 phpmyadmin 即可 -><ok>

MySQL username for phpmyadmin:
維持預設 phpmyadmin@localhost 即可 -><ok>

MySQL application password for phpmyadmin:
維持預設空白即可 -><ok>

他會問你真的嗎要你再選一次,我們就移動選擇 [*]ignore -> <ok>
(因為其實我們前面已經設定一組 root 用來登入)

5.接著從瀏覽器網址列輸入 IP/phpmyadmin ,登入帳號密碼,可以進資料庫建立資料了!

6.依照你要部屬的網頁建立 table
接下來處理網域GO


註冊網域

1.註冊 gandi.net 帳號
2.輸入想購買的網域名稱購買網域,輸入折扣碼進行結帳動作
選擇網域名稱的時候,有一些冷門的結尾,如果考慮到長久性的話,還是選擇常見的結尾比較好!
3.進區域檔紀錄修改 IP 為我們虛擬機的 IP

4.測試一下!瀏覽器輸入網址,可以用網址的方式連上 test.html 測試檔了
最後把程式碼上傳就大功告成


FileZilla 上傳

1.編輯->設定
2.選擇 SFTP 加入金鑰檔案 xxx.pem

3.檔案 ->站台管理員
協定選擇 SFTP
主機輸入虛擬機 IP
使用者輸入 ubuntu
密碼空白

4.連線之後,遠端站台直接輸入 /var/www/html 可以看到檔案位置囉!

5.將自己的程式碼檔案上傳

完成人生第一次部屬啦~我的留言版


參考資料

感謝學長姐:
部署 AWS EC2 遠端主機 + Ubuntu LAMP 環境 + phpmyadmin
一小時完成 VPS (Virtual Private Server) 部署
如何遠端連接虛擬主機上的 mySQL 資料庫 ?
[紀錄] 部屬 AWS EC2 雲端主機 + LAMP Server + phpMyAdmin
AWS EC2 佈署網站:卡關記錄
其他網路資源:
AWS 執行個體使用者指南
Linux 禁止 root 管理者以 SSH 登入,強化系統安全性
買網域7大注意事項,免費網域可買嗎?
透過 FileZilla 使用 key-pairs 登入 AWS EC2 存取檔案


#aws #部屬 #ec2 #gandi.net







Related Posts

CH1-TCL入門

CH1-TCL入門

Day 38 - Environment variable & Workout Tracker

Day 38 - Environment variable & Workout Tracker

如何使用 Python 設計一個簡單的計算機 入門教學

如何使用 Python 設計一個簡單的計算機 入門教學


Comments