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

1、安裝基本工具

在新申請的CentOS7.5雲主機上,咱們還須要安裝一些最基本的工具:css

# 安裝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   #上傳文件

開發環境相關軟件版本:html

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

2、安裝Nginx

一、先下載gcc

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

二、下載源碼包

下載源碼包,,選擇穩定版本,解壓縮安(在根目錄建developer目錄,而後進入該目錄做爲咱們的開發目錄裝)(http://www.nginx.org/java

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

三、解壓縮

tar -zxvf nginx-1.10.2.tar.gz

四、編譯安裝

進入Nginx目錄以後執行 ./configure
執行 make && make installmysql

默認安裝在 /usr/local/nginxlinux

五、配置防火牆

安裝好以後,咱們能夠查看80端口是否開啓android

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

而後咱們經過IP訪問這臺服務器,可是你會發現訪問不了,這是什麼緣由呢?
filenginx

原來是由於購買的這臺服務器默認開啓了防火牆,80端口沒有開放,因此,咱們須要開放80端口
添加redis

firewall-cmd --zone=public --add-port=80/tcp --permanent   (--permanent永久生效,沒有此參數重啓後失效)

從新載入sql

firewall-cmd --reload

如今咱們能夠看到,Nginx服務已經能夠訪問了:
file數據庫

順便也打開其餘端口:

# 打開22端口,容許ssh遠程鏈接
firewall-cmd --zone=public --add-port=22/tcp --permanent
# mysql,容許遠程客戶端能夠訪問
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

六、經常使用命令

/usr/local/nginx/sbin/nginx # 啓動
/nginx/sbin/nginx -s reload # 重啓
安裝路徑下的 /nginx/sbin/nginx -s stop 或:nginx -s quit  # 中止

七、開機自啓動

# 若是是源碼安裝,則須要手動建立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的一大特性,最大的好處有兩個:支持動態更新,不用重啓服務;

一、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

3、安裝jdk1.8

一、驗證是否已安裝JDK

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

能夠看到,沒有安裝。

二、JDK下載

如今下載JDK須要登陸才能實現下載了,下載地址:https://www.oracle.com/techne...

file

三、上傳到服務器

本地下載後,而後將下載壓縮包上傳到/developer/目錄。

四、解壓

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"文件夾就是。

五、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

file

(3)、使配置生效

source /etc/profile

六、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)

4、安裝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均可以訪問。

一、先查看目前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)

二、建立用戶

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會報錯,因此用上邊的語句

三、查詢是否建立成功

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)

咱們能夠看到,該用戶已經建立成功。

四、查看用戶權限
咱們能夠查看剛纔建立的用戶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安裝及受權

5、Tomcat安裝

一、Tomcat簡介

Tomcat是一個Web容器,JavaEE程序能夠在此運行。

二、安裝環境

CentOS 7.5 64位,jdk 1.8, Tomcat9.0, 注意:安裝Tomcat以前須要安裝好jdk,jdk1.8版本須要Tomcat9.0以上對應版本。

三、安裝步驟

下載(使用清華大學的下載源):

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

四、配置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" />

五、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安裝成功!

file

6、安裝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        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'

相關文章:
CentOS7關閉/開啓防火牆出現 Unit iptables.service failed to load
CentOS7使用firewalld打開關閉防火牆與端口
CentOS7爲firewalld添加開放端口及相關操做
Centos7安裝JDK1.8教程(入門小白篇)
centos7下安裝Mysql5.6(yum方式)
Java 實戰開發之環境安裝(一)

相關文章
相關標籤/搜索