• linux CentOS 安装 nginx+tomcat+java+mysql运行环境


    本文介绍了CentOS7 64 Java,Tomcat,MySQL,Maven热部署等服务器环境的搭建过程。

    服务器:

    已经将所需要的工具(Xshell,Xftp、FileZilla等sftp上传工具,jdk-8u101-linux-x64.tar.gz和apache-tomcat-9.0.0.M10.tar.gz)上传至百度云 http://pan.baidu.com/s/1qYRms8G

    1、tomcat官网 https://tomcat.apache.org/  下载

    Java环境配置

    环境准备

    通过 uname -r 判断系统是多少位

    • 64位 : 出现x86_64
    • 32位 : 出现i686或i386

    安装Java JDK8.0

    1. 建立Java目录,存放Java和Tomcat
      • cd /usr/local/
      • mkdir java
      • cd java
    2. 使用FileZilla将下载好的jdk-8u101-linux-x64.tar.gz 和 apache-tomcat-9.0.0.M10.tar.gz上传至Java目录下(传送的国外服务器很慢,国内几乎是国外的十倍,但是也只有两三百KB,也可能是电脑问题)
    3. 将上传的jdk解压,然后重命名为jdk
      • tar -zxv -f jdk-8u101-linux-x64.tar.gz
      • mv jdk1.8.0_101 jdk
      • cd jdk
    4. 配置环境变量Environment=JAVA_HOME=/usr/local/Java/jdk
      1. vim /etc/profile
      2. 打开之后按键盘(i)进入编辑模式,将下面的内容复制到底部

        JAVA_HOME=/usr/local/java/jdk
        PATH=$JAVA_HOME/bin:$PATH
        CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
        export PATH JAVA_HOME CLASSPATH
      3. 写完之后我们按键盘(ESC)按钮退出,然后按(:wq)保存并且关闭Vim。
      4. 使用 source /etc/profile 命令使其立即生效
      5. 通过 java -version 验证Java是否配置成功。

    安装Tomcat9.0

    1. 在Java目录下解压上面一步已经上传上去的Tomcat9.0
      • tar -zxv -f apache-tomcat-9.0.0.M10.tar.gz
      • mv apache-tomcat-9.0.0.M10 tomcat
      • cd tomcat
    2. 启动命令为 /usr/local/java/tomcat/bin/startup.sh
    3. 启动完成后还需开放8080端口(CentOS7这个版本的防火墙默认使用的是firewall,与之前的版本使用iptables不一样。 关于防火墙端口可以查看后面的参考文档)
      • firewall-cmd --zone=public --add-port=8080/tcp --permanent
        出现success表明添加成功
      • 更新防火墙规则即可: firewall-cmd --reload
      • 重启防火墙 systemctl restart firewalld.service
    4. 然后再次在浏览器中输入http://ip:8080,如果看到tomcat系统界面,说明安装成功。
    5. Tomcat 8080 端口无法访问
      • 查看8080端口被那个程序占用(应该是Java) netstat -anp 然后再杀死占用进程。
      • 可能是你的服务器提供商有安全组来控制端口,你需要去提供商那里开启端口(PS:我的阿里云服务器就是必须要设置端口安全组才可以访问端口)
    6. 关闭命令为 /usr/local/Java/tomcat/bin/shutdown.sh

    自启动

    编辑文件 /usr/local/java/tomcat/bin/catalina.sh (根据你自己的jdk路径进行修改) 在文件的正文开头,即正式代码前,大概在99行添加如下代码

    export JAVA_HOME=/usr/local/java/jdk
    export JRE_HOME=/usr/local/java/jdk/jre

     

    第一步:

    vim /lib/systemd/system/tomcat.service

    [Unit]
    Description=tomcat
    After=network.target
     
    [Service]
    Type=oneshot
    ExecStart=/usr/local/java/tomcat/bin/startup.sh   //自已的tomcat目录
    ExecStop=/usr/local/java/tomcat/bin/shutdown.sh
    ExecReload=/bin/kill -s HUP $MAINPID
    RemainAfterExit=yes
     
    [Install]
    WantedBy=multi-user.target

    (2).设置权限

    chmod 754 tomcat.service

    (3).启动关闭服务,设置开机启动

    #启动服务 
    systemctl start tomcat.service   
    #关闭服务   
    systemctl stop tomcat.service   
    #开机启动   
    systemctl enable tomcat.service 

    MySQL

    一、系统环境

    yum update升级以后的系统版本为

    [root@yl-web yl]# cat /etc/redhat-release 
    CentOS Linux release 7.1.1503 (Core) 

    一开始是通过这个命令来直接安装的:

    1 [root@yl-web yl]# yum install mysql
    2 [root@yl-web yl]# yum install mysql-server
    3 [root@yl-web yl]# yum install mysql-devel

    安装mysql和mysql-devel都成功,但是安装mysql-server失败,如下:

    [root@yl-web yl]# yum install mysql-server
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.sina.cn
     * extras: mirrors.sina.cn
     * updates: mirrors.sina.cn
    No package mysql-server available.
    Error: Nothing to do

    查资料发现是CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了。

    有两种解决办法:

    1、方法一:安装mariadb

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

    安装mariadb,大小59 M。

    [root@yl-web yl]# yum install mariadb-server mariadb 

    mariadb数据库的相关命令是:

    systemctl start mariadb  #启动MariaDB

    systemctl stop mariadb  #停止MariaDB

    systemctl restart mariadb  #重启MariaDB

    systemctl enable mariadb  #设置开机启动

    所以先启动数据库

    [root@yl-web yl]# systemctl start mariadb

    然后就可以正常使用mysql了

    复制代码
    [root@yl-web yl]# mysql -u root -p
    Enter password: 
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 3
    Server version: 5.5.41-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    4 rows in set (0.00 sec)
    
    MariaDB [(none)]> 
    复制代码

    安装mariadb后显示的也是 MariaDB [(none)]> ,可能看起来有点不习惯。下面是第二种方法。

    2、方法二:官网下载安装mysql-server

    # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    # rpm -ivh mysql-community-release-el7-5.noarch.rpm
    # yum install mysql-community-server

    安装成功后重启mysql服务。

    # service mysqld restart

    初次安装mysql,root账户没有密码。

    复制代码
    [root@yl-web yl]# mysql -u root 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 3
    Server version: 5.6.26 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    4 rows in set (0.01 sec)
    
    mysql> 
    复制代码

    设置密码

    mysql> set password for 'root'@'localhost' =password('password');
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> 

    不需要重启数据库即可生效。

    在mysql安装过程中如下内容:

    复制代码
    Installed:
      mysql-community-client.x86_64 0:5.6.26-2.el7                mysql-community-devel.x86_64 0:5.6.26-2.el7                
      mysql-community-libs.x86_64 0:5.6.26-2.el7                  mysql-community-server.x86_64 0:5.6.26-2.el7               

    Dependency Installed:
      mysql-community-common.x86_64 0:5.6.26-2.el7                                                                            

    Replaced:
      mariadb.x86_64 1:5.5.41-2.el7_0          mariadb-devel.x86_64 1:5.5.41-2.el7_0   mariadb-libs.x86_64 1:5.5.41-2.el7_0  
      mariadb-server.x86_64 1:5.5.41-2.el7_0 
    复制代码

    所以安装完以后mariadb自动就被替换了,将不再生效。

    [root@yl-web yl]# rpm -qa |grep mariadb
    [root@yl-web yl]# 

    三、配置mysql

    1、编码

    mysql配置文件为/etc/my.cnf

    最后加上编码配置

    [mysql]
    default-character-set =utf8

    这里的字符编码必须和/usr/share/mysql/charsets/Index.xml中一致。

    2、远程连接设置

    把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户。

    mysql> grant all privileges on *.* to root@'%'identified by 'password';

    如果是新用户而不是root,则要先新建用户

    mysql>create user 'username'@'%' identified by 'password';  

    此时就可以进行远程连接了。

    Maven 热部署

    Maven 热部署可以通过一行命令部署到本地服务器,没有问题的话就一行命令部署到正式服务器。及其方便了开发和部署。因为我的Tomcat9遇到很多问题。
    可以参考 maven自动部署到远程tomcat教程 进行部署和测试。

    下面是我遇到的一个错误,因为没有配置IDEA的make 导致出错。

    [ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) on project liwenhao: Cannot invoke Tomcat manager: Connect
    ion reset by peer: socket write error -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1]

    可以通过将make如下配置

    即可成功

    war包部署在服务器乱码


    可以通过配置如下属性,解决中文war包服务器乱码。

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    配置完图。

    在我通过mvn tomcat7:deploy命令热部署时,会出现mysql无法连接的情况,后来在我重新进行热部署的时候,没有出现这个问题。
    猜测
    应该是我的配置文件的问题

    参考文档

    1. centos 7 开放 80端口
    2. centos7 设置中文
    3. CentOS 7下彻底卸载MySQL数据库
    4. CentOS7 远程访问MySQL
    5. How To Install Apache Tomcat 8 on CentOS 7
  • 相关阅读:
    windows下Redis安装及使用
    DQL、DML、DDL、DCL的概念与区别
    成长路上破局思维:工具化时间管理
    git push 本地分支与远程分支关联
    vue elementUI table表格列动态渲染的案例
    flutter 页面频繁刷新节省页面性能的组件RepaintBoundary
    elementUI Table表格表头自定义
    vue 项目添加echarts图表
    flutter 高斯实现模糊
    flutter 监听软键盘的弹出和关闭
  • 原文地址:https://www.cnblogs.com/haiyabtx/p/7844344.html
Copyright © 2020-2023  润新知