網站部屬 AWS
大致流程:在 AWS 設定主機 --> 用 CLI 連接主機 --> 在主機架設 LAMP --> 上傳本地資料庫到遠端 --> 上傳本地檔案到遠端
AWS 設定主機
- 右上角選擇地區(地區越接近就越快)
- 從 service 中找到 EC2,點選進去
- 出現 Choose an Amazon Machine Image (AMI) 的步驟畫面,選擇 Ubantu Server,下一步
- 出現 Choose an Instance Type,選擇有標示 Free tier eligible 的選項
- 一直按 Next 直到 Step 6: Configure Security Group
在 Configure Security Group 設定 AWS 上的防火牆規則,新增(Add Rule),在 Type 選擇 HTTP、HTTPS、MYSQL,Source 選擇隨處
預設:| Type | Protocol | Port Rnage | Source | | ---- | -------- | ---------- | --------- | | SSH | TCP | 22 | 0.0.0.0/0 |
- SSH 代表可以用 ssh 指令連到這個主機
- Source 0.0.0.0/0 表示允許所有 IP 都可以連到
- 按 Review and Launch,檢查沒問題按 Launch
- 跳出 Select an existing key pair or create a new key pair 的框框,選擇 Create a new key pair,輸入 key pair 的名稱(自訂),按 Download Key Pair,下載存檔(等下會用到)
- 按 Launch Instances
CLI 連接主機
- 打開 CLI
- 改變 Key pair 的權限:
chmod 400 Key Pair 存檔的位置/ Key Pair 的名稱
ex.chmod 400 ./Downloads/demo_key.pem
- 輸入 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
- 出現 Welcome to Ubantu 就成功進入主機了
- 輸入 top:出現主機資訊 (按 "q" 離開)
架設 LAMP
LAMP - Linux、Apache、MySQL、PHP
更新 Ubantu:
sudo apt update && sudo apt upgrade && apt dist-upgrade
- sudo:以管理員身分執行
- apt:在 Ubantu 上管理套件的程式
安裝 tasksel 這個軟體:
sudo apt install tasksel
- 用 tasksel 安裝 LAMP
sudo tasksel install lamp-server
如果安裝好就可以直接在網址列輸入 自己的 IP,跳出 Ubuntu Default Page 就代表 Apache server 架設好了
安裝 phpMyAdmin
sudo apt install phpmyadmin
- 出現勾選框[ ] 按空白鍵會變[ * ] ,就會選到了
- 出現 ok 選項,一直按下,再按右
- 輸入 phpmyadmin 的密碼 (管理 phpmyadimin 用的)
- 登入 MySQL:
sudo mysql -u root mysql
- 更改 root 的登入方式:
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root';
(讓 root 可以用密碼的方式登入) - 接著輸入
FLUSH PRIVILEGES;
、exit;
離開 - 設定 root 的密碼
sudo mysql_secure_installation
- 選擇 password 的要求,選 0 最簡單
- 輸入密碼(注意畫面不會顯示)
- 回答 yes、no 問題
- 進入 phpMyAdmin
- 在網址列輸入 自己的 IP/phpmyadmin
ex. 0.00.000.000/phpmyadmin - 使用者名稱:root 、密碼:剛剛設定的密碼
- 在網址列輸入 自己的 IP/phpmyadmin
- 把 bind-address 註解掉
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
進入 vim- 找到 bind-address,加上 # 註解掉
sudo service mysql restart
重跑一次 mysql
上傳本地資料庫到遠端
- 到 localhost 的 phpmyadmin 選要上傳的資料庫
- 按 "匯出",匯出方式:快速、格式:SQL(匯出後會有檔案下載下來)
- 到遠端的 phpmyadmin 建立新的資料庫
- 按 "匯入",選擇剛剛匯出的檔案
- 執行 -> 成功時,就可以看到剛剛本地的資料庫出現
上傳本地檔案到遠端
- 打開 filezilla
- 開啟站台管理員
- 按 "新增站台"
- 設定
- 協定:SFTP
- 主機:自己遠端的 IP
- 登入形式:金鑰檔案
- 使用者:ubuntu
- 金鑰檔案:之前下載過的那個檔案
- 按 "連線"
- 進入 /var/www/html/
- 把要上傳的檔案放入 html 的資料夾
- 在網址輸入 IP/檔案名稱 就會出現檔案了
ex. 0.00.000.000/index.php
註:這裡把 IP 換成已經設定好的域名也能成功出現檔案
補充:
- telnet IP + port:確認 port 有沒有開
- 預設只有 localhost 連到 mysql,要讓所有地方都連得到 mysql 的設定:
- 在 phpmyadmin 選使用者權限
- 選擇 root 按編輯權限
- 進入後按登入資訊
- 主機名稱選擇任何主機
- 輸入密碼
- 執行 -> 成功時,使用者帳號就會出現主機名稱顯示 %