CentOS 源内包太旧,和本地开发环境不兼容的地方太多

系统配置

  • 更新数据库与软件包 # apt-get update && apt-get -y upgrade 提示是否保留本地已修改文件时选择 install the package maintainer's version

  • 安装 vim 与 unzip # apt-get -y install vim unzip

  • 修改 SSH 端口,# vim /etc/ssh/sshd_config,查找 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/tomcat8/webapps" PMT_ORANGE="\[$(tput setaf 3)\]"
PMT_RESET="\[$(tput sgr0)\]"
export PS1="${PMT_ORANGE}\u \A \w >>>${PMT_RESET} "

退出普通用户 $ exit,准备开始安装 Web 环境

安装 JRE, Tomcat, MariaDB

  • 搜索 JRE 包名,# apt-cache search java | grep jre,这里使用 openjdk-8-jre,安装 JRE # apt-get -y install openjdk-8-jre

  • 搜索 Tomcat 包名 apt-cache search tomcat,这里用 tomcat8,安装 Tomcat # apt-get -y install tomcat8# dpkg -L tomcat8 查询 tomcat8 安装路径

  • 搜索 MariaDB 包名 apt-cache search mariadb,这里用 mariadb-server,安装 MariaDB # apt-get -y install mariadb-server,需要更新版本的可以参考 MariaDB 官方网站

  • Debian 上安装完成后 Tomcat 与 MariaDB 是默认自启的

  • 配置 Tomcat,# vim /etc/tomcat8/web.xml,搜索 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>

以开启 Java 8 的支持

  • 配置 MariaDB,# mysql_secure_installation,按照向导进行配置即可,但是安装完成后默认是可以无需密码登录的,更改一下# mysql 进入 MariaDB 的回显,换库 > USE mysql;,替换默认的 unix_socket 插件(或者直接置空''也可以) > UPDATE `user` SET `plugin` = 'mysql_native_password' WHERE `User` = 'root';,刷新权限 > FLUSH PRIVILEGES;,退出 > exit

域名解析与 HTTPS

  • 添加域名解析,阿里云控制台域名列表,选择解析,添加记录,记录类型为 A,主机记录为 @ 以解析主域名,解析线路默认即可,记录值为 ECS 的 IP 地址,TTL 10 分钟即可,按需添加其他解析记录

  • 申请 SSL 证书,点击全部产品,安全,SSL 证书,购买证书,Symantec,免费型 DV SSL,选择一个域名,购买,然后返回证书控制台,点击 SSL 证书的申请,证书绑定域名输入一级域名即可,域名验证方式为自动 DNS 验证,CSR 生成方式为系统生成,下一步,验证,提交审核,等待验证完成

  • 安装 SSL 证书,签发完成后下载 SSL 证书,下载 Tomcat 的版本,解压后得到 pfx 与 txt 文件各一个,上传 pfx 文件到服务器,比如上传后 pfx 文件为 ~/seliote.com.pfx,切换到 Tomcat 配置目录 # cd /etc/tomcat8/,创建一个存储证书的文件夹 # mkdir cert,证书复制过去 # cp ~/seliote.com.pfx cert/,编辑 Tomcat 的配置 # vim server.xml,添加一个端口为 8443 的 Connector 节点,这里使用的协议是 Http11NioProtocol,其他两种协议 Http11ProtocolHttp11AprProtocol 前者性能太差,后者较难配置,sslProtocol 值使用 TLSv1.2,同时支持 SSLv3, TLSv1, TLSv1.1 和 TLSv1.2

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLSv1.2"
keystoreFile="/etc/tomcat8/cert/seliote.com.pfx" keystorePass="${UNZIPED_TXT_FILE_CONTENT}" />
  • 开启 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

后续 Bug 排查

  • 系统重启发现 Tomcat 会发生阻塞,systemd 的状态是 activity,浏览器不报错也无法访问,主机 # curl -v http://127.0.0.1:8080 都是阻塞状态,但是几分钟后就又恢复了,查看日志发现了这行 org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [393,380] milliseconds,看到随机数生成了六分多钟,阻塞是应该的了,尝试安装一个随机数生成器,# apt-cache search rng-tools,查到了两个 rng-tools 和 rng-tools5,装 rng-tools 结果报错,查 Debian Wiki 发现对硬件有限制,在 Wiki 里看到 rng-tools5 支持新硬件,尝试安装,# apt-get install rng-tools5,成功,重启 ECS,这次直接就可以访问了

  • 上面有禁用 root 远程登录,需要的话可以打开 > UPDATE user SET Host = '%' WHERE User = 'root'; > FLUSH PRIVILEGES;需要关闭的时候再 设置为 localhost 即可

阿里云 Debian 9.2 安装 Java Web 环境的更多相关文章

  1. 阿里云windows 2012服务器部署java web程序教程

    一:环境搭建 1.首先需要购买一个阿里云ECS服务器,购买时可以选择处理器核数以及内存大小(可以购买偏低配置,因为升级      方便) 2.购买后会自动创建一个实例,可以使用该实例中显示的公网地址在 ...

  2. Linux安装JAVA web环境

    一:安装jdk   1.下载 在oracle下载东西的时候因为oracle的一些验证机制,所以需要在链接前面添加一些参数 wget --no-check-certificate --no-cookie ...

  3. 阿里云服务器ubuntu安装java运行环境

    服务器 阿里云服务器ubuntu安装java运行环境 转:http://www.codingyun.com/article/45.html 今天来给大家介绍一下在阿里云ubuntu服务器下安装java ...

  4. 阿里云搭建JAVA WEB环境(SQL Server + TomCat + 配置域名)

    假期刚刚搭完,先写个提纲,今晚写完: 1.申请一个月的免费的云服务器ECS; 2.在云服务器上安装Java开发环境+Sql Server+Tomcat; 3.购买域名并认证,绑定服务器共有IP地址; ...

  5. 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署

    阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...

  6. 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器

    阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 我在阿里云购买的服务器配置 CPU:1核 内存:2G 系统盘:40G 公共镜像:CentOS 6.5 64位 公网带宽:1Mbps ...

  7. 阿里云CentOS7系列一 -- 安装JDK7的方法.

    最近因为数据采集以及生产环境冲突.导入windows Server 2008系统经常死机.经讨论决定把采集服务程序和生产服务进行分开.采集程序通过windows Server2008运行.而生产程序通 ...

  8. 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署

    阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...

  9. 阿里云服务器Linux CentOS安装配置(四)yum安装tomcat

    阿里云服务器Linux CentOS安装配置(四)yum安装tomcat 1.yum -y install tomcat  执行命令后,会帮你把jdk也安装好 2.tomcat安装目录:/var/li ...

随机推荐

  1. 019sys模块

    为了和python解释器交互,控制台执行脚本后面添加变量 import  sysprint(sys.argv) def  post():    print('upload')def  download ...

  2. 018os模块

    import   osprint(os.getcwd())   # 获取当前目录  F:\python_code\fullstack_s2\week4\day18 os.chdir(r'C:/User ...

  3. VOC 数据集

    可变形网络 :https://github.com/msracver/Deformable-ConvNets VOC数据集: Test 参数 ('PascalVOC', '2007_test', '. ...

  4. 隐藏C#的TabControl控件的选项卡TabPage

    在使用TabControl控件时,希望隐藏其中某个选项卡(即TabPage).TabPage类明明提供了一个Hide方法,用在代码中却没有任何效果,甚是奇怪.无奈之余,只好考虑另辟途径.方法一:设置该 ...

  5. CSU 1726: 你经历过绝望吗?两次!(bfs+优先队列)

    传送门: http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1726 1726: 你经历过绝望吗?两次! Submit Page    Summar ...

  6. 关于ucos操作系统中如何从邮箱中提取出消息

    问题提出? 定义两个任务,task1,task2,想task1用OSMboxPost,task2用OSMboxPend定义了一个邮箱Mbox1=OSMboxCreate(括号里面应该怎么写?)还有具体 ...

  7. Oracle在线重定义(online redefinition)--将普通表改为分区表

    使用Oracle的在线重定义技术,可以将Oracle的普通表改为分区表.操作如下: STEP1:测试表是否可以在线重定义,这里以unixdev数据库的LIJIAMAN.BSTEST为例 EXEC DB ...

  8. Oracle子查询之简单子查询

    Oracle 简单子查询 顾名思义,简单子查询是嵌套在 SQL 语句中的另一个SELECT 语句,并且子查询只返回一列数据 1,单行子查询: 子查询 (内查询) 在主查询之前一次执行完成.子查询的结果 ...

  9. 【HDOJ 2888】Check Corners(裸二维RMQ)

    Problem Description Paul draw a big m*n matrix A last month, whose entries Ai,j are all integer numb ...

  10. parsing XML document from class path resource [applicationtext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationtext.xml] cannot be opened because it does not e

    控制台异常: parsing XML document from class path resource [applicationtext.xml]; nested exception is java ...