目標 :
租一個遠端主機,主機裡面要有 Apache、MySQL、PHP、Tomcat、Java
主要參考 :
- 部署 AWS EC2 遠端主機 + Ubuntu LAMP 環境 + phpmyadmin
- Week14 部署之懶人包中的懶人包
- AWS EC2 佈署網站:卡關記錄 & 心得
- AWS 官方文件
- How To Install Apache Tomcat 9 on Ubuntu 18.04
主機 : AWS EC2
AWS 有一年免費的方案,GCP 則是部分服務沒有超過用量就免費
作業系統 : ubuntu
流程 :
- AWS 設定好 EC2
- 更新 ubuntu
- 安裝 Tasksel
- 下載 lamp-server
- 設定 phpmyadmin
- Filezilla 放網頁在主機測試
- 新增權限較低的 MySQL 使用者
- 安裝 Java
- 安裝 Tomcat
- 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
早上七點多 再度測試 -->不行
做的動作 :
- vim 把 catalina.properties 檔改回原本的設定
- 重新啟動 tomcat
- 重新啟動主機多次
早上九點,把有問題的 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%
再看看後續狀況吧