一文教会小白在Cent OS 下搭建tomcat + mysql 的Web服务实施

实施基础,纯原创,纯干货!

一、操作系统配置:
本次部署操作系统为Cent OS 7.5,初始化设置如下:

  1. 设置主机名hostname
    vi /etc/hostname #编辑配置文件
    TFKJ@xiqing_01 #修改localhost.localdomain为TFKJ@xiqing_01
    :wq! #保存退出
    vi /etc/hosts #编辑配置文件
    127.0.0.1 localhost TFKJ@xiqing_01
    #修改localhost.localdomain为TFKJ@xiqing_01
    :wq! #保存退出
    shutdown -r now #重启系统

  2. 修改用户名和密码
    administrator/ABCabc123
    root/tfkj@xiqing!23

  3. 配置网络
    IP地址192.168.40.20和21,掩码255.255.254.0,网关192.168.41.1
    a. 配置动态ip
    1)# vi /etc/sysconfig/network-scripts/ifcfg-eth0
    2)修改BOOTPROTO=dhcp
    ONBOOT=yes
    3)# service network restart
    其中ifcfg-eth0为需要配置的网卡名称,通过ifconfig命令可查看系统的所有网卡信息。
    b. 配置静态ip

    vi /etc/sysconfig/network-scripts/ifcfg-eth0

    BOOTPROTO=static #启用静态IP地址
    ONBOOT=yes #开启自动启用网络连接
    IPADDR=192.168.21.129 #设置IP地址
    NETMASK=255.255.255.0 #设置子网掩码
    GATEWAY=192.168.21.2 #设置网关
    DNS1=8.8.8.8 #设置主DNS
    DNS2=8.8.4.4 #设置备DNS
    :wq! #保存退出
    设置启用静态IP: BOOTPROTO=static,然后设置ip,子网掩码,网关,DNS等信息。

    注意:不要配置ifcfg-lo回环接口,如果配置不当,可能引起ARP内网攻击。

二、平台服务部署
本次服务部署,以Yum安装方式完成,文档编写为提醒外网条件允许的情况下的方法记录。

  1. 安装JDK
    由于一般程序开发均是基于windows下的JAVA(SE)环境,所以需要卸载centos7 集成安装openJDK,替换为sun JDK,以rpm –e –nodeps 卸载openJDK文件即可。
    a. 安装jdk
    Cent OS 7 YUM源不包含 sun JDK,需要RPM安装jdk文件
    rpm –ivh jdk-7u80-linux-x64.rpm
    或者使用yum命令:
    yum install jdk-7u80-linux-x64.rpm
    注:安装以后如果无法正常运行,请检查/usr/bin/java 软连接路径是否为:

    如果不是上述指向,则可以建立软连接:
    ln -s /usr/java/default/bin/java /usr/bin/java

     多版本选择
    注:当系统存在多个版本的jdk服务时,可以通过以下命令进行选择:

    b. 配置全局环境变量:
    Vi /etc/profile
    #set java environment
    JAVA_HOME=/usr/java/jdk1.7.0_80
    JRE_HOME=KaTeX parse error: Expected 'EOF', got '#' at position 21: …HOME/jre #̲或者JRE_HOME=/usr…PATH: J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:JRE_HOME/bin
    CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    export JAVA_HOME JRE_HOME PATH CLASSPATH

    注释:

    JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径,此路径下包括lib,bin,jre等文件夹(tomcat,Eclipse的运行都需要依靠此变量)。

    CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设:.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar:$JRE_HOME/lib。CLASSPATH变量值中的.表示当前目录

    PATH使得系统可以在任何路径下识别java命令,设为: J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:JRE_HOME/bin。

    特别注意:环境变量值的结尾没有任何符号,不同值之间用:隔开(windows中用;)。


    source /etc/profile
  1. 安装tomcat (yum)
    a. 安装tomcat
    yum install tomcat
    yum –y install tomcat
    注: 会同时安装java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64 和 tomcat-7.0.76-8.el7_5。
    如果openJDK兼容开发服务话,还需要安装javac: java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64
    c. 安装管理包
    如果您刚开始使用Apache Tomcat,您很可能想要安装一些管理工具,这些工具将帮助您部署Java应用程序和管理虚拟主机。幸运的是,有一些软件包将这些工具作为Web应用程序。
    要安装默认Tomcat根页面(tomcat-webapps)和Tomcat Web应用程序管理器和Virtual Host Manager(tomcat-admin-webapps),请运行以下命令:
    yum install tomcat-webapps tomcat-admin-webapps
    答y在确认提示。
    这增加了ROOT , examples , sample , manager和host-manager Web应用到tomcat/webapps的目录。
     配置webapp管理用户名和密码
    进入tomcat下的conf目录,打开tomcat-users.xml文件
    找到文件在末尾,在上一行插入如下配置:


    保存文件,退出。重启tomcat该配置即可生效(“server status”、“Host manager”配置类似,参照报错页面的提示信息进行配置即可)
     修改允许上传.war文件大小限制
    在实际的项目过程中我们会发现war包的大小往往达到几十上百M,这时发布会出现失败,原因是tomcat默认最大只允许上传50M的文件,这时候我们需要去修改webapps\manager\WEB-INF\web.xml文件
    找到

    52428800
    52428800
    0

    一段(大概在53行),将max-file-size、max-request-size值增大即可。

    d. 安装在线文档(可选)
    如果要安装Tomcat文档,以便默认Tomcat页面上的所有链接都可以运行,请运行以下命令:
    sudo yum install tomcat-docs-webapp tomcat-javadoc
    答y在提示安装文档软件包。

    e. 端口配置
     防火墙配置
    放行防火墙8080接口
    firewall-cmd --zone=public --add-port=8080/tcp –permanent
    刷新防火墙
    firewall-cmd –reload

     SELinux配置(可以直接关闭此服务)
    修改SELinux端口(以ssh为例):
    通过sestatus或者getenforce看到运行状态。
    检查SELinux是否启用,# sestatus -v |grep SELinux
    SELinux status: enabled #表示启用

    检查semanage是否安装,# rpm -qa |grep policycoreutils-python
    若未安装,请先安装工具包# yum install policycoreutils-python
    查看当前selinux允许的端口,# semanage port -l |grep ssh
    添加新端口,# semanage port -a -t ssh_port_t -p tcp 6022
    检查是否添加成功,# semanage port -l |grep ssh
    临时关闭:
    [root@localhost ~]# getenforce
    Enforcing
    [root@localhost ~]# setenforce 0
    [root@localhost ~]# getenforce
    Permissive

    永久关闭:
    [root@localhost ~]# vim /etc/sysconfig/selinux
    SELINUX=enforcing 改为 SELINUX=disabled
    重启服务reboot

    f. 配置内存
    vi /etc/share/tomcat/conf/tomcat.conf
    或者
    vi /usr/local/tomcat/bin/catalina.sh
    添加命令如下图
    JAVA_OPTS="-server -Xms896m -Xmx896m -XX:PermSize=512M -XX:MaxPermSize=1024m"

    JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M –Xmx512M -XX:MaxNewSize=256m"

    g. 配置日志文件
    为避免tomcat catalina.out日志文件过大问题,可以修改日志等级为WARNING;
    vi /etc/share/tomcat/conf/ logging.properties

     非yum安装设置自启动
    服务也可以使用下面方法设置开机启动,如追加rc.local文件追加/usr/bin/rsync --daemon就是开启启动rsync服务
    1、首先,脚本具有可执行权限
    chmod 755 XXX.sh
    2、然后将脚本存放的绝对路径+脚本全名追加到/etc/rc.d/rc.local文件最后
    /root/XXX.sh
    3、在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限
    chmod +x /etc/rc.d/rc.local

  2. 安装mysql (yum)
    注:如果之前安装过mysql,删除不干净的话,可以检查是否移除路径 /var/lib/mysql。mariadb-server 和 mysql-server 是默认相同的 db 文件位置。
    a. Yum安装mysql mysql-server
    yum install https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    vim /etc/yum.repos.d/mysql-community.repo
    编辑yum文件,修改想要下载的mysql版本,enable=’1’

    yum repolist enabled | grep mysql
    yum install mysql mysql-server
    systemctl start mysqld

    sysytemctl status mysqld
    systemctl enable mysqld #设置自启动

    b. 端口设置
     防火墙配置
    放行防火墙3306接口
    firewall-cmd --zone=public --add-port=3306/tcp –permanent
    刷新防火墙
    firewall-cmd –reload

     SELinux配置(可以直接关闭此服务)
    修改SELinux端口(以ssh为例):
    检查SELinux是否启用,# sestatus -v |grep SELinux
    SELinux status: enabled #表示启用
    检查semanage是否安装,# rpm -qa |grep policycoreutils-python
    若未安装,请先安装工具包# yum install policycoreutils-python
    查看当前selinux允许的端口,# semanage port -l |grep ssh
    添加新端口,# semanage port -a -t ssh_port_t -p tcp 6022
    检查是否添加成功,# semanage port -l |grep ssh

    c. 设置密码
    mysql –u root –p
    回车
    设置密码:set password=password(‘新密码’);

    忘记密码时,可用如下方法重置:
    service mysqld stop
    mysqld_safe --user=root --skip-grant-tables --skip-networking &
    mysql -u root
    进入MySQL后
    use mysql;
    update user set password=password(“new_password”) where user=“root”;
    flush privileges;

    mysql5.7修改方法如下:
    use mysql;
    update user set authentication_string=password(“new_password”) where user=“root”;
    flush privileges;

    进入MySQL下
    (前提是validate_password插件必须已经安装,从5.7版本开始默认安装)

    首先,修改validate_password_policy参数的值

    即policy = 0 ,仅限制密码的长度
    set global validate_password_policy=0;

    查看默认密码的长度
    select @@validate_password_length;

    修改默认密码的长度(这里修改为4)
    set global validate_password_length=4;

    d. 访问授权
    设置用户 root 可以在任意 IP 下被访问:
    grant all privileges on . to root@"%" identified by “new password”;
    设置用户 root 可以在本地被访问:
    grant all privileges on . to root@“localhost” identified by “new password”;
    刷新权限使之生效:
    flush privileges;

    e. 设置 MySQL 的字符集为 UTF-8
    打开 /etc 目录下的 my.cnf 文件(此文件是 MySQL 的主配置文件):
    vim /etc/my.cnf

    [mysql]
    default-character-set=utf8

    [mysqld]
    default-storage-engine=INNODB
    character_set_server=utf8

    或者
    在 [mysqld] 前添加如下代码:
    [client]
    default-character-set=utf8
    在 [mysqld] 后添加如下代码:
    character_set_server=utf8

    重启mysql后再登录,看看字符集,6个utf8就算OK
    show variables like ‘%character%’;

    f. 配置环境变量:
    [root@MiWiFi-R3-srv ~]# vim /etc/profile
     最后一行添加:
    export PATH= J A V A H O M E / b i n : / u s r / l o c a l / m y s q l / b i n : JAVA_HOME/bin:/usr/local/mysql/bin: JAVAHOME/bin:/usr/local/mysql/bin:PATH
     使修改生效:
    [root@MiWiFi-R3-srv ~]# source /etc/profile
    g. 正常导入sql。

    h. 设置数据库自动备份
     设定Crondtab定时任务:
    Crontab –e:
    #设定执行时间/周期,执行指定路径下的指定脚本:
    */1 * * * * /home/backup/bkDatabaseName.sh
    【注意:脚本实例编写完成后需要授予可执行权限:chmod u+x bkDatabaseName.sh】

     脚本任务实例:
    #每天执行mysql数据库备份,并自动删除7天前的备份数据
    #!/bin/bash

    Name:bakmysql.sh

    This is a ShellScript For Auto DB Backup and Delete old Backup

    #备份地址
    backupdir=/home/mysql_dbbak
    #备份文件后缀时间
    time=_date +%Y%m%d_%H%M%S
    #需要备份的数据库名称
    db_name=qmcyzd_sjw
    #mysql 用户名
    db_user=root
    #mysql 密码
    db_pass=123456
    mysqldump -u d b u s e r − p db_user -p dbuserpdb_pass $db_name | gzip > b a c k u p d i r / backupdir/ backupdir/db_name$time.sql.gz
    #删除一周之前的备份文件(‘-mmin +3’:3分钟前; ‘-mtime +7’:7天/一周前)
    find $backupdir -name $db_name"*.sql.gz" -type f -mtime +7 -exec rm -rf {} ; > /dev/null 2>&1

你可能感兴趣的:(实施宝典,linux知识,小白,linux,tomcat,mysql,实施)