Java 开发 Linux 服务器常用软件安装,保姆教程

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: Java 开发 Linux 服务器常用软件安装,保姆教程

最近入手了一波腾讯云的双十二服务器,太香了!太香了!太香了!


本人一下子买了三年,又可以挥霍了。


如果想购买的,可以点击链接了解情况(真的很实惠):https://curl.qcloud.com/u0lD9kgZ


那既然作为开发服务器,当然是要先装一下环境了,下面我根据本人购买的一台全新服务器进行环境安装,只要会复制就可以把环境装好,下面我们开始把!


yum更换源(国内)


目的就是在使用yum下载软件的时候不至于非常缓慢(龟速)


1、份系统自带的源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak


2、用wget下载阿里源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo


如果提示没有wget,可以使用curl下载

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo


3、清除并重建缓存

yum clean all
yum makecache


4、更新 yum

yum update


Linux端口放开


先来放开一下服务器的端口访问,因为很多软件都要通过浏览器,而 Linux 又因为防火墙问题,会拦截未开放的端口,所以先来了解几个 Linux 中放开防火墙端口命令。


1、如果是云服务器,那先跑到对应服务器网站后台,放开端口。

我是腾讯云,所以如图:


image.png


2、登录服务器,查看防火墙状态

firewall-cmd --state


3、如果没启动,那启动命令

systemctl start firewalld.service


4、如果没启动,那启动命令

systemctl start firewalld.service


5、重启命令

systemctl restart firewalld.service


6、查看防火墙已经开放端口

firewall-cmd --list-ports


7、防火墙放开端口

firewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(永久生效)
例子:
firewall-cmd --zone=public --add-port=8848/tcp --permanent


8、移除防火墙端口开发

firewall-cmd --zone= public --remove-port=80/tcp --permanent


端口开放之后,记得重启防火墙


常用端口应该都放开,本人端口放开如下:


80,8080,9527:项目经常测试端口

6379:Redis 端口

3306:数据库端口

22:ssh连接端口

8848:nacos端口


JDK11安装


国内下载地址:https://repo.huaweicloud.com/java/jdk/


软件下载:https://repo.huaweicloud.com/java/jdk/11+28/jdk-11_linux-x64_bin.tar.gz


1、获取软件,并解压

cd /usr/local/
tar -zxvf jdk-11_linux-x64_bin.tar.gz


2、清除环境中原有的java

先执行java -version确认没有java

然后检查是否有相关的rpm包 rpm -qa | grep java

如果有就依次卸载包:rpm -e --nodeps "package_name"


3、配置环境变量

vim /etc/profile


在文件末尾输入以下内容:

export JAVA_HOME=/usr/local/jdk-11
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin


4、执行如下命令加载环境变量并确认java安装完成

source /etc/profile
java -version


nginx安装


下载地址: http://nginx.org/en/download.html


在linux下安装nginx,首先需要安装 gcc-c++编译器。然后安装nginx依赖的pcre和zlib包。最后安装nginx即可。


1、先安装gcc-c++编译器

yum install gcc-c++
yum install -y openssl openssl-devel


2、再安装pcre包

yum install -y pcre pcre-devel


3、再安装zlib包

yum install -y zlib zlib-devel


4、在/usr/local/下创建文件nginx文件

mkdir /usr/local/nginx


5、解压并进入nginx目录

tar -zxvf nginx-1.19.9.tar.gz
cd nginx-1.19.9


6、使用nginx默认配置

./configure --prefix=/usr/local/nginx
make
make install


7、运行

cd /usr/local/nginx/sbin
./nginx


8、访问:

http://IP/


9、重启命令

./nginx -s reload


nacos软件


官网:https://nacos.io/zh-cn/index.html


下载地址:https://github.com/alibaba/nacos/releases/tag/1.4.2


1、解压

tar -xvf nacos-server-1.4.2.tar.gz


2、单机启动

cd  /usr/local/nacos/bin
./startup.sh -m standalone


如果提示,权限不够,修改执行文件权限,再次启动:

chmod u+x *.sh


3、查看是否启动

ps -ef | grep nacos


4、如果启动不成功,那应该就是nacos的启动参数配置的太大,或者 jdk 版本不对,本人是 jdk11 服务器比较小,调整了启动参数,对应的 nacos 配置文件如下:

vim /usr/local/nacos/bin/startup.sh


将下面配置覆盖过去就行。

#!/bin/bash
# Copyright 1999-2018 Alibaba Group Holding Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
cygwin=false
darwin=false
os400=false
case "`uname`" in
CYGWIN*) cygwin=true;;
Darwin*) darwin=true;;
OS400*) os400=true;;
esac
error_exit ()
{
    echo "ERROR: $1 !!"
    exit 1
}
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME
if [ -z "$JAVA_HOME" ]; then
  if $darwin; then
    if [ -x '/usr/libexec/java_home' ] ; then
      export JAVA_HOME=`/usr/libexec/java_home`
    elif [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" ]; then
      export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home"
    fi
  else
    JAVA_PATH=`dirname $(readlink -f $(which javac))`
    if [ "x$JAVA_PATH" != "x" ]; then
      export JAVA_HOME=`dirname $JAVA_PATH 2>/dev/null`
    fi
  fi
  if [ -z "$JAVA_HOME" ]; then
        error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better!"
  fi
fi
export SERVER="nacos-server"
export MODE="cluster"
export FUNCTION_MODE="all"
export MEMBER_LIST=""
export EMBEDDED_STORAGE=""
while getopts ":m:f:s:c:p:" opt
do
    case $opt in
        m)
            MODE=$OPTARG;;
        f)
            FUNCTION_MODE=$OPTARG;;
        s)
            SERVER=$OPTARG;;
        c)
            MEMBER_LIST=$OPTARG;;
        p)
            EMBEDDED_STORAGE=$OPTARG;;
        ?)
        echo "Unknown parameter"
        exit 1;;
    esac
done
export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=`cd $(dirname $0)/..; pwd`
export CUSTOM_SEARCH_LOCATIONS=file:${BASE_DIR}/conf/
#===========================================================================================
# JVM Configuration
#===========================================================================================
if [[ "${MODE}" == "standalone" ]]; then
    #JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
    JAVA_OPT="${JAVA_OPT} -Xms64m -Xmx64m -Xmn64m"
     JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
else
    if [[ "${EMBEDDED_STORAGE}" == "embedded" ]]; then
        JAVA_OPT="${JAVA_OPT} -DembeddedStorage=true"
    fi
    JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
    JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
fi
if [[ "${FUNCTION_MODE}" == "config" ]]; then
    JAVA_OPT="${JAVA_OPT} -Dnacos.functionMode=config"
elif [[ "${FUNCTION_MODE}" == "naming" ]]; then
    JAVA_OPT="${JAVA_OPT} -Dnacos.functionMode=naming"
fi
JAVA_OPT="${JAVA_OPT} -Dnacos.member.list=${MEMBER_LIST}"
JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([0-9]*).*$/\1/p')
if [[ "$JAVA_MAJOR_VERSION" -ge "9" ]] ; then
  JAVA_OPT="${JAVA_OPT} -Xlog:gc*:file=${BASE_DIR}/logs/nacos_gc.log:time,tags:filecount=10,filesize=102400"
else
 # JAVA_OPT_EXT_FIX="-Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext"
 JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext" 
 JAVA_OPT="${JAVA_OPT} -Xloggc:${BASE_DIR}/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
fi
JAVA_OPT="${JAVA_OPT} -Dloader.path=${BASE_DIR}/plugins/health,${BASE_DIR}/plugins/cmdb"
JAVA_OPT="${JAVA_OPT} -Dnacos.home=${BASE_DIR}"
JAVA_OPT="${JAVA_OPT} -jar ${BASE_DIR}/target/${SERVER}.jar"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} --spring.config.additional-location=${CUSTOM_SEARCH_LOCATIONS}"
JAVA_OPT="${JAVA_OPT} --logging.config=${BASE_DIR}/conf/nacos-logback.xml"
JAVA_OPT="${JAVA_OPT} --server.max-http-header-size=524288"
if [ ! -d "${BASE_DIR}/logs" ]; then
  mkdir ${BASE_DIR}/logs
fi
#echo "$JAVA $JAVA_OPT_EXT_FIX ${JAVA_OPT}"
echo "$JAVA ${JAVA_OPT}"
if [[ "${MODE}" == "standalone" ]]; then
    echo "nacos is starting with standalone"
else
    echo "nacos is starting with cluster"
fi
# check the start.out log output file
if [ ! -f "${BASE_DIR}/logs/start.out" ]; then
  touch "${BASE_DIR}/logs/start.out"
fi
# start
#echo "$JAVA $JAVA_OPT_EXT_FIX ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &
#nohup "$JAVA" "$JAVA_OPT_EXT_FIX" ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
echo "$JAVA ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &
nohup $JAVA ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
echo "nacos is starting,you can check the ${BASE_DIR}/logs/start.out"


主要改动,修改 JDK 及 运行参数,现在就可以开始运行了


5、查看启动日志

tail -1000f /usr/local/nacos/logs/start.out


6、访问


http://IP:8848/nacos/index.html


Redis安装


官网下载:http://www.redis.cn/download.html


我下载的版本地址:http://download.redis.io/releases/redis-5.0.4.tar.gz


1、上传文件到对应目录

/usr/local/


2、解压

tar -xzvf redis-5.0.4.tar.gz


3、安装,指定对应目录安装

cd redis-5.0.4
make
cd src
make install PREFIX=/usr/local/redis


4、配置配置文件到安装目录

mkdir /usr/local/redis/etc
cd /usr/local/redis-5.0.4
mv redis.conf /usr/local/redis/etc


5、配置 Redis 后台启动

vim /usr/local/redis/etc/redis.conf
# no 改为 yes
daemonize no 改为 yes


6、修改 ip 保护,关闭保护模式

#注释 bind
#bind 127.0,0,1
#yes 改为 no
protected-mode yes 改为 no


7、启动Redis

cd /usr/local/redis/bin
./redis-server /usr/local/redis/etc/redis.conf


8、查看是否启动

ps -ef | grep redis


Docker安装


Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上(已经具备了)。


1、查看内核版本

uname -r


2、安装 Docker

yum install docker


3、启动 Docker

systemctl start docker


4、查看版本

docker -v


5、停止 Docker

systemctl stop docker


6、最后配置一下 docker 的下载镜像地址,因为 docker 默认是国外下载地址,如果不配置就是龟速下载

执行以下命令,打开 /etc/docker/daemon.json 配置文件

vim /etc/docker/daemon.json


i 切换至编辑模式,添加以下内容,并保存退出

{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com"
  ]
}


重启 docker

service docker restart


7、退出容器


两种退出方式:


exit:容器停止退出

ctrl+P+Q:容器不停止退出

通过 Docker 安装 MySQL

用 Docker 安装 MySQL 的原因是它比较方便,安装出错了删除镜像就行,比直接在服务器上安装简单多了。


1、保证你的 Docker 安装并且启动了


2、搜索 MySQL 镜像

docker search mysql


3、拉取对应版本数据库(这里我安装5.7)

docker pull mysql:5.7


4、查看拉取的镜像列表

docker images


5、删除镜像

docker rmi -f 镜像id


6、先创建相关目录

cd /usr/local/
mkdir mysql
cd mysql
mkdir -p {conf,logs,data}


7、启动 MySQL

docker run -p 3306:3306 --name mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/logs:/logs -v /us


解释:


  • -p 3306:3306,将Linux服务器端口与docker中的镜像端口绑定
  • –name mysql,运行服务名字
  • -v /usr/local/mysql/conf:/etc/mysql/conf.d,将主机 /usr/local/mysql/conf 录下的 my.cnf 挂载到容器的 /etc/mysql/conf.d
  • -v /usr/local/mysql/logs:/logs,将主机 /usr/local/mysql 目录下的 logs 目录挂载到容器的 /logs。
  • -v /usr/local/mysql/data:/var/lib/mysql,将主机 /usr/local/mysql/ 目录下的 data 目录挂载到容器的 /var/lib/mysql
  • -e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码。
  • -d mysql:5.7 ,后台程序运行mysql5.7


8、查看运行的镜像

docker ps -a
# -a :列出当前所有正在运行的容器+历史上运行过的


9、进入 docker 中的 MySQL

docker exec -it MySQL运行成功后的容器ID /bin/bash
mysql -u用户 -p密码


10、下面是配置 MySQL 相关命令,已经和 docker 没有关系了

#进入mysql数据库
use mysql;
#查看host与用户名
select Host, User from user;
#配置 root 用户 远程可访问
update user set Host='%' where User='root';
#强制刷新权限
flush privileges;
#现在MySQL就可以远程连接了


11、下面在配置 MySQL 的字符集,防止中文乱码

#先来看,MySQL默认字符集,如果不是 utf-8 那就需要进行配置
show variables like "%char%";


12、主要是修改 my.cnf文件, 该文件存在于 /etc文件下。使用下面命令将 my.cnf文件拷贝到 /usr/mysql/conf

cp /etc/my.cnf /usr/local/mysql/conf


13、编辑 my.cnf 文件

vim /usr/local/mysql/conf/my.cnf


13、粘贴内容

[client]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
[mysql]
default-character-set = utf8


13、退出MySQL容器,重启MySQL

退出MySQL:exit;
退出MySQL容器:exit;
重启MySQL:docker restart 容器ID或者容器名


嘻嘻,配置到这里一台新的 Linux 服务器开发环境搭建就算是大功告成了,太不容易了😭😭😭,这一套下来(暗示三连!!!)。


如果在配置过程中,有任何的不懂,或这不明白的地方可以加我联系方式👇👇👇或者文章留言,本人看到一定立马回复并解答。


本人 Linux 环境搭建完毕,服务器情况(2核4G,yyds)


image.png


好了,今天的内容到这里就结束了,关注我,我们下期见

目录
相关文章
|
12天前
|
弹性计算 关系型数据库 MySQL
阿里云服务器搭建网站教程:经济型e实例2核2G快速搭建网站图文教程参考
目前在阿里云的活动中,轻量应用服务器2核2G3M带宽只要68元1年,2核4G4M带宽只要298元1年。云服务器ECS经济型e实例2核2G 3M固定带宽,价格只要99元/1年,新老用户都可购买,企业用户购买2核4G5M带宽199元一年,为用户提供长期权益。这些都是个人和普通企业用户搭建网站使用较多的云服务器,本文为大家展示使用经济型e实例2核2G3M带宽快速搭建网站的相关教程,以供参考。
105 18
|
17天前
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
190 79
|
17天前
|
弹性计算 Linux 数据安全/隐私保护
阿里云服务器最新购买流程与试用流程参考,购买与试用图文教程和注意事项
如何购买和试用阿里云服务器,教程参考来了。阿里云服务器分为免费版和收费版,新用户可免费领取一台云服务器作为试用,轻量应用服务器2核2G目前38元1年,云服务器ECS2核2G3M的价格为99元1年,2核4G5M配置199元1年,下面小编来介绍一下2025年我们购买和试用阿里云服务器的详细流程,以图文形式展示给大家,适合新手用户参考。
阿里云服务器最新购买流程与试用流程参考,购买与试用图文教程和注意事项
|
10天前
|
Oracle 关系型数据库 Linux
linux8安装oracle 11g遇到的问题记录
Oracle 11g在Linux 8上安装时会遇到link编译环节的问题。官方建议忽略安装中的链接错误,安装完成后应用DBPSU 11.2.0.4.240716补丁及一次性补丁33991024,再重新编译二进制文件,并配置监听器和数据库。但因11g已退出服务期,这些补丁需付费获取。网上信息显示22年1月的PSU补丁也可解决问题,找到该补丁后按常规方式打补丁即可。如有需求或疑问可咨询我。
50 20
|
2天前
|
弹性计算 运维 Ubuntu
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
39 7
|
4天前
|
安全 大数据 Linux
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
|
26天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
26天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
12天前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
1月前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。