佈署網站


Posted by tzutzu858 on 2020-09-20

目標 :

租一個遠端主機,主機裡面要有 Apache、MySQL、PHP、Tomcat、Java

主要參考 :

  1. 部署 AWS EC2 遠端主機 + Ubuntu LAMP 環境 + phpmyadmin
  2. Week14 部署之懶人包中的懶人包
  3. AWS EC2 佈署網站:卡關記錄 & 心得
  4. AWS 官方文件
  5. How To Install Apache Tomcat 9 on Ubuntu 18.04

主機 : AWS EC2

AWS 有一年免費的方案,GCP 則是部分服務沒有超過用量就免費

作業系統 : ubuntu

流程 :

  1. AWS 設定好 EC2
  2. 更新 ubuntu
  3. 安裝 Tasksel
  4. 下載 lamp-server
  5. 設定 phpmyadmin
  6. Filezilla 放網頁在主機測試
  7. 新增權限較低的 MySQL 使用者
  8. 安裝 Java
  9. 安裝 Tomcat
  10. gandi.net 域名連 主機 ip

因為步驟都和參考文章差不多,寫一下自己實際佈署額外要注意的地方

  • 設定 MySQL root 密碼強度時,sudo mysql_secure_installation
    有個步驟是選強度,選 1 以上要搭配符號,如果只想要英文加數字組合就選 0
    事後也可以更改密碼強度

  • 一開始 AWS 防火牆只有 22 port ,要自己新增 http 的 80 port,tomcat 預設是 8080 port,MySQL 預設是 3306 port

  • Windows 用戶安裝 phpmyadmin,用 Cmder 會狂閃,可以改用 Git Bash

  • MySQL 匯資料表會出錯,在 plugin_interface.lib.php 要改設定,文章AWS EC2 佈署網站:卡關記錄 & 心得裡面有更詳細說明

  • 很多資料夾的權限要記得更改,才可以執行、開啟或傳檔案,指令 : sudo chown 使用者 檔案或檔案位置


2020_9_22 更新

目標 : 更改 Tomcat catalina.properties 配置文件

文章參考:

Tomcat 的 catalina.properties 文件位於/conf/目錄下面,該文件主要配置 tomcat 的安全設置、類加載設置、不需要掃描的類設置、字符緩存設置四大塊。

步驟 :

1.先更改權限,原本在 /opt/tomcat 不能新增資料夾
sudo chown ubuntu /opt/tomcat

2.在 tomcat 根目錄下新增 shared/lib
cd /opt/tomcat
mkdir shared
cd shared
mkdir lib
cd lib
把 jar 檔放進去

3.更改權限
sudo chown ubuntu /opt/tomcat/conf
sudo chown ubuntu /opt/tomcat/conf/catalina.properties

4.更改 catalina.properties 內容
第 90 行改成 shared.loader=/opt/tomcat/shared/lib/*.jar
(遠端佈署不要做改 108 行這件事)第 108 行改成 tomcat.util.scan.StandardJarScanFilter.jarsToSkip=/*.jar
然後下面的值全部註解掉 約 109 行 ~ 190 行,文章有說實際部署的時候發現,不需要修改"tomcat.util.scan.DefaultJarScanner.jarsToSkip"的值,修改後反而可能出錯,具體原因未知。

5.重啟 tomcat
sudo systemctl restart tomcat

這樣就 OK 了,專案在 /WEB-INF/lib 也不用放 jar 檔
附上 tomcat中class和jar的載入順序

為何需要 mysql-connector-java-5.1.41-bin.jar ?

Java 資料庫連接,(Java Database Connectivity,簡稱 JDBC),如果要連那一個資料庫類型就需要那個資料庫的 jar 檔
以 MySQL 為例,要去 MySQL 官網下載 connector/j
也有其他語言 https://www.mysql.com/products/connector/
像是 Node.js Driver for MySQL (Connector/Node.js) 或是 Python Driver for MySQL (Connector/Python)

以下不確定
舊版沒有分平台 程式裡面載入 Driver 的路徑是打 com.mysql.jdbc.Driver
https://dev.mysql.com/downloads/connector/j/5.1.html

新版有分平台 程式裡面載入 Driver 的路徑是打 com.mysql.cj.jdbc.Driver
https://dev.mysql.com/downloads/connector/j/

實際部屬測試是使用舊版,沒有試過新版,所以不是很確定新版的流程


2020_9_23 更新
兩台主機
AWS server1 : 裡面有 Tomcat、Java
AWS server2 : 裡面有 Apache、MySQL、PHP、Tomcat、Java


2020/9/22

兩台主機都測試改 tomcat 的 catalina.properties 檔
更改OK,測試沒問題

下午三點多 :
發現 MySQL 連不上,測試其他網頁都可以順利連線, Apache 沒問題
做的動作 : 重新啟動主機
重開機後還是連不上,但半小時後可以連了

晚上十一點多
全部掛掉 : Apache、MySQL、Tomcat、FileZilla 都連不上
CLI 用 SSH 可以連,cd ls 逛了一圈還可以
做的動作 : 重新啟動主機多次
打開系統日誌看不懂

2020/9/23

早上七點多 再度測試 -->不行
做的動作 :

  1. vim 把 catalina.properties 檔改回原本的設定
  2. 重新啟動 tomcat
  3. 重新啟動主機多次

早上九點,把有問題的 server2 關掉
啟動 server1 ,測試沒問題,不過有連資料庫的網站,因為 MySQL 是放在 server2 所以無法測試, server1 的 catalina.properties 檔維持改過的設定,server1 目前一切 OK

AWS server2 :
Usage of /: 34.4% of 7.69GB
Memory usage: 83%

早上把 AWS server1 灌 LAMP
灌到一半掛掉,然後就都毀了,直接終止主機


重新設定 AWS 虛擬機 : 安裝 Tomcat、Java、MySQL、phpmyadmin
文章在這 : https://hackmd.io/loHcvByUTg2bHy2SYM1LUQ?view
目前主機狀況 :
System load: 0.0
Usage of /: 32.3% of 7.69GB
Memory usage: 63%
Swap usage: 0%

再看看後續狀況吧










Related Posts

[09] JavaScript 入門 - 原型、polyfilling、transpiling、array-like

[09] JavaScript 入門 - 原型、polyfilling、transpiling、array-like

React 中 Class Component 的生命週期

React 中 Class Component 的生命週期

N1.1_Sass 實作補充_CSS 預處理器

N1.1_Sass 實作補充_CSS 預處理器


Comments