1. 程式人生 > >阿裏雲 Debian 9.2 安裝 Java Web 環境

阿裏雲 Debian 9.2 安裝 Java Web 環境

tput earch var use evm 完成 -i str console

本來是用 CentOS 的,結果源裏的 Tomcat 有 bug,再這者源裏 Tomcat 與 MariaDB 版本也都很低

阿裏雲相關配置

  • 創建密鑰對,網絡和安全 -> 密鑰對 -> 創建密鑰對,按提示創建即可
  • 更換實例系統盤,換成 CentOS 7.4 64 位,設置使用密鑰登錄而非密碼
  • ECS 實例放行 Tomcat 的 8080 端口,如果不放行結果就是進行請求時服務器無響應,控制臺選擇對應 ECS -> 更多 -> 網絡和安全 -> 安全組配置 -> 配置規則 -> 添加安全組規則 -> 規則方向為入方向、端口範圍為 8080、授權對象為0.0.0.0/0 -> 確定,同樣操作放行 8443 端口,出方向默認全部開放,無需配置
  • SSH 連接服務器,ssh root@${IP} -p 22 -i ${PATH_TO_KEY_FILE},如果同一個服務器多次更換系統盤後重新連接需要執行 ssh-keygen -R ${IP} 來更新密鑰

系統配置

  • 更新系統 # apt-get update && apt-get upgrade -y,提示本地文件修改過是否需要保留時選 install the package maintainer‘s version
  • 安裝 vim 與 unzip # apt-get install -y vim unzip
  • 修改 root 密碼 # passwd
  • 修改 SSH 端口,查找 22,該行應該是註釋掉的,反註釋掉後修改為 Port ${PORN_NUM}
    ,重啟 ssh # systemctl restart sshd
  • 添加一個新用戶,此處用戶名為 seliote,# useradd -m -s /bin/bash seliote,添加 sudo 權限 # visudoroot ALL=(ALL) ALL 下行添加 seliote ALL=(ALL) ALL,更新用戶密碼 # passwd seliote,添加 SSH 登錄密鑰並更改所屬用戶 # cp -R ~/.ssh /home/seliote/ && chown -R seliote:seliote /home/seliote/.ssh,切換過去修改一下 .bashrc,# su - seliote
    # vim ~/.bashrc,末尾添加以下內容
alias ll=‘ls -lh --color=auto‘
alias grep=‘grep --color=auto‘
alias mariadb_console=‘mysql -u root -p‘

export JAVA_WEB_PATH="/var/lib/tomcat/webapps"

PMT_ORANGE="\[$(tput setaf 3)\]"
PMT_RESET="\[$(tput sgr0)\]"
export PS1="${PMT_ORANGE}\u \A \w >>>${PMT_RESET} "

退出普通用戶,準備開始安裝 Web 環境

安裝 JRE, Tomcat, MariaDB

  • 查找源裏的 JRE # apt-cache search jdk,這裏用 openjdk-8-jre,安裝 JRE # apt-get install -y openjdk-8-jre
  • 查找源裏的 Tomcat # apt-cache search tomcat,這裏用 tomcat8(吐槽 CentOS 的 7),安裝 Tomcat # apt-get install -y tomcat8
  • 查找源裏的 MariaDB # apt-cache search mariadb,這裏用 mariadb-server-10.1(再吐槽 CentOS 的 5),安裝 MariaDB # apt-get install -y mariadb-server-10.1

配置 Tomcat 與 MariaDB

  • Tomcat 與 MariaDB 開機自啟 /lib/systemd/systemd-sysv-install enable tomcat8 && /lib/systemd/systemd-sysv-install enable mysql,這裏需要註意,
  • 配置 Tomcat,開啟 Java 8 的支持,# vim /etc/tomcat/web.xml,開啟 Java 8 的支持,查找 org.apache.jasper.servlet.JspServlet,下一行添加
<init-param>
    <param-name>compilerSourceVM</param-name>
    <param-value>1.8</param-value>
</init-param>
<init-param>
    <param-name>compilerTargetVM</param-name>
    <param-value>1.8</param-value>
</init-param>

查找 setCharacterEncodingFilter,應該會匹配到兩處,一個是過濾器的聲明,一個是過濾器的映射,兩個節點全部反註釋掉,以設置默認的編碼為 UTF-8

  • 配置 MariaDB,# mysql_secure_installation,按照提示按需配置

域名解析與 HTTPS

  • 添加域名解析,阿裏雲控制臺域名列表,選擇解析,添加記錄,記錄類型為 A,主機記錄為 @ 以解析主域名,解析線路默認即可,記錄值為 ECS 的 IP 地址,TTL 10 分鐘即可,按需添加其他解析記錄
  • 申請 SSL 證書,點擊全部產品,安全,SSL 證書,購買證書,Symantec,免費型 DV SSL,選擇一個域名,購買,然後返回證書控制臺,點擊 SSL 證書的申請,證書綁定域名輸入一級域名即可,域名驗證方式為自動 DNS 驗證,CSR 生成方式為系統生成,下一步,驗證,提交審核,等待驗證完成
  • 安裝 SSL 證書,簽發完成後下載 SSL 證書,下載 Tomcat 的版本,將本地下載的 zip 文件上傳至服務器 $ scp -P ${POST} -i ${PEM_FILE_PATH} ${CA_FILE_PATH} root@${SERVER_IP}:~/tomcat.zip,比如此處文件名為 tomcat.zip,SSH 到服務器,解壓該文件 # unzip tomcat.zip,此處解壓出 pfx 與 txt 兩個文件,切換到 tomcat 配置目錄# cd /etc/tomcat8/,創建一個存儲證書的文件夾 # mkdir cert,將 pfx 文件復制過來 # cp ~/seliote.com.pfx cert/,編輯 Tomcat 配置文件 vim server.xml,查找 8443,port 屬性為 8443 的 Connector 節點應該是註銷狀態,添加一個新節點
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="/etc/tomcat/cert/seliote.com.pfx" keystorePass="${解壓出的 txt 文件中的內容}" />
  • 開啟 HTTP 自動跳轉到 HTTPS,# vim web.xml,根節點末尾前添加下面節點
<security-constraint>
    <web-resource-collection>
        <web-resource-name>HttpsOnly</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>
  • 重啟 tomcat # systemctl restart tomcat8

阿裏雲 Debian 9.2 安裝 Java Web 環境