由於正在開發一個我的的微信小程序項目,因此開始學習如何部署SpringBoot服務器,以前徹底沒有接觸過部署服務器相關,只能從0開始摸索,網上各類文章雜亂得很,並且大多都語焉不詳,徹底跟不上做者的腦回路,因此摸索得很是痛苦!
所幸最後成功了,記錄一下完整的步驟,造福後來的跟我同樣的小白們。html
部署步驟java
- 雲服務器的購買和配置
- 安裝JDK
- 安裝Tomcat
- 安裝svn
- 安裝Maven
- 打包SpringBoot項目
- 設置安全組
- 安裝MySQL
- 服務器的代碼更新
我選擇的是阿里雲服務器(產品選擇爲彈性計算 > 雲服務器ECS),新註冊用戶有1個月的免費試用最低套餐的優惠,足夠用來作部署實驗。mysql
因爲咱們是從 0 配置,選擇 CentOS 7.4 64位純淨系統就能夠了,不須要安裝其餘鏡像。
鏈接到實例以後,先關閉防火牆和它的自啓動服務
systemctl stop firewalld.service
systemctl disable firewalld.service
linux
我在網上沒找到鏡像,只能到 oracle 官網下載,須要注意的是這個 url 應該是每一個人不同的,因此最好你本身去獲取這個 url ,而後替換到下面的命令裏
wget -O jdk-8u171-linux-x64.tar.gz http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz?AuthParam=1528361342_930e23cd80acb666184698646f076dc6
解壓
mkdir /usr/java
tar xzf jdk-8u171-linux-x64.tar.gz -C /usr/java
配置環境變量
vi /etc/profile
git
進入vi後,按 i 能夠進行輸入,編輯完之後按 Esc ,而後輸入 :wq 便可保存並退出github
在文件結尾插入如下代碼:web
#set java environment export JAVA_HOME=/usr/java/jdk1.8.0_171 export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib export PATH=$JAVA_HOME/bin:$PATH
保存退出後,運行如下命令以使更改生效
source /etc/profile
此時能夠運行java -version
來確認是否配置成功spring
下載 Tomcat
wget https://mirrors.aliyun.com/apache/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.tar.gz
解壓
tar xzf apache-tomcat-8.5.31.tar.gz
mv apache-tomcat-8.5.31 /usr/local/tomcat/
編輯配置文件
cd /usr/local/tomcat/conf/
vi server.xml
將文件相應 2 處位置的內容按照下面修改sql
注意這個文件默認狀況下有很是多的註釋,vi若是沒有高亮很容易改到註釋裏,我就改錯過orz數據庫
- Connector port="80" 處本來爲 Connector port="8080"
- 其中 Host name="xx.xx.xx.xx" 處替換成你的雲服務器的外網ip或域名
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" address="0.0.0.0" /> <Host name="xx.xx.xx.xx" appBase="/home/project/webapps" unpackWARs="true" autoDeploy="true">
建立項目及部署目錄
mkdir /home/project
mkdir /home/project/webapps
設置 JVM 內存參數
vi /usr/local/tomcat/bin/setenv.sh
JAVA_OPTS=’-Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx496m -Dfile.encoding=UTF-8’
設置 Tomcat 自啓動腳本
wget https://github.com/lj2007331/oneinstack/raw/master/init.d/Tomcat-init
mv Tomcat-init /etc/init.d/tomcat
chmod +x /etc/init.d/tomcat
sed -i 's@^export JAVA_HOME=.*@export JAVA_HOME=/usr/java/jdk1.8.0_171@' /etc/init.d/tomcat
chkconfig --add tomcat
chkconfig tomcat on
service tomcat start
依次運行完以上命令之後,應該就能夠看到 Tomcat 啓動的信息了
以上設置我是在 阿里雲幫助文檔 學到的,可是有不一樣,感興趣的同窗能夠點開原文查看詳情
下載 svn 並安裝
yum -y install subversion
能夠檢查 svn 是否安裝成功
svnserve --version
移動到以前建立的項目目錄下
cd /home/project
此時我用 svn 拉取代碼時產生了 error ,百度告訴我要再安裝一個認證服務
sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap
如今能夠拉取代碼了
***處替換爲你的代碼庫地址
svn checkout svn://***
下載、安裝、解壓
wget https://mirrors.aliyun.com/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
mkdir /usr/local/maven
tar -zxvf apache-maven-3.5.3-bin.tar.gz -C /usr/local/maven/
同 JDK,配置環境變量
vim /etc/profile
export M2_HOME=/usr/local/maven/apache-maven-3.5.3 export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$M2_HOME/bin:$PATH
使新的環境變量生效
source /etc/profile
進入項目目錄
- ***處替換爲你用svn拉取下來的項目目錄
- 個人SpringBoot項目是用 idea + Maven 構建的,而且注意 pom.xml 文件中的設置爲
war
- 關於如何構建SpringBoot項目,能夠參考 慕課網課程-SpringBoot+MyBatis搭建迷你小程序
cd /home/project/***
使用 Maven 打包可執行文件
mvn clean package
將可執行 war 移動到部署文件夾中並命名爲 ROOT.war
這是爲了使訪問項目時能夠直接使用 域名 或者 ip:端口 ,若是不用 ROOT 做爲名字,就必須用 域名/項目名 或者 ip:端口/項目名 來訪問
cd target
mv nrserver-0.0.1-SNAPSHOT.war /home/project/webapps/ROOT.war
重啓 Tomcat
service tomcat restart
雖然已經部署好服務器,可是目前還並不能訪問,這是由於阿里云爲了服務器的安全,默認禁止了幾乎全部TCP端口訪問,咱們須要在 控制檯 > 雲服務器ECS > 安全組 > 網絡和安全 中放行須要的幾個端口,包括:TCP:80/80(HTTP)、TCP:3306/3306(MySQL)、TCP:3690/3690(svn)
此時在瀏覽器中訪問雲服務器的公網ip,如一切順利且你的SpringBoot中添加了index.html,就能夠看到網頁打開成功了!
下載、安裝
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
yum -y install mysql-community-server
啓動MySQL服務
systemctl enable mysqld
systemctl start mysqld
配置MySQL,考驗你的英語能力的時候到了,這裏除了設置root用戶名和密碼之外,還有一個很重要的設置就是問你是否要禁止遠程訪問,若是你要遠程鏈接這個數據庫的話,必定要選 否 !
mysql_secure_installation
若是你要遠程鏈接數據庫的話,那就要依次運行如下命令
mysql -u root -p
use mysql;
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;
第三句運行後會顯示 error ,不用管它,此時已經能夠遠程訪問了
待續