本篇文檔介紹如何手動在ECS實例上部署Java web項目。適用於剛開始使用阿裏雲進行建站的個人用戶。
項目配置
本篇教程在示例步驟中使用了以下版本的軟件。操作時,請您以實際軟件版本為准。
- 操作系統:CentOS 7.4
- Tomcat 版本:Tomcat 8.5.34
- JDK 版本:JDK 1.8.0_191
下載源代碼
-
下載 Apache Tomcat。
說明 源代碼版本會不斷升級。您可以在https://mirrors.aliyun.com/apache/tomcat/tomcat-8/獲取合適的安裝包地址。
-
下載 JDK
-
下載JDK安裝壓縮包jdk-8u191-linux-x64 .tar.gz:
說明 直接用
wget
命令在實例中下載JDK安裝壓縮包,在解壓縮時會出錯。您可以下載JDK安裝壓縮包,再上傳到實例上。 - 登錄 ECS管理控制台ECS 管理控制台。
- 在左邊導航欄中,單擊 實例,進入 ECS 實例列表頁。
- 選擇所購 ECS 實例所在的地域,找到已購的 ECS 實例,在 IP 地址 列獲取該實例的公網 IP 地址。
- 在Winscp工具裏用公網 IP 地址連接Linux實例,然後將下載好的JDK安裝壓縮包上傳到Linux實例的根目錄下。
-
下載JDK安裝壓縮包jdk-8u191-linux-x64 .tar.gz:
安裝前准備
- 使用管理終端連接ECS實例。
-
關閉防火牆。
輸入
systemctl status firewalld
命令查看當前防火牆的狀態。
如果防火牆的狀態參數是active,則防火牆為開啟狀態。如果防火牆的狀態參數是inactive,則防火牆為關閉狀態。如上圖所示,此處防火牆為開啟狀態,需要運行如下命令關閉防火牆:-
如果您想臨時關閉防火牆,輸入命令
systemctl stop firewalld
。說明 這只是暫時關閉防火牆,下次重啟Linux後,防火牆還會開啟。 -
如果您想永久關閉防火牆,輸入命令
systemctl disable firewalld
。說明 您可參考firewalld官網信息來決定何時開啟防火牆。
-
如果您想臨時關閉防火牆,輸入命令
-
關閉SELinux。
-
運行
getenforce
命令查看當前SELinux的狀態。如果顯示Disabled
,則SELinux為關閉狀態。如果顯示Enforcing
,則SELinux為開啟狀態,運行如下命令關閉SELinux:-
如果您想臨時關閉SELinux,輸入命令
setenforce 0
。說明 這只是暫時關閉SELinux,下次重啟Linux後,SELinux依舊會開啟。 -
如果您想永久關閉SELinux,輸入命令
vi /etc/selinux/config
編輯SELinux配置文件。回車後,把光標移動到SELINUX=enforcing
這一行,按下i鍵進入編輯模式,修改為SELINUX=disabled
,按Esc
鍵,然後輸入:wq
並回車以保存並關閉SELinux配置文件。說明 您可參考redhat關於SELinux的官方文檔來決定何時開啟SELinux。
-
如果您想臨時關閉SELinux,輸入命令
- 重啟系統使設置生效。
-
運行
-
創建一般用戶 www來運行Tomcat:
useradd www
-
創建網站根目錄:
mkdir -p /data/wwwroot/default
-
將需要部署的Java Web項目文件WAR包上傳到網站根目錄下,然後將網站根目錄下文件權限改為 www。本示例將直接在網站根目錄下新建一個 Tomcat 測試頁面:
echo Tomcat test > /data/wwwroot/default/index.jsp chown -R www.www /data/wwwroot
安裝 JDK
按以下步驟安裝 JDK。
-
新建一個目錄:
mkdir /usr/java
-
解壓 jdk-8u191-linux-x64.tar.gz 到/usr/java。
chmod +x jdk-8u191-linux-x64.tar.gz tar xzf jdk-8u191-linux-x64.tar.gz -C /usr/java
-
設置環境變量:
-
打開/etc/profile:
vi /etc/profile
。 -
按下
i
鍵進入編輯模式。 -
在/etc/profile 文件中添加以下信息:
# set java environment export JAVA_HOME=/usr/java/jdk1.8.0_191 export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib export PATH=$JAVA_HOME/bin:$PATH
-
按下
Esc
鍵退出編輯模式,輸入:wq
保存並關閉文件。
-
打開/etc/profile:
-
加載環境變量:
source /etc/profile
。 -
運行
java -version
命令,顯示JDK版本信息時,表示 JDK 已經安裝成功。
安裝 Apache Tomcat
-
依次運行以下命令解壓apache-tomcat-8.5.34.tar.gz,重命名Tomcat目錄,並設置用戶權限。
tar xzf apache-tomcat-8.5.34.tar.gz mv apache-tomcat-8.5.34 /usr/local/tomcat/ chown -R www.www /usr/local/tomcat/
在 /usr/local/tomcat/目錄中:- bin:存放 Tomcat 的一些腳本文件,包含啟動和關閉 Tomcat 服務腳本。
- conf:存放 Tomcat 服務器的各種全局配置文件,其中最重要的是 server.xml 和 web.xml。
- webapps:Tomcat 的主要 Web 發布目錄,默認情況下把 Web 應用文件放於此目錄。
- logs:存放 Tomcat 執行時的日志文件。
-
配置server.xml文件:
-
切換到/usr/local/tomcat/conf/ 目錄:
cd /usr/local/tomcat/conf/
。 -
重命名server.xml 文件:
mv server.xml server.xml_bk
。 -
創建一個新的server.xml 文件:
-
運行命令
vi server.xml
。 -
按下
i
鍵進入編輯模式。 - 添加以下內容:
<?xml version="1.0" encoding="UTF-8"?> <Server port="8006" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/> <Listener className="org.apache.catalina.core.AprLifecycleListener"/> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml"/> </GlobalNamingResources> <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="1000" minSpareThreads="20" acceptCount="1000" maxHttpHeaderSize="65536" debug="0" disableUploadTimeout="true" useBodyEncodingForURI="true" enableLookups="false" URIEncoding="UTF-8"/> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="/data/wwwroot/default" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true"/> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Service> </Server>
-
運行命令
-
按
Esc
鍵退出編輯模式,輸入:wq
保存並退出編輯。
-
切換到/usr/local/tomcat/conf/ 目錄:
-
設置 JVM 內存參數:
-
運行命令
vi /usr/local/tomcat/bin/setenv.sh
, 創建/usr/local/tomcat/bin/setenv.sh。 -
按下
i
鍵進入編輯模式。 -
添加以下內容:
JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx496m -Dfile.encoding=UTF-8'
-
按下
Esc
鍵退出編輯模式,輸入:wq
保存並退出文件。
-
運行命令
-
設置Tomcat 自啟動腳本。
-
下載腳本:
wget https://github.com/lj2007331/oneinstack/raw/master/init.d/Tomcat-init
-
重命名Tomcat-init:
mv Tomcat-init /etc/init.d/tomcat
-
添加執行權限:
chmod +x /etc/init.d/tomcat
-
運行以下命令,設置啟動腳本JAVA_HOME。
sed -i 's@^export JAVA_HOME=.*@export JAVA_HOME=/usr/java/jdk1.8.0_191@' /etc/init.d/tomcat
-
下載腳本:
-
設置自啟動。
chkconfig --add tomcat chkconfig tomcat on
-
啟動Tomcat。
service tomcat start
-
在瀏覽器地址欄中輸入
http://公網IP:8080
進行訪問。出現下圖所示頁面時表示安裝成功。
- 使用Web服務為ECS Linux實例配置網站及綁定域名。
如果您遇到任何問題,請隨時聯系聯系米姆,我們將免費為您提供阿裏雲基礎服務。