7、常规服务器环境搭建及项目部署

avatar
作者
筋斗云
阅读量:0

文章目录

1、配置需要开放的端口

看自己需要开放以下端口:

  • Redis : 6379端口
  • Mysql : 3306端口
  • HTTP : 80端口
  • HTTPS : 443端口
  • SSH : 22端口

2、安装 JDK

2.1、直接下载安装

  • 查看JDK版本,找到想要安装的版本
    • yum list | grep jdk
  • 以 jdk 1.8 为例下载安装
    • yum install -y java-1.8.0-openjdk.x86_64
    • 出现 Complete!完毕! 安装完成。
  • 默认安装到 /usr/lib/jvm 目录下
    • 查看JDK信息,输入命令:java -version

在这里插入图片描述

2.2、手动上传安装

1、官网下载最新稳定JDK

点击 下载官网最新稳定JDK

在页面下方找到:

在这里插入图片描述
下载jdk-8u351-linux-x64.tar.gz

2、新建一个安装包的文件夹

  • 任意地方创建文件夹,输入命令:mkdir /usr/local/java

3、上传安装包并解压

  • 输入命令:tar -zxvf jdk-8u351-linux-x64.tar.gz

4、修改配置文件/etc/profile,配置环境变量

  • 输入命令:vim /etc/profile

▼ 在配置文件最下方添加下面三种任意一种:

# 注意:JAVA_HOME=/usr/local/java/jdk1.8.0_261  就是你自己的目录  #java environment 1 export JAVA_HOME=/usr/local/java/jdk1.8.0_261 export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar export PATH=$PATH:${JAVA_HOME}/bin   #java environment 2 export JAVA_HOME=/usr/local/java/jdk1.8.0_261 export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/ export PATH=$PATH:$JAVA_HOME/bin   #java environment 3 export JAVA_HOME=/usr/local/java/jdk1.8.0_261 export JRE_HOME=${JAVA_HOME}/jre   export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib   export PATH=${JAVA_HOME}/bin:$PATH 

7、重新加载配置

  1. 重新加载配置:source /etc/profile
  2. 查看安装情况:java -version

能查到 java 信息就安装好了!


3、安装 Tomcat

Tomcat建议使用非Root用户安装并启动

  1. 首先,放行tomcat需要使用的8080端口的外部访问权限

    CentOS系统默认开启了防火墙,阻止外部网络流量访问系统内部

    所以,如果想要Tomcat可以正常使用,需要对Tomcat默认使用的8080端口进行放行

    放行有2种操作方式:

    1. 关闭防火墙
    2. 配置防火墙规则,放行端口
    # 以下操作2选一即可 # 方式1:关闭防火墙 systemctl stop firewalld		# 关闭防火墙 systemctl disable firewalld		# 停止防火墙开机自启  # 方式2:放行8080端口的外部访问 firewall-cmd --add-port=8080/tcp --permanent		# --add-port=8080/tcp表示放行8080端口的tcp访问,--permanent表示永久生效 firewall-cmd --reload								# 重新载入防火墙规则使其生效 

    防火墙的配置非常复杂,建议选择方式1,直接关闭防火墙一劳永逸。

  2. 以root用户操作,创建tomcat用户

    # 使用root用户操作 useradd tomcat # 可选,为tomcat用户配置密码 passwd tomcat 
  3. 下载Tomcat安装包

    # 使用root用户操作 wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.87/bin/apache-tomcat-8.5.87.tar.gz # 如果出现https相关错误,可以使用--no-check-certificate选项 wget --no-check-certificate https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.87/bin/apache-tomcat-8.5.87.tar.gz 
  4. 解压Tomcat安装包

    tar -zxvf apache-tomcat-8.5.87.tar.gz 
  5. 配置环境变量

    # 使用root用户操作(最后一行增加如下) vim /etc/profile export CATALINA_HOME=/opt/apache-tomcat-8.5.87  # 生效命令 source /etc/profile 
  6. 切换到tomcat用户并启动tomcat

    su - tomcat  # 启动 cd /opt/apache-tomcat-8.5.87/bin ./startup.sh 
  7. tomcat启动在8080端口,可以检查是否正常启动成功

    netstat -anp | grep 8080 

    image-20221017223814737

至此,Tomcat安装配置完成。


4、CentOS 安装 MySQL

注意:安装操作需要root权限

4.1、MySQL5.7

4.1.1、安装

  1. 配置yum仓库

    # 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022  # 安装Mysql yum库 rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm 

    image-20221012182514865

    由于MySQL并不在CentOS的官方仓库中,所以我们通过上述rpm命令:

    • 导入MySQL仓库的密钥
    • 配置MySQLQ的yum仓库
  2. 使用yum安装MySQL

    # yum安装Mysql yum -y install mysql-community-server 

    image-20221012182555420

  3. 安装完成后,启动MySQL并配置开机自启动

    systemctl start mysqld		# 启动 systemctl enable mysqld		# 开机自启 

    MySQL安装完成后,会自动配置为名称叫做:mysqld的服务,可以被systemctl所管理

  4. 检查MySQL的运行状态

    systemctl status mysqld 

    image-20221012182716598

4.1.2、配置

主要配置管理员用户root的密码以及配置允许远程登录的权限。

  1. 获取MySQL的初始密码

    # 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码 grep 'temporary password' /var/log/mysqld.log 

    image-20221012182744115

  2. 登陆MySQL数据库系统

    # 执行 mysql -uroot -p # 解释 # -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root # -p,表示使用密码登陆  # 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库 

    image-20221012182805966

  3. 修改root用户密码

    # 在MySQL控制台内执行 ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';	-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc 
  4. [扩展],配置root的简单密码

    我们可以给root设置简单密码,如123456.

    请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码

    # 如果你想设置简单密码,需要降低Mysql的密码安全级别 set global validate_password_policy=LOW; # 密码安全级别低 set global validate_password_length=4;	 # 密码长度最低4位即可  # 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中不要这样) ALTER USER 'root'@'localhost' IDENTIFIED BY '简单密码'; 
  5. [扩展],配置root运行远程登录

    默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统

    请注意,允许root远程登录会带来安全风险

    # 授权root远程登录 grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option;   # IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址 # 密码表示给远程登录独立设置密码,和本地登陆的密码可以不同  # 刷新权限,生效 flush privileges; 
  6. 创建普通用户用于外部连接

    # 创建普通用户(可以创建多个,用逗号隔开) CREATE USER 用户名  IDENTIFIED BY '你的密码' ; 

CREATE USER
用户1 IDENTIFIED BY '密码',
用户2 IDENTIFIED BY '密码';

  1. 退出MySQL控制台页面

    # 退出命令 exit  # 或者通过快捷键退出:ctrl + d 
  2. 检查端口

    MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态

    netstat -anp | grep 3306 

    image-20221012183746802

至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。

4.2、MySQL8.0

注意!!!以下操作已无法正常安装MySQL8.0,待更新

4.2.1、安装

  1. 配置yum仓库

    # 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022  # 安装Mysql8.x版本 yum库 rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm 
  2. 使用yum安装MySQL

    # yum安装Mysql yum -y install mysql-community-server 
  3. 安装完成后,启动MySQL并配置开机自启动

    systemctl start mysqld		# 启动 systemctl enable mysqld		# 开机自启 

    MySQL安装完成后,会自动配置为名称叫做:mysqld的服务,可以被systemctl所管理

  4. 检查MySQL的运行状态

    systemctl status mysqld 

4.2.2、配置

主要修改root密码和允许root远程登录

  1. 获取MySQL的初始密码

    # 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码 grep 'temporary password' /var/log/mysqld.log 
  2. 登录MySQL数据库系统

    # 执行 mysql -uroot -p # 解释 # -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root # -p,表示使用密码登陆  # 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库 
  3. 修改root密码

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';	-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc 
  4. [扩展],配置root的简单密码

    我们可以给root设置简单密码,如123456.

    请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码

    set global validate_password.policy=0;		# 密码安全级别低 set global validate_password.length=4;		# 密码长度最低4位即可 
  5. 允许root远程登录,并设置远程登录密码

    默认情况下,root用户是不允许远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统

    请注意,允许root远程登录会带来安全风险

    # 第一次设置root远程登录,并配置远程密码使用如下SQL命令 create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!';	-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc  # 后续修改密码使用如下SQL命令 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码'; 
  6. 创建普通用户并授权

  # 授权语法   GRANT privileges ON databasename.tablename TO 'username'@'host' 
参数含义
privileges用户的操作权限:insert,select,update等,所有权限使用ALL
databasename指定可以操作的数据库,通配符“*”表示所有库
tablename指定可以操作的数据表,通配符“*”表示所有表
host指定主机可以登录,localhost:表示本地用户可用,%:通配符表示允许任意远程主机登陆
  1. 退出MySQL控制台页面

    # 退出命令 exit  # 或者通过快捷键退出:ctrl + d 
  2. 检查端口

    MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态

    netstat -anp | grep 3306 

    image-20221012192303607

至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。


5、安装 Redis

  1. 配置EPEL仓库

    EPEL 的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。EPEL则为服务器版本提供大量的rpm包(yum程序所使用的程序安装包,类似Windows的exe),而且大多数rpm包在官方 repository 中是找不到的。

    # root执行 yum install -y epel-release 
  2. 安装redis

    # root执行 yum install -y redis 
  3. 启动redis

    # root执行 # 使用systemctl管控,服务名:redis systemctl enable redis		# 开机自启 systemctl disable redis		# 关闭开机自启 systemctl start redis		# 启动 systemctl stop redis		# 关闭 systemctl status redis		# 查看状态 
  4. 放行防火墙,redis使用端口6379

    # 方式1(推荐),关闭防火墙 systemctl stop firewalld		# 关闭 systemctl disable firewalld		# 关闭开机自启  # 方式2,放行6379端口 firewall-cmd --add-port=6379/tcp --permanent		# 放行tcp规则下的6379端口,永久生效 firewall-cmd --reload	 

至此,redis安装完成。


6、安装 Nginx

Nginx同样需要配置额外的yum仓库,才可以使用yum安装

安装Nginx的操作需要root身份

  1. 安装yum依赖程序

    # root执行 yum install -y yum-utils 
  2. 手动添加,nginx的yum仓库

    yum程序使用的仓库配置文件,存放在:/etc/yum.repos.d/内。

    # root执行 # 创建文件使用vim编辑 vim /etc/yum.repos.d/nginx.repo # 填入如下内容并保存退出 [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true  [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true 

    通过如上操作,我们手动添加了nginx的yum仓库

  3. 通过yum安装最新稳定版的nginx

    # root执行 yum install -y nginx 
  4. 启动

    # nginx自动注册了systemctl系统服务 systemctl start nginx		# 启动 systemctl stop nginx		# 停止 systemctl status nginx		# 运行状态 systemctl enable nginx		# 开机自启 systemctl disable nginx		# 关闭开机自启 
  5. 配置防火墙放行

    nginx默认绑定80端口,需要关闭防火墙或放行80端口

    # 方式1(推荐),关闭防火墙 systemctl stop firewalld		# 关闭 systemctl disable firewalld		# 关闭开机自启  # 方式2,放行80端口 firewall-cmd --add-port=80/tcp --permanent		# 放行tcp规则下的80端口,永久生效 firewall-cmd --reload							# 重新加载防火墙规则 

至此,Nginx安装配置完成。

关于 Nginx 配置参数可以参阅 nginx配置详解


7、安装 Zookeeper

  1. 下载Zookeeper安装包,并解压

    cd /opt/ # 下载 wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz  # 解压 ar -zxvf apache-zookeeper-3.5.9-bin.tar.gz  # 重命名 mv apache-zookeeper-3.5.9-bin zookeeper-3.5.9 
  2. 创建zookeeper的数据和日志目录

    cd zookeeper-3.5.9/ # 数据目录 mkdir -p data  # 日志目录 mkdir -p log 
  3. 修改 Zookeeper 配置

zoo_sample.cfg 是官方提供的模板配置,用户按需配置就行。

cd conf/ # 把zoo_sample.cfg复制并重命名为zoo.cfg cp -r zoo_sample.cfg  zoo.cfg  # 修改zoo.cfg配置文件 vi zoo.cfg  # 修改内容如下 # 1、修改数据目录和日志目录 dataDir=/opt/zookeeper-3.5.9/data dataLogDir=/opt/zookeeper-3.5.9/log # 2、修改端口号,默认是2181 clientPort=22181 # 3、zookeeper集群配置(根据需要配置,这里不写例子了) 
  1. 启动 Zookeeper

    cd /opt/zookeeper-3.5.9/bin # 启动命令 sh zkServer.sh start 

8、项目部署

8.1、后台

  1. clean --> package --> 一个jar/war包

在这里插入图片描述

  1. war包扔到服务器 tomcat 的 webapps 下重启 tomcat 即可
  2. jar包随便找个地方然后通过命令启动即可,具体命令如下
    • 如果lib文件夹下有未打包的外部依赖,原地址下的lib文件夹也需要一起上传,与jar包放一起就行

①直接启动 jar 包

  • java -jar xxx.jar
    • 缺点:当前 ssh 窗口会被锁定,不能再操作其他命令,如果需要执行其他命令,则需要打断进程,可按CTRL + C打断程序运行,或直接关闭窗口,程序也会退出
    • 可以通过命令行参数来配置启动参数,比如:java -jar xxx.jar --port=8080

②后台启动 jar 包

  • java -jar xxx.jar &
    • 缺点:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行

③后台不挂断启动 ( nohup )

  • nohup java -jar xxx.jar &
    • 用 nohub 命令启动 jar 包,是在后台不挂断运行,关闭终端窗口或者 CTRL + C 命令也不会终止程序
    • 当用 nohub命令启动 jar 包的时候,如果不指定日志输出文件,则所有的输出都会被重定向到 nohub.out 的文件中
    • 指定日志输出的启动:nohup java -jar xxx.jar >log.out &
    • 指定配置文件启动:nohup java -jar xxx.jar --spring.profiles.active=prod > log.out &

更多功能参数可自行查阅。
如果想停止进程可以使用 kill 指令

8.2、前端

  1. 前他代码打包扔到服务器(随便找个地都行)
  2. 修改 Nginx 配置文件 Nginx安装路径/nginx.conf,指向你的前台项目
    • 如果不知道路径可输入命令查看:nginx -t
    • 如果报错刻去 /var/log/nginx/ 查看 Nginx 日志
  3. 重新加载 Nginx 配置即可:nginx -s reload
http {     include       /etc/nginx/mime.types;     default_type  application/octet-stream;      log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                       '$status $body_bytes_sent "$http_referer" '                       '"$http_user_agent" "$http_x_forwarded_for"';      access_log  /var/log/nginx/access.log  main;      sendfile        on;     #tcp_nopush     on;      keepalive_timeout  65;      # 开启gzip后,浏览器加载xxx.js时会加载经过gzip压缩之后的文件a.js.gz,大大提升响应速度     gzip  on;      include /etc/nginx/conf.d/*.conf;      server {         listen          80;         server_name     8.130.160.129;                  # 对 "/" 启用反向代理         location / {                 # 项目部署路径                 root    /usr/local/server/build;                 # 解决404问题(三元表达式)                 try_files $uri $uri/ /index.html;                 # 默认首页,多个用空格隔开                 index   index.html;         }          # 访问静态资源(如图片等)         location /img {                 root    /usr/local/server/static;         }          # 错误页面路由:出现对应状态码时用 50x.html 响应请求         error_page      500 502 503 504 /50x.html;         # 访问 50x.html 的目录         location = /50x.html {                 root    /usr/local/server/build/error;         }     } } 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!