实施基础,纯原创,纯干货!
一、操作系统配置:
本次部署操作系统为Cent OS 7.5,初始化设置如下:
设置主机名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 #重启系统
修改用户名和密码
administrator/ABCabc123
root/tfkj@xiqing!23
配置网络
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
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安装方式完成,文档编写为提醒外网条件允许的情况下的方法记录。
安装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
安装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
安装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
#备份地址
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 dbuser−pdb_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