转载

CentOS7.5搭建javaweb环境Nginx,JDK,Mysql,Tomcat,Redis

一、安装基本工具

在新申请的CentOS7.5云主机上,我们还需要安装一些最基本的工具:

# 安装vim
 yum install vim
 
# 安装netstat工具
yum install net-tools   # netstat -anp | grep 80  (查看端口是否开启)

# nmap 查看对外开放的端口
yum install nmap 
nmap 98.126.219.176 -p 80 (查看80端口是否对外开放,考虑防火墙)

# 上传下载工具
yum install lrzsz
rz   #上传文件

开发环境相关软件版本:

Linux CentOS 7.5 64位
JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.5.0 (推荐5.7版本)
Redis >= 3.0
Maven >= 3.0
Tomcat >=9.0
Node >=10

二、安装Nginx

1、先下载gcc

> yum install gcc pcre-devel zlib zlib-devel openssl openssl-devel

2、下载源码包

下载源码包,,选择稳定版本,解压缩安(在根目录建developer目录,然后进入该目录作为我们的开发目录装)( http://www.nginx.org/ )

cd /
mkdir developer
cd /developer
wget http://nginx.org/download/nginx-1.10.2.tar.gz

3、解压缩

tar -zxvf nginx-1.10.2.tar.gz

4、编译安装

进入Nginx目录之后执行 ./configure
执行 make && make install

默认安装在 /usr/local/nginx

5、配置防火墙

安装好之后,我们可以查看80端口是否开启

netstat -anp | grep 80  #(查看端口)

然后我们通过IP访问这台服务器,但是你会发现访问不了,这是什么原因呢?

CentOS7.5搭建javaweb环境Nginx,JDK,Mysql,Tomcat,Redis

原来是因为购买的这台服务器默认开启了防火墙,80端口没有开放,所以,我们需要开放80端口

添加

firewall-cmd --zone=public --add-port=80/tcp --permanent   (--permanent永久生效,没有此参数重启后失效)

重新载入

firewall-cmd --reload

现在我们可以看到,Nginx服务已经可以访问了:

CentOS7.5搭建javaweb环境Nginx,JDK,Mysql,Tomcat,Redis

顺便也打开其他端口:

# 打开22端口,允许ssh远程连接
firewall-cmd --zone=public --add-port=22/tcp --permanent
# mysql,允许远程客户端可以访问
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

6、常用命令

/usr/local/nginx/sbin/nginx # 启动
/nginx/sbin/nginx -s reload # 重启
安装路径下的 /nginx/sbin/nginx -s stop 或:nginx -s quit  # 停止

7、开机自启动

# 如果是源码安装,则需要手动创建nginx.service
systemctl start nginx.service

配置防火墙

如果你的linux是CentOS7的话启用上面的命令会报出 Unit iptables.service failed to load: No such file or directory.异常。

centos从7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。所以你只要停止firewalld服务即可:

systemctl stop firewalld.service && systemctl disable firewalld.service

systemctl start firewalld.service && systemctl enable firewalld.service

如果想要改用iptables的话,则需要安装

yum install iptables-services 

systemctl stop iptables && systemctl disable iptables
systemctl start iptables && systemctl enable iptables

firewalld防火墙使用

firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;

1、firewalld的基本使用

启动: systemctl start firewalld

查看状态: systemctl status firewalld

停止: systemctl disable firewalld

禁用: systemctl stop firewalld

2.firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;

启动一个服务:systemctl start firewalld.service

关闭一个服务:systemctl stop firewalld.service

重启一个服务:systemctl restart firewalld.service

显示一个服务的状态:systemctl status firewalld.service

在开机时启用一个服务:systemctl enable firewalld.service

在开机时禁用一个服务:systemctl disable firewalld.service

查看服务是否开机启动:systemctl is-enabled firewalld.service

查看已启动的服务列表:systemctl list-unit-files|grep enabled

查看启动失败的服务列表:systemctl --failed

3.配置firewalld-cmd

查看版本: firewall-cmd --version

查看帮助: firewall-cmd --help

显示状态: firewall-cmd --state

查看所有打开的端口: firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

4.那怎么开启一个端口呢

添加

firewall-cmd --zone=public --add-port=80/tcp --permanent   (--permanent永久生效,没有此参数重启后失效)

重新载入

firewall-cmd --reload

查看

firewall-cmd --zone=public --query-port=80/tcp

删除

firewall-cmd --zone=public --remove-port=80/tcp --permanent

三、安装jdk1.8

1、验证是否已安装JDK

[root@cs ~]# java -version
-bash: java: command not found

可以看到,没有安装。

2、JDK下载

现在下载JDK需要登录才能实现下载了,下载地址: https://www.oracle.com/techne...

CentOS7.5搭建javaweb环境Nginx,JDK,Mysql,Tomcat,Redis

3、上传到服务器

本地下载后,然后将下载压缩包上传到/developer/目录。

4、解压

tar -zxvf jdk-8u241-linux-x64.tar.gz -C /usr/local/java/  # 解压到指定/usr/local/java路径

然后我们要做一个验证, 它是否已经解压到 /usr/local/java 下了呢, 用什么命令, ls

root@cs java]# pwd
/usr/local/java
[root@cs java]# ls -l
total 0
drwxr-xr-x 7 10143 10143 245 Dec 11 02:39 jdk1.8.0_241

已经解压到 /usr/local/java 下面了, "jdk1.8.0_241"文件夹就是。

5、jdk配置环境变量

(1)、编辑profile文件

sudo vim /etc/profile

(2)、在最下方增加:

# jdk1.8 env(20200414)
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

CentOS7.5搭建javaweb环境Nginx,JDK,Mysql,Tomcat,Redis

(3)、使配置生效

source /etc/profile

6、jdk验证

执行 java -version 命令,看到如图所示代表安装成功。

[root@cssbjqnffcsvic java]# java -version                                                                         
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

四、安装mysql

家都知道,centos自带的repo是不会自动更新每个软件的最新版本,所以无法通过yum方式安装MySQL的高级版本。所以,即使我使劲用yum -y install mysql mysql-server mysql-devel,也是没有人会鸟我的。

所以,正确的安装mysql5姿势是要先安装带有可用的mysql5系列社区版资源的rpm包

rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

查看当前可用的mysql安装资源

yum repolist enabled | grep "mysql.*-community.*"
[root@cssbjqnffcsvic ~]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64 MySQL Connectors Community                 141
mysql-tools-community/x86_64      MySQL Tools Community                      105
mysql56-community/x86_64          MySQL 5.6 Community Server                 513

一般来说,只要安装mysql-server跟mysql-client 。这时直接使用yum的方式安装MySQL

yum -y install mysql-community-server

安装完成

#查看版本
mysql -V

mysql  Ver 14.14 Distrib 5.6.40, for Linux (x86_64) using  EditLine wrapper 

#测试一下,本机登录不需要密码
/usr/bin/mysql

启动和开机启动

#加入开机启动
systemctl enable mysqld

#启动mysql服务进程
systemctl start mysqld

登录修改密码:

安装成功后,默认root是没有密码的,所以,我们可以直接登录:

mysql -uroot -p

设置root密码:

# 这里我们暂定为密码是admin
mysql> set password for root@127.0.0.1=password('admin');
mysql> set password for root@localhost=password('admin');
exit;

然后退出,重新登录,则需要输入密码。

新增用户

一般对外访问我们不要使用root,因为权限太大了,为了安全root超级用户只能在服务器内部localhost使用,所以,这里我们新创建一个用户,并给该用户授权及任意IP都可以访问。

1、先查看目前MySQL的用户:

mysql> select user,host from mysql.user;
mysql> select user,host from mysql.user;
+------+----------------+
| user | host           |
+------+----------------+
| root | 127.0.0.1      |
| root | ::1            |
| root | cssbjqnffcsvic |
| root | localhost      |
+------+----------------+
4 rows in set (0.00 sec)

2、创建用户

GRANT ALL PRIVILEGES ON *.* TO 'quant'@'%'  IDENTIFIED BY '518666' WITH GRANT OPTION; #所有电脑IP都可以使用quant用户,密码为518666远程访问数据库,并且开通所有权限给该用户

#GRANT ALL PRIVILEGES ON *.* TO 'quant'@'localhost'  IDENTIFIED BY '518666' WITH GRANT OPTION; #本机内部localhost可以使用quant用户,密码为518666内部访问数据库,并且开通所有权限给该用户

// insert into mysql.user(Host,User,Password) values("localhost", "emall", password("518666"));  # 这种添加方式在mysql5.6会报错,所以用上边的语句

3、查询是否创建成功

mysql> select user,host from mysql.user;
+-------+----------------+
| user  | host           |
+-------+----------------+
| quant | %              |
| root  | 127.0.0.1      |
| root  | ::1            |
| root  | cssbjqnffcsvic |
| root  | localhost      |
+-------+----------------+
5 rows in set (0.00 sec)

我们可以看到,该用户已经创建成功。

4、查看用户权限

我们可以查看刚才创建的用户quant权限

mysql> select * from mysql.user where user = 'quant' /G;
mysql> select * from mysql.user where user = 'quant' /G; 
*************************** 1. row ***************************
                  Host: %
                  User: quant
              Password: *9ED4FFF2A197F9574379D17AEA2749770C109CDB
           Select_priv: Y
           Insert_priv: Y
           Update_priv: Y
           Delete_priv: Y
           Create_priv: Y
             Drop_priv: Y
           Reload_priv: Y
         Shutdown_priv: Y
          Process_priv: Y
             File_priv: Y
            Grant_priv: Y
       References_priv: Y
            Index_priv: Y
            Alter_priv: Y
          Show_db_priv: Y
            Super_priv: Y
 Create_tmp_table_priv: Y
      Lock_tables_priv: Y
          Execute_priv: Y
       Repl_slave_priv: Y
      Repl_client_priv: Y
      Create_view_priv: Y
        Show_view_priv: Y
   Create_routine_priv: Y
    Alter_routine_priv: Y
      Create_user_priv: Y
            Event_priv: Y
          Trigger_priv: Y
Create_tablespace_priv: Y
              ssl_type: 
            ssl_cipher: 
           x509_issuer: 
          x509_subject: 
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin: mysql_native_password
 authentication_string: 
      password_expired: N
1 row in set (0.00 sec)

ERROR: 
No query specified

可以看到用户所有权限(CRUD)都开通了,我们现在可以通过Navicat远程连接该数据库了。

mysql权限相关文章:

Mysql添加用户错误:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value解决方法

MySQL数据库增加用户权限GRANT/INSERT INTO user VALUES/FLUSH

MySQL安装及授权

五、Tomcat安装

1、Tomcat简介

Tomcat是一个Web容器,JavaEE程序可以在此运行。

2、安装环境

CentOS 7.5 64位,jdk 1.8, Tomcat9.0, 注意:安装Tomcat之前需要安装好jdk,jdk1.8版本需要Tomcat9.0以上对应版本。

3、安装步骤

下载(使用 清华大学的下载源 ):

wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.34/bin/apache-tomcat-9.0.34.tar.gz

解压缩:

tar -zxvf apache-tomcat-9.0.34.tar.gz

解压后的文件放在该目录下:

/developer/apache-tomcat-9.0.34

为了方便后期管理,我们将Tomcat放在 /usr/local/java/ 目录下,我们上边也是把jdk放在该目录下的。

cp -r  /developer/apache-tomcat-9.0.34 /usr/local/java/
# mv /developer/apache-tomcat-9.0.34 /usr/local/java/
[root@css java]# pwd
/usr/local/java
[root@css java]# ls -l
total 0
drwxr-xr-x 9 root  root  220 May 18 09:29 apache-tomcat-9.0.34
drwxr-xr-x 7 10143 10143 245 Dec 11 18:39 jdk1.8.0_241

配置环境文件:

(1) sudo vim /etc/profile
(2)在文件末尾增加:

# jdk1.8 env(20200517)
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

# tomcat9.0(20200518) 新增TOMCAT
export CATALINA_HOME=/usr/local/java/apache-tomcat-9.0.34

(3)、使配置生效

source /etc/profile

4、配置utf-8字符集

因为tomcat默认不是utf-8字符集,遇到中文就乱码了,所以,这里需要配置。

cd /usr/local/java/apache-tomcat-9.0.34/conf
vim server.xml

找到配置 8080 默认端口的位置,在xml节点末尾增加 URIEncoding="UTF-8"

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />

5、Tomcat 验证

进入Tomcat目录 cd /usr/local/java/apache-tomcat-9.0.34/ ,进入bin目录,执行 ./startup.sh

看到如下信息提示,就表示安装成功。

[root@css bin]# ./startup.sh
Using CATALINA_BASE:   /usr/local/java/apache-tomcat-9.0.34
Using CATALINA_HOME:   /usr/local/java/apache-tomcat-9.0.34
Using CATALINA_TMPDIR: /usr/local/java/apache-tomcat-9.0.34/temp
Using JRE_HOME:        /usr/local/java/jdk1.8.0_241
Using CLASSPATH:       /usr/local/java/apache-tomcat-9.0.34/bin/bootstrap.jar:/usr/local/java/apache-tomcat-9.0.34/bin/tomcat-juli.jar
Tomcat started.

也可以开启Tomcat机器的IP地址和默认8080端口,本机访问: http://localhost :8080

curl http://localhost:8080

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>Apache Tomcat/9.0.34</title>
        <link href="favicon.ico" rel="icon" type="image/x-icon" />
        <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <link href="tomcat.css" rel="stylesheet" type="text/css" />
    </head>

我们可以看到在本机内部通过curl命令可以访问成功,证明已经安装OK,如果是外网通过浏览器访问,则需要开启防火墙的8080端口,否则访问不了。

添加8080端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent   (--permanent永久生效,没有此参数重启后失效)

重新载入

firewall-cmd --reload

通过浏览器访问 http://98.126.219.176 :8080/, 可以看到Tomcat安装成功!

CentOS7.5搭建javaweb环境Nginx,JDK,Mysql,Tomcat,Redis

六、安装Redis

1.下载

wget http://download.redis.io/releases/redis-5.0.6.tar.gz

2.解压并安装

tar xzf redis-5.0.6.tar.gz
 cd redis-5.0.6
 make

make完后 redis-5.0.6 目录下会出现编译后的redis服务程序 redis-server ,还有用于测试的客户端程序 redis-cli ,两个程序位于安装目录 src 目录下:

3.启动redis服务

$ cd src
$ ./redis-server

如果看到下面的图,表示redis安装成功了^_^

(base) [root@cssbjqnffcsvic src]# ./redis-server
3161:C 18 May 2020 10:28:17.707 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
3161:C 18 May 2020 10:28:17.707 # Redis version=5.0.6, bits=64, commit=00000000, modified=0, pid=3161, just started
3161:C 18 May 2020 10:28:17.707 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
3161:M 18 May 2020 10:28:17.708 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 5.0.6 (00000000/0) 64 bit
  .-`` .-```.  ```//    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 3161
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'
原文  https://segmentfault.com/a/1190000022671606
正文到此结束
Loading...