基于Centos7的Java服务器搭建
前提:Centos常用命令安装
1. 安装wget
yum -y install wget
2. 安装gcc
yum -y install gcc
1. Centos7下的防火墙操作
systemctl status firewalld # 查看防火墙状态
systemctl start firewalld # 开启防火墙
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld # 开机禁用
systemctl enable firewalld # 开机启用
systemctl is-enabled firewalld # 防火墙服务是否开机启动
systemctl list-unit-files|grep enabled # 查询已经启动的服务列表
systemctl --failed # 查询启动失败的服务列表
firewall-cmd --zone=public --list-ports # 查看所有打开的端口firewall-cmd --zone=public --query-port=80/tcp # 查看指定端口开启状态
打开一个端口:不关闭防火墙
firewall-cmd --zone=public --add-port=80/tcp --permanent #(--permanent永久生效,没有此参数重启后失效)
关闭一个 端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent #(--permanent永久生效,没有此参数重启后失效)
1.1 安全开启端口(不关闭防火墙)
以8080端口为例:
-
查看8080端口是否开启
firewall-cmd --zone=public --query-port=8080/tcp
-
开启8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
-
重启防火墙
firewall-cmd --reload
2. 安装JDK1.8
首先查看自己的机器上是否已经自带openjdk,命令如下:
rpm -qa | grep jdk
如果存在,则按照如下命令进行依次卸载:
yum -y remove fileName (fileName为上步查找到的各个文件)
卸载完成之后,再运行java命令不被系统识别:
[root@localhost ~]# java -version
bash: java: command not found...
接着,首先下载需要的JDK版本的tar.gz包(jdk1.8)
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
注意要下载这个,不然会出错
接下来使用FinalShell上传到 /usr/local/java 目录下
注意:一定要是在root用户下,否则会上传失败
解压压缩包:
tar -zxvf jdk-8u161-linux-x64.tar.gz
接着使用如下命令编辑 /etc/profile
文件(需要系统已安装vim)
vim /etc/profile
在文件末尾加上:
export JAVA_HOME=/usr/local/java/jdk1.8.0_151
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
最后,使用如下命令使配置生效
source /etc/profile
完成以后,来检验是否安装成功:
[root@localhost local]# java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
3. 安装Tomcat
下载[Tomcat8][https://tomcat.apache.org/download-80.cgi]
下载:Core下tar.gz
使用FinalShell上传到服务器:/usr/local/tomcat
解压:
tar -zxvf apache-tomcat-8.5.72.tar.gz
进入:tomcat的bin目录下,启动tomcat
./startup.sh
此时如果没有关闭防火墙,则无法显示三脚猫页面
查看开放了哪些端口:
firewall-cmd --list-ports
发现并没有8080端口
打开8080
端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
重启防火墙
firewall-cmd --reload
再次查看端口开放情况,已经成功开放
再次输入ip:8080
,成功访问
4. 安装maven
首先在官网下载maven的tar.gz包,命令如下(本文以maven 3.5.0为例):
https://maven.apache.org/download.cgi
cd /usr/local/maven/
tar -zxvf apache-maven-3.8.3-bin.tar.gz
接着我们修改 /etc/profile
文件,来配置环境变量(需要系统已安装vim):
vim /etc/profile
将安装JDK配置的环境变量变成如下形式:
export JAVA_HOME=/usr/local/java/jdk1.8.0_151
export JRE_HOME=${JAVA_HOME}/jre
export MAVEN_HOME=/usr/local/maven/apache-maven-3.8.3 #增加此行
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${MAVEN_HOME}/bin:$PATH #修改此行
然后运行如下命令,使配置的环境变量生效:
source /etc/profile
完成以后,来检验maven是否安装成功:
[root@localhost a]# mvn -v
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00)
Maven home: /usr/local/maven/apache-maven-3.8.3
Java version: 1.8.0_151, vendor: Oracle Corporation
Java home: /usr/local/java/jdk1.8.0_151/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-514.16.1.el7.x86_64", arch: "amd64", family: "unix"
5. 安装Git
运行如下命令即可:
yum -y install git
查看安装结果
git --version
注意:使用yum安装的git在/usr/bin/git下
如果需要移除git,yum remove git
6. 安装redis
下载http://download.redis.io/releases/,自选下载版本,或直接使用wget下载
创建文件夹 /usr/local/redis
在目录下使用:
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
解压缩:
tar -zxvf redis-5.0.7.tar.gz
更改redis-5.0.7名字为redis
mv redis-5.0.7 redis
进入redis目录
编译安装:
make && make install
修改redis.conf配置文件:redis.conf
vim redis.conf
#bind 127.0.0.1 # 将这行代码注释,监听所有的ip地址,外网可以访问
protected-mode no # 把yes改成no,允许外网访问
daemonize yes # 把no改成yes,后台运行
后台启动redis:
./src/redis-server redis.conf
安全开启端口6379:
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload # 重启防护墙生效
如果不开启6379,则外网无法访问
设置开机启动:
在/etc/init.d/目录下,新建脚本文件:
vim /etc/init.d/redis
添加以下内容:
#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
PATH=/usr/local/bin:/sbin:/usr/bin:/binREDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cliPIDFILE=/var/run/redis.pidCONF="/usr/local/smarthome/redis/redis.conf" # redis.conf所在路径case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi if [ "$?"="0" ] then echo "Redis is running..." fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $REDIS_CLI -p $REDISPORT SHUTDOWN while [ -x ${PIDFILE} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; restart|force-reload) ${0} stop ${0} start ;; *) echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2 exit 1
esac
修改权限:
chmod 755 /etc/init.d/redis
重启测试:
/etc/init.d/redis restart
设置开机启动:
添加到服务列表:
chkconfig --add /etc/init.d/redis
设置开机启动:
chkconfig redis on
7. 安装RabbitMQ
7.1 安装文件准备
#下载erlang
wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm#下载socat
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm#下载rabbitmq-server
wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
7.2 安装编辑工具
安装编辑工具
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz tcp_wrappers
7.3 执行命令
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
7.4 安装插件
#开启管理界面
rabbitmq-plugins enable rabbitmq_management
7.5 修改配置文件
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
7.6 启动mq
service rabbitmq-server start # 启动服务
service rabbitmq-server stop # 停止服务
service rabbitmq-server restart # 重启服务
注意:15672为管理界面端口 5672为客户端访问连接端口
7.7 安全打开端口
# 安全打开15672端口
firewall-cmd --zone=public --add-port=15672/tcp --permanent
# 安全打开5672端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent
# 重启防火墙生效
firewall-cmd --reload
访问:http://ip:15672 可进入管理界面,默认用户和密码都为:guest
8. 安装docker
# 1、yum 包更新到最新
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
9. 安装Elasticsearch
下载:到 /usr/lcoal/elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.0-linux-x86_64.tar.gz
解压缩
tar -zxvf elasticsearch-7.0.0-linux-x86_64.tar.gz
进入目录
进入config文件夹下编辑elasticsearch.yml
集群模式下,放开cluster.name注释,单机模式下,放开node.name
数据存储和日志存储路径放开注释
网络设置:ip限制、端口设置、跨域设置
安全启动9200端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --reload
配置完成后进入bin目录执行启动脚本elasticsearch
前台启动 ./elasticsearch
后台启动 ./elasticsearch -d
启动可能报错
1. can not run elasticsearch as root
[2021-10-31T11:57:14,719][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-1] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as rootat org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-7.0.0.jar:7.0.0]at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.0.0.jar:7.0.0]at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-7.0.0.jar:7.0.0]at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-7.0.0.jar:7.0.0]at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-7.0.0.jar:7.0.0]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) ~[elasticsearch-7.0.0.jar:7.0.0]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-7.0.0.jar:7.0.0]
Caused by: java.lang.RuntimeException: can not run elasticsearch as rootat org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:102) ~[elasticsearch-7.0.0.jar:7.0.0]at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:169) ~[elasticsearch-7.0.0.jar:7.0.0]at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:325) ~[elasticsearch-7.0.0.jar:7.0.0]at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-7.0.0.jar:7.0.0]... 6 more
解决办法:
-
创建es用户组及es用户:
groupadd es useradd es passwd es
-
更改es文件夹及内部文件的所属用户及组为es:es(在elasticsearch根目录执行此命令)
chown -R es:es elasticsearch-7.0.0
注意:如果data和log目录不在elasticsearch-7.0.0目录中,则也要对data和log目录使用此命令
-
切换到es用户再启动 [在bin目录下]
./elasticsearch或./elasticsearch -d
-
访问IP:9200即可查看elasticsearch基本信息
2. bootstrap checks failed
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决办法:
切换到root用户
ulimit -Hn 查看硬限制
ulimit -Hn
查看到:4096
1.修改vim /etc/security/limits.conf
vim /etc/security/limits.conf
添加下面设置:
* soft nofile 65536
* hard nofile 65536
此文件修改后需要重新登录用户,才会生效
重新 ulimit -Hn 查看硬限制 会发现数值有4096改成65535
2.修改vi /etc/sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p
再次切换到es用户下启动
启动成功