本次是把已經在本地跑通的Javaweb項目部署到雲服務器上,踩了很多坑,磨磨唧唧很長時間。我使用的服務器是阿里雲的 centos7.8版本。本篇文章主要內容有:
- 雲服務器的控制台配置
- 服務器上JDK的安裝和配置
- 數據庫MariaDB的安裝和遠程連接
- tomcat的安裝和啟動
- JDBC連接
- 本地javaweb部署到雲服務器
都為親測可試,歡迎補充。
一、雲服務器配置
雲服務器啟動后並不能達到我們要的效果,首先要設置安全組,允許外網訪問的端口范圍。
開啟的端口有:
- 8080:tomcat的應用端口
- 80:HTTP的服務端口
- 3306:MariaDB數據庫的訪問端口
- 443:https的端口
之前的MySQL遠程配置一直失敗,可能是忘記打開了3306端口,下次需要注意。
二、JDK的安裝
采用的離線解壓安裝方式,提前下好安裝包,https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html。然后使用Xftp上傳到服務器。
再解壓到自己想要的目錄內,tar -zxvf jdk-13.0.1_linux-x64_bin.tar.gz -C 目標目錄。
解壓后,配置環境變量,使用命令 vim/etc/profile 編輯,在最后加上如下內容。
保存退出后,使用命令 source /etc/profile 重新加載配置文件。(該命令運行結束無內容)
使用 java -version 命令查看是否配置完成。
三、MariaDB的安裝和遠程連接
近來MySQL被收購,有閉源的風險,所以嘗試了MariaDB數據的使用。該數據庫完全兼容了MySQL,並且開源免費。
MariaDB的安裝
采用的是在線安裝。
首先輸入命令:vi /etc/yum.repos.d/MariaDB.repo 在yum下添加配置文件MariaDB.repo,並編輯內容:
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
然后通過命令安裝即可。
yum install MariaDB-server MariaDB-client -y
MariaDB 安裝完畢后,立即啟動數據庫服務守護進程。
systemctl start mariadb
設置 MariaDB 在操作系統重啟后自動啟動服務。
systemctl enable mariadb
查看 MariaDB 服務當前狀態。
systemctl status mariadb
對 MariaDB 進行安全配置
通過命令 mysql_secure_installation 進行安全配置,根據實際情況用Y/N回復以下問題:
- 設置 MariaDB 的 root 賬戶密碼
- 刪除匿名用戶
- 禁用 root 遠程登錄
- 刪除測試數據庫
- 重新加載權限表
本人全都是選擇了Y,然后按回車。
在配置完數據庫的安全配置后,可以通過以下命令查看版本,確認 MariaDB已安裝成功。
mysql --version
可以通過 MariaDB 命令行登錄,然后對數據庫進行sql查詢操作。
mysql -u root -p
遠程連接
輸入命令,開啟root用戶的遠程權限並刷新即可。
grant all privileges on *.* to 'root'@'%' identified by 'password' ; flush privileges;
四、Tomcat的安裝和開啟
采用的離線安裝:
下載后上傳到服務器,並解壓到自己的目錄下,即安裝完成。
開啟服務,進入解壓好的tomcat的bin目錄下。輸入命令:./startup.sh開啟tomcat服務。
即可在瀏覽器輸入雲服務器的IP地址加8080端口號訪問。
五、JDBC連接
雖說MariaDB 和 MySQL 兼容,但也難免存在問題。
首先是MariaDB的JDBC連接,需要jar包支持,下載地址 https://mariadb.com/downloads/#connectors ,在右邊選擇Java的版本下載即可。
下載得到的jar放入javaweb項目 Add as a Library即可。
代碼也有需要修改的地方。
driverClassName=org.mariadb.jdbc.Driver
url=jdbc:mariadb://1.1.1.1:3306/dbname 填上雲服務器的IP地址
import java.sql.*; public class DBTest { public static void main(String[] args) { try { String driver ="org.mariadb.jdbc.Driver"; //從配置參數中獲取數據庫url String url = "jdbc:mariadb://(1.11.1.1):3306/test"; //從配置參數中獲取用戶名 String user = "root"; //從配置參數中獲取密碼 String pass = ""; //注冊驅動 Class.forName(driver); //獲取數據庫連接 Connection conn = DriverManager.getConnection(url,user,pass); //創建Statement對象 Statement stmt = conn.createStatement(); System.out.println("Success!"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
並且注意,MariaDB對sql語句的大小寫敏感,數據庫名,表明或字段名必須都為小寫,才可以,否則報錯查找不到。
六、本地javaweb部署到雲服務器
將項目打包成war包,然后復制進tomcat/webapps/目錄下即可。
IDEA下的war包方法:
然后在項目的 out 目錄下即可查看到打包好的war包。
然后在瀏覽器地址,上面步驟的8080后面加上項目名字,即可在外網輸入IP地址訪問到我們的項目啦。
七、JAVAWEB的maven項目配置
1、Maven的服務器安裝
Maven項目在如今越來越重要。下面是在CentOS7上安裝和配置Maven的過程:
在mirrors鏡像連接中,可以選擇清華的鏡像,這樣速度會比較快:下載地址。
下載后上傳到服務器,解壓到相關目錄,然后進行環境變量的配置:vim /etc/profile
#Maven Env export MAVEN_HOME=/home/tools/apache-maven-3.6.3 export PATH=$PATH:$MAVEN_HOME/bin
然后 source /etc/profile,即可。
之后輸入 mvn -v,出現版本號即可。
2、JAVAWEB項目的maven配置注意事項
今天在maven中,使用durid連接池總是出錯,得到原因是未能訪問到durid.properties配置文件。
解決方法:添加 resources 目錄,並將配置文件放進去即可。參考博客地址:https://blog.csdn.net/baidu_32045201/article/details/79223386。