前言
最近在跟小伙伴合作開發一款app,苦于沒有合適的公共api接口,所以決定自己搭建一個服務器,目前已實現注冊、登錄,爬蟲定時拉取閑魚首頁更新數據庫。
app傳送門 一個極致的集大成App
搭建服務器需要些什么工作
本文所介紹的服務器都是入門級別的,適合移動端同學自己搭建玩玩,還沒有達到商業開發水平,大牛請莫見怪。
我們搭建服務器主要有以下幾個步驟:
- 1.搭建開發環境,IntelliJ + spring-boot + mybatis
- 2.搭建數據庫,mysql + navicat
- 3.搭建運行環境,tomcat + 阿里云
一、搭建開發環境
本文安裝環境是基于Windows的,Linux和Mac環境也都大同小異,我就不一一介紹了,如果有問題,可以在github上留言 https://github.com/foxleezh/
1.1 IntelliJ安裝
作為Android開發,基本都習慣使用Android Studio,而IntelliJ跟它幾乎是一模一樣,因為Android Studio正是基于它開發的,所以它是Android程序員開發服務器最好的選擇。
首先我們需要去下載一個IntelliJ安裝包,https://www.jetbrains.com/idea/download/
這個軟件是需要注冊的,不過也可以試用。
1.2 配置IntelliJ
第一次運行會進入下面界面,我們選擇Darcula風格,然后一直Next就可以
之后會讓我們新建項目,這里我們先不著急,先git clone https://github.com/G-Joker/WeaponApp ,把項目拉下來放在任意一個目錄下,然后再選擇Import Project
選擇我們剛才clone下來的目錄,注意這里要選Server,Client是客戶端項目
點擊Ok,需要選擇構建方式,我們選擇import,然后選擇gradle
點擊下一步,配置下gradle和java的環境
點擊Finish即進入IntelliJ主界面,這個大家都比較熟悉了,跟Android Studio幾乎一樣,我們先進行一些界面配置,調整下字體大小,自動導包等,Ctrl+Alt+S
配置一下JDK目錄
這些步驟完成后,開發環境即配置好了,但是項目還不能運行,因為還沒有配置數據庫
二、搭建數據庫
2.1 安裝MySQL
到官網下載比較慢,所以我就直接在百度上下載了,直接百度搜索 “mysql 下載”,就可以了,我下載的文件為mysql-5.7.17.msi,點擊直接安裝,在第二步Choosing a Setup Type的時候,選擇Server only
然后一直Next,在輸入數據庫密碼的時候輸入App123,A大寫,為什么輸入這個,因為WeaponApp項目里面配置的密碼是這個
之后就一直Next,MySQL安裝成功,下面我們講數據庫操作
2.1 用navicat操作數據庫
navicat是個工具,可以直接到百度下載,然后連接數據庫,密碼是App123
新建一個數據庫test,為什么叫test,因為WeaponApp里配置的數據庫叫test
接下來導入數據,本來這里表是需要一個個建的,為了省事,我已經把項目的表結構都導出來了,在Server項目下有個tools目錄,里面有個data.sql的文件,我們可以用navcat直接導入所有的表
這樣,我們數據庫就搭建好了,接下來就可以運行項目了
三、搭建運行環境
3.1 直接運行項目
跟Android一樣,Server也有debug模式和release模式,我們先講debug模式,這個其實比較簡單,首先確定根目錄下的gradle.properties里DEVELOP_MODE=true,然后點擊運行即可
然后我們就可以在瀏覽器里輸入http://localhost:8080/home/taobaolist ,當然還有其他接口,可以參照doc目錄下的接口文檔
3.2 運行在tomcat
我們的項目需要掛到tomcat上,這樣服務就可以一直開著了,畢竟開發工具你不可能一直開著。首先我們需要去下載一個tomcat,下載地址http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.0.M27/bin/apache-tomcat-9.0.0.M27.exe 。下載好后直接運行,中間有一步選擇JDK路徑
接下來去把項目release包打出來,我們打開IntelliJ,首先確定根目錄下的gradle.properties里DEVELOP_MODE=false,然后在Terminal中輸入gradlew assemble就可以了,然后在build/libs下有個Server-0.0.1-SNAPSHOT.war,這就是我們打出的release包
我們先把這個war包改個名字,叫api.war,然后找到tomcat的安裝目錄,里面有個目錄叫webapps,把里面的文件全部刪除,然后把api.war拷貝進去,這時候api.war包會自動解壓成文件夾,說明服務器啟動了,如果沒有自動解壓,那我們可以到tomcat的bin目錄下運行Tomcat9w.exe,然后點擊下面的start
這樣我們就可以在瀏覽器輸入http://localhost:8080/api/home/taobaolist 直接訪問了,這里注意一點,和直接debug運行不同,地址8080后要加一個api的路徑,這個名字跟war包的名字相同
至此,一個本地版的服務器就搭建起來了,如果其他電腦和你的電腦在同一個局域網內,就可以通過ip地址訪問服務器了,比如你的ip是192.168.1.101,那么其他電腦就可以用http://192.168.1.101:8080/api/home/taobaolist 訪問,如果要外網也可以訪問,那就要搭建云服務器了,接下來我將講如何搭建阿里云。
3.3 搭建阿里云
搭建阿里云之前,你需要去買一個阿里云的服務器,我是買的免費6個月的,一共9.9,地址https://free.aliyun.com/ ,買了之后再進入這個頁面,它會叫你去開通各項免費服務,這里主要是 “云服務器 ECS”,其他的東西暫時用不著,開通的時候會讓你選擇什么操作系統,我選的是Windows Server 2012中文版,主要是平時開發用的Windows,你們可以根據自己的情況來,開通好后就可以前往控制臺了
阿里云控制臺提供了遠程控制功能,但是不太方便,因為一是瀏覽器比較卡,二是傳輸文件不太方便,所以我一般是直接用電腦遠程連接,首先win+R,輸入mstsc
這時候我們需要輸入遠程ip地址,這個在阿里云的控制臺上有,點擊概覽,然后選擇服務器
比如我的ip是47.95.198.174,然后輸入到剛才Win+R打開的界面,進行如下操作即可
這樣我們阿里云的服務器就可以訪問本地C盤和D盤上的內容了,而且速度也比瀏覽器快很多,接下來我們講如何在阿里云上搭建服務器運行環境。
3.4 阿里云運行環境
阿里云服務器就相當于一臺電腦,所以運行環境的搭建跟我們在本地其實是一樣的。我們先要安裝MySQL,這個跟本地一樣,我們可以去服務器的瀏覽器下載,也可以從本地拷貝過去
本地拷貝
本地拷貝的速度是比較慢的,因為遠程連接也是通過網絡,所以我建議能從瀏覽器下載的都從瀏覽器下載,除非我們要發布war包之類的才用本地拷貝。安裝完MySQL后安裝navicat,新建數據庫,導入數據,安裝tomcat,拷貝war包到webapps下,這些都跟在本地一樣。這些工作做完后,我們在服務器的瀏覽器上輸入http://localhost:8080/api/home/taobaolist ,如果能訪問說明服務器環境搭建成功
3.5 在外網訪問接口
阿里云服務器運行環境搭建好后,我們在外網用http://47.95.198.174:8080/api/home/taobaolist 是沒法訪問的,因為阿里云控制臺有安全控制,不是所有端口都可以在外網訪問的,這時我們需要去阿里云控制臺設置端口
這樣我們就可以在外網用http://47.95.198.174:8080/api/home/taobaolist 訪問了,當然我們可以把端口8080改成80,這樣我們就可以用http://47.95.198.174/api/home/taobaolist 訪問了,這個需要我們配置服務器的tomcat,打開tomcat下面的conf目錄,里面有個server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
將port改成80即可,然后同樣需要在阿里云控制臺配置80端口
如果你想把ip地址變成域名訪問,比如http://app.foxleezh.me/api/home/taobaolist (目前要備案無法訪問),那還要去買域名,做一下域名映射就行了,這個比較簡單,本文就不介紹了
小結
本文主要介紹如何搭建一個簡單的服務器供Android客戶端訪問,主要有以下幾個方面:
1.搭建開發環境,主要是用IntelliJ開發,框架是Spring-Boot和Mybatis
2.搭建數據庫,數據庫用MySQL,操作工具是navicat
3.搭建運行環境,掛載容器用Tomcat,然后用阿里云作為云服務器