CentOS 从0开始搭建Javaweb环境(JDK, tomcat, mysql, ssl)

环境 Centos 7

JDK

安装

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

使用yum的方式安装的话比较方便,默认路径在 /usr/lib/jvm/ 下,我们先切换到/usr/lib/jvm/ ,为配置JAVA_HOME做准备

cd /usr/lib/jvm/
ll | grep java-openjdk

可以看到如下输出结果

lrwxrwxrwx 1 root root   34 Feb 23 19:39 java-openjdk -> /etc/alternatives/java_sdk_openjdk

那么这个etc/alternatives/java_sdk_openjdk就是JAVA_HOME了。

JAVA_HOME配置

vim /etc/profile

在文件开头插入如下内容

# JAVA env
export JAVA_HOME=/etc/alternatives/java_sdk_openjdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

20200223222527113

保存退出,并让其生效:

source /etc/profile

测试 (应输出 /etc/alternatives/java_sdk_openjdk )

echo $JAVA_HOME

安装 Tomcat 9

至于Tomcat,你可以使用 yum install -y tomcat 直接安装,然后用systemctl 命令启动/停止/查看状态 Tomcat。不过yum源默认的Tomcat版本只有7,接下来介绍安装高版本的Tomcat。

下载tar.gz源码

version 7,8,9 任选一个就好

cd /path/to/your/download
# version 9
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz
# version 8
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.51/bin/apache-tomcat-8.5.51.tar.gz
# version 7
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.100/bin/apache-tomcat-7.0.100.tar.gz

解压Tomcat到安装目录

tar -zxvf apache-tomcat-9.0.31.tar.gz -C /path/to/your/install-dir
# 我的安装路径是/opt,所以解压之后
cd /opt/apache-tomcat-9.0.31/conf
vim server.xml
# 将8080改成80 全文只有一个8080,文件不长 慢慢找

启动 测试

至此 你可以使用

sh /opt/apache-tomcat-9.0.31/bin/startup.sh

来启动Tomcat. 现在测试一下服务器,由于还没有配置安全组和开放端口,这里就在终端测试,运行:

wget 你的服务器IP
ll

如果当前目录有一个index.html,说明Tomcat成功启动并运行。

使用systemctl来管理Tomcat服务

鉴于使用sh /path/to/tomcat/bin/startup.sh就可以启动tomcat服务器,所以这一步也可以不用配置,不过为了方便的重启tomcat,检查tomcat状态,所以我做了这一步。

(注意,使用yum install -y tomcat的话,会自动加入 systemd 服务组)

一、编辑 tomcat.sh

vim /etc/profile.d/tomcat.sh
# 编辑以下内容
export JAVA_HOME=/etc/alternatives/java_sdk_openjdk
export CLASS_PATH=.:$JAVA_HOME/lib
export CATALINA_HOME=/opt/apache-tomcat-9.0.31
export CATALINA_BASE=/opt/apache-tomcat-9.0.31
export PATH=$PATH:$JAVA_HOME/bin:$CATLINA_HOME:/bin

保存退出,使其生效

source /etc/profile

二、配置Tomcat启动参数

vim /opt/tomcat8/bin/setenv.sh
# 输入以下配置选项(tomcat有很多配置选项)
# 设置tomcat pid
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
# 设置java参数,提高性能
JAVA_OPTS="-server -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"

保存退出,修改其权限

chmod a+x /opt/apache-tomcat-9.0.31/bin/setenv.sh

二、编辑tomcat.service

vim /usr/lib/systemd/system/tomcat.service

输入以下内容

[Unit]
Description=Apache Tomcat 9
After=syslog.target network.target
 
[Service]
Type=forking
PIDFile=/opt/apache-tomcat-9.0.31/tomcat.pid
ExecStart=/opt/apache-tomcat-9.0.31/bin/startup.sh 
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

User=root
Group=root

[Install]
WantedBy=multi-user.target
# 保存退出,设置tomcat开机启动
systemctl enable tomcat
# 加载服务
systemctl daemon-reload

接下来就可以通过 systemctl 管理tomcat服务了

systemctl start tomcat #启动服务
systemctl stop tomcat #停止服务
systemctl restart tomcat #重启服务

systemctl enable tomcat #增加开机启动
systemctl disable tomcat #删除开机启动

systemctl status tomcat #查看服务命令
systemctl list-unit-files --type service #查看全部服务命令

安装MySQL 8.0

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
 
# 安装yum源
yum localinstall mysql80-community-release-el7-3.noarch.rpm
 
# 更新yum源
yum clean all
yum make cache

# 开始安装MySQL
yum install mysql-community-server

# 启动MySQL
systemctl start mysqld

# 启动成功后可以查看初始化密码随机生成的
cat /var/log/mysqld.log | grep password
# 输出:A temporary password is generated for root@localhost: )!W!xGnE8fHG
# 所以你的临时密码就是:)!W!xGnE8fHG

# 登录MySQL修改mysql用户密码
mysql -u root -p
# 必须改密码,不然用不了MySQL
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新的密码';

# 允许远程设置
mysql> use mysql;
mysql> update user set host='%' where user='root';

# 授权用户名的权限,赋予任何主机访问数据的权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

安装完成 添加用户

也可以不用添加用户,直接使用 root 账户登录

mysql> CREATE USER 'user_name'@'%' IDENTIFIED BY 'user_password';
含义
%任何主机都可以访问你的MySQL
12.14.06.12只允许IP为12.14.06.12的主机访问
12.xxx.xxx.xxxIP 段
localhost仅本机

用户权限

#允许myuser用户使用password密码从任何主机连接到mysql服务器操作任何数据库中的任何表、视图等等
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'password'

#允许IP段192.168.23.xxx的(理论上256个)用户以user1的身份增改查数据库mydb中的表table_test
mysql> GRANT INSERT,UPDATE,SELECT ON mydb.table_test TO 'user1'@'192.168.23.*' IDENTIFIED BY 'mypassword';

mysql> FLUSH PRIVILEGES;

远程连接MySQL

至此,在云主机上可以链接数据库了。接下来配置远程访问

防火墙端口管理

开放端口

常见端口及含义

portconnotation
20/21FTP,文件传输协议 File transfer protocol
22SSH,安全shell协议 Secure Shell
3306远程登录协议
80HTTP,网络端口
443HTTPS,安全模式

其他端口及含义请参考:http://www.bejson.com/doc/port/

比如我想要远程链接数据库,于是我就要开放3306端口:

systemctl start firewalld	# 可能需要先启动防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 建议把上面列出来的端口都开放了。
# 输出 : success

开放完之后,重新载入,使其生效

firewall-cmd --reload

查看开放了哪些端口:

firewall-cmd --zone=public --list-ports

关闭端口:

firewall-cmd --zone=public --remove-port=80/tcp --permanent
# 重载生效
firewall-cmd --reload

还没结束

一些云计算公司比如阿里云,需要配置安全组,才能实现远程访问

配置安全组

登录云服务器控制台

登录云服务器控制台

搜索并前往安全组配置

安全组

创建安全组,没有专用网络就创一个

安全组

完成之后,配置规则

配置规则

右上角快速创建规则

快速创建

按需勾选

按需勾选

确定,提交,完成。

接下来在本地服务器访问你的云主机(可能要等很久)

远程访问

看到这个代表环境已经完全搭建完成。

为Tomcat配置HTTPS访问

有强迫症的话还可以配置https前缀,很简单,这里大概写一下,并给出我的 server.xml 文件

SSL证书(免费)购买入口

购买入口

剩余部分请参考:https://www.jb51.net/article/142208.htm

我的 server.xml (删除了注释)

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener     className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <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="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443"/>
   <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
              maxThreads="150" scheme="https" secure="true"
			keystoreType="PKCS12"
			keystoreFile="/opt/apache-tomcat-9.0.31/conf/tomcat.pfx"
              
			keystorePass="txt文件里的密码"
              
             clientAuth="false" sslProtocol="TLS" />
    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="443" />
    <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="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve"
               directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>
</Server>

完成

重启tomcat

现在,在浏览器里面使用https访问。(初次访问,响应时间会很长,可能与服务器配置有关)

https访问


其他

安装高版本node

curl --silent --location https://rpm.nodesource.com/setup_13.x | sudo bash
sudo yum install -y nodejs
yum clean all
node -v
npm -v
# 安装hexo
npm install hexo-cli -g

安装配合Xshell的上传下载工具

yum install lrzsz

上传:

rz

上传

下载:

sz index.html

下载

完成

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值