环境简介
VMware + cent OS mini 6
jdk14
tomcat 9.0.x
docker-sqlserver:2017:latest
docker-redis 或 redis 6.0.x
1创建一台centOS系统的虚拟机
1.1开始
1.2选镜像文件
这里我用的是 centOS-mini版本, 这个系统只包含了必须的系统文件, 十分轻便
1.3设置硬盘
一般的项目40~60G就够用了
1.4自定义硬件
根据项目中实际需要的内存分配, 一般4~5G就够用了, 处理器2个, 开发用的虚拟机网络为桥接模式, 如果是自己测试用的, 可以用NAT模式(NAT模式的虚拟机只有自己能远程, 桥接模式的虚拟机在公司内网的电脑都可以远程);
打印机, USB, 声卡这三个不需要的硬件我直接给移除了, 能省一点儿是一点儿;
1.5设置语言
选English就行
1.6磁盘分配
点开再点Done
关闭就可以走过这一步了, 不需要做调整
1.7时区调整
点开调到上海时区, 再看看时间对不对, 不对就调一下
1.8打开网卡
这一步按我目前了解的, 只能在安装虚拟机时开启, 如果忘了开启, 只能删了虚拟机重新安装一台
然后, 就可以点右下角的 Begin Installation开始安装了
1.9设置ROOT密码
设置好ROOT的密码, 就可以等着安装完自动开机了
2 机器设置
centOS-mini只有最基本的系统文件, 缺少很多常用的命令, 比如ipconfig, vim, 下面先安装一下这两个基本的工具
yum install net-tools -y
yum install vim -y
不安装也可以, 没有vim可以只用vi, 不能用ipconfig可以用ip addr
2.1设置固定IP
cd /etc/sysconfig/network-scripts/
vi ifcfg-ens32
(也可能是ifcfg-ens33, 看看文件里有哪个就用哪个)
将BOOTPROTO=dhcp修改为BOOTPROTO=static使用静态IP;
将ONBOOT=no修改为ONBOOT=yes开机启动时激活网络配置;
增加以下五行, 其中IPADDR调整为指定的IP
PREFIX=24
IPADDR=192.168.1.187
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
保存后执行reboot重启
设置固定IP后, 就可以转为使用xshell远程控制这台服务器了, 毕竟VMWare并不是很好用
2.2防火墙开放指定端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=1433/tcp --permanent
firewall-cmd --zone=public --add-port=6739/tcp --permanent
firewall-cmd --reload
上面是永久开放了tomcat的8080端口, sqlserver的6379端口, redis的1433端口, 可能还需要nginx的80端口, 按需求开启.
或者直接关闭整个防火墙
systemctl stop firewalld, 关闭防火墙
systemctl start firewalld, 开启防火墙
systemctl disable firewalld, 取消防火墙的开机自动启动
systemctl enable firewalld, 恢复防火墙的开机自动启动
systemctl status firewalld, 查看防火墙状态
2.3安装windows中的字体
如果有word转pdf之类的需求, 还需要安装windows中的字体, 把windows系统上的fonts文件上传到 linux服务器上的/usr/share/fonts
目录里,如果没有/usr/share/fonts
目录,就自己创建一个
可以在/usr/share/fonts
建一个子目录存放这些字体, 比如/usr/share/fonts/print-fonts
打开Fonts目录后, Ctrl A
复制, 不要直接复制这个Fonts
文件夹
上传之后在liunx系统下更改这些字体库的权限:
chmod 755 /usr/share/fonts/*
以防后面fc-cache命令用不了,先安装一下:
yum install -y fontconfig mkfontscale
进入目录
cd /usr/share/fonts/print-fonts
执行索引字体生成
mkfontscale && mkfontdir && fc-cache -fv
3 JDK
3.1上传并解压tar.gz
上传jdk并解压到一个目录
比如
tar -zxvf jdk-14.0.2_linux-x64_bin.tar.gz -C /usr/local/bin
3.2设置环境变量
编辑/etc/profile文件
vi /etc/profile
在最后追加下面三行, 然后保存
export JAVA_HOME=/usr/local/bin/jdk-14.0.2
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
重新加载/etc/profile文件
source /etc/profile
切换到根目录测试环境变量配置是否成功
java -version
能返回版本信息, 就是配置成功了
4 Tomcat
4.1设置JVM运行内存
不建议直接修改catalina.sh
或者startup.sh
文件, 可以在tomcat/bin
目录下新建setenv.sh
文件, 写入以下 JVM 参数信息
export CATALINA_OPTS="$CATALINA_OPTS -Xms1500m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx1500m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m"
然后保存并修改权限
chmod 777 setenv.sh
4.2设置springboot profile文件
如果有需要, 在上面的setenv.sh
文件中再写入
export CATALINA_OPTS="$CATALINA_OPTS -Dspring.profiles.active=prod"
这样启动的时候会使用项目中的application-prod.yml
文件, 而不是默认的application.yml
4.3设置静态资源缓存大小
如果有需要, 在${CATALINA_HOME}/conf/context.xml
文件中, 在 <Context>
双标签内增加以下内容
<Resources cachingAllowed="true" cacheMaxSize="512000" />
4.4设置manager用户
如果有需要, 在 ${CATALINA_HOME}/conf/ tomcat-users.xml
文件中, 在 <Context>
双标签内增加以下内容
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-status"/>
<user username="tomcat" password="tomcat" roles="manager-script,manager-script,manager-status"/>
再修改${CATALINA_HOME}/webapps/manager/META-INFO/context.xml
文件, 加入允许远程连接的IP
4.5设置tomcat开机自启动
在/etc/init.d
新建tomcat
文件
vim /etc/init.d/tomcat
写入以下内容
#!/bin/sh
RETVAL=0
export JAVA_HOME=/usr/local/soft/jdk-14.0.2
#export JRE_HOME=/usr/local/jdk/jre
export CATALINA_HOME=/usr/local/soft/apache-tomcat-9.0.33
export CATALINA_BASE=/usr/local/soft/apache-tomcat-9.0.33
start()
{
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
$CATALINA_HOME/bin/startup.sh
RETVAL=$?
echo " OK"
return $RETVAL
fi
}
stop()
{
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
$CATALINA_HOME/bin/shutdown.sh
RETVAL=$?
sleep 1
ps -fwwu root | grep tomcat|grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9
echo " OK"
# [ $RETVAL -eq 0 ] && rm -f /var/lock/...
return $RETVAL
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
echo $"Restaring Tomcat"
$0 stop
sleep 1
$0 start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL
保存并修改权限
chmod 777 /etc/init.d/tomcat
到此为止就可以使用命令执行了
service tomcat start/stop/restart
加入到自启动:chkconfig tomcat on/off
切换开机启动关闭
5 Sqlserver
使用docker安装, 支持很多版本, 2017, 2019, 2022等, 需要先安装docker
Docker官方没有提供sqlerver的镜像资源, 需要到微软官网上找;
Sqlerver官网
https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads
以2017用作测试
5.1获取mssql镜像
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
5.2创建容器
docker run -e "ACCEPT_EULA=Y" \
-e "MSSQL_SA_PASSWORD=ABCdef123@" \
-v /var/opt/mssql:/var/opt/mssql \
--name sql2017 \
--cap-add SYS_PTRACE \
-u 4000:0 \
-p 1433:1433 \
-d mcr.microsoft.com/mssql/server:2017-latest
参数说明:
-e 设置容器需要的环境变量, 其中MSSQL_SA_PASSWORD后面是指定的sa的密码
-v 磁盘挂载, 把容器的的/var/opt/mssql
挂载到本机的/var/opt/mssql
, 这样就不需要进入容器内部获取文件, 在本机的/var/opt/mssql
目录下就可以拿到sqlserver的文件
–name 容器名称
-u 以非root用户启动, 4000为指定用户, 0为指定用户组(不需要提前创建)
-p 把容器的1433端口映射到本系统的1433端口
-d 镜像
5.3设置sqlserver开机自启动
首先需要docker服务开机自启动
systemctl enable docker
再为容器添加自启动属性
docker update --restart=always sql2017
6 Redis
6.1方案一, 使用docker安装redis
6.1.1获取redis镜像
docker search redis
docker pull redis
(这里要用docker19之后的版本, 亲测用默认的docker版本是获取不到redis镜像的, 提示一个报错)
6.1.2创建redis容器并设置开机自启动
docker run \
--restart=always \
-p 6379:6379 \
--name myredis \
-d redis redis-server --requirepass 123123
参数解释
• --restart=always 总是开机启动
• -p 6379:6379 将6379端口挂载出去
• --name 给这个容器取一个名字
• -d 表示后台启动redis
• redis redis-server --requirepass 123123 设置密码
注:因为docker安装的redis在启动时就可以指定requirepass, 经过测试也没有对bind属性的限制, 启动后就是所有IP都可连接的, 已经完全满足了测试环境对redis的需求, 所以在测试里并没有使用到自定义的配置文件, 所以并不清楚怎么使这个自定义的文件生效.
6.2方案二, 直接安装redis
6.2.1升级gcc
如果是稳定版6.0.1之后redis, 需要先升级gcc
gcc -v
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
6.2.2安装redis
上传redis的tar.gz包并解压, 进入解压后的目录中,
执行
make
make install PREFIX=/usr/local/bin/redis
如果没有指定PREFIX, redis默认安装在/usr/local/bin目录下, 会搞的这个目录看起来很乱
修改 redis.conf 配置文件
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes
# 密码,设置后访问Redis必须输入密码
requirepass 123321
启动
./redis-server ./conf/redis.conf
6.2.3设置Redis开机自启动
首先,新建一个系统服务文件
vi /etc/systemd/system/redis.service
内容如下:
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis/redis-server /usr/local/bin/redis/config/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重载系统服务:
systemctl daemon-reload
现在,我们可以用下面这组命令来操作redis了:
# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis
# 执行下面的命令,可以让redis开机自启:
systemctl enable redis
7 Docker
安装前可以查看一下系统是否已经安装了Docker:
yum list installed | grep docker
安装:
yum install docker -y
安装后,使用docker --version
(docker version
,docker -v
)查看docker
是否安装成功,docker --help
查看docker帮助命令;
卸载:
yum remove docker.x86_64 -y
yum remove docker-client.x86_64 -y
yum remove docker-common.x86_64 -y
7.1更新docker的yum源
yum install wget -y
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
7.2安装指定版本的docker:
yum install docker-ce-19.03.13 -y
7.3安装之后启动 Docker 服务
启动:systemctl start docker
或者 service docker start
停止:systemctl stop docker
或者 service docker stop
重启:systemctl restart docker
或者 service docker restart
设置docker开机自启动 systemctl enable docker