• 将项目部署至云服务器的详细过程 以community项目为例


    https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/F30414BD-189A-408B-9057-C916E3D30EE9_2/My4NHNn9uU5zb4N75yc7i8A84t0BaS0g2CHEQUTUPaQz/Image.png

    1.申请一个2核4G的云服务器,系统选择CentOS 7.6

    2.使用终端连接云服务器

    • ssh root@[云服务器IP]
    • 安装unzip工具(后面解压缩 .zip 文件时要用到)

      cd /
      yum list unzip*
      yum install -y unzip.x86_64

    3.使用 wget 命令下载以下安装文件

    https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/67DC41AF-A0B7-4134-B51B-F79FC723ED57_2/Qftz0CQoSEWNUucRbxI4eVzT6eFRB7Kq1ukq2V5o6sYz/Image.png
    这些文件都要上官网上找对应的(有点麻烦!)
    将本地文件上传至云服务器,首先找到文件所在位置,然后运行命令:scp 本地文件名 用户@ip:上传到的路径位置

    scp init_sql.zip root@120.26.37.14:/root

    4.安装jdk12

    • 下载安装包https://www.oracle.com/java/technologies/javase/jdk12-archive-downloads.html

      https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/AE989B05-B0F0-4E9D-A0F5-7F3F973D3482_2/pWqTXCf6vRoLBtZIGjt3YYNhiZywLziGN0vlUrFjcoMz/Image.png

    • 新建/usr/local/java文件夹,使用 scp 命令将下载好的 .tar.gz 文件上传至该文件夹下

      scp 本地文件名 用户@ip:上传到的路径位置

    • 使用 tar -zvxf 命令解压缩 .tar.gz 文件

    • 配置环境变量

      • vim /etc/profile

      • 按 i 进入插入模式,在配置文件的最下方加上:

        export JAVA_HOME=/usr/local/java/jdk-12.0.2

        export CLASSPATH=$JAVA_HOME/lib/

        export PATH=$$PATH:$$JAVA_HOME/bin

      • source /etc/profile

    • java -version 查看是否安装成功

      https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/1F7655F2-599C-49E4-B946-DD49C894BEFE_2/9SFusZ8J08GyP44lm9C3csHPqcI565rMA6B9xaeZQ60z/Image.png

    5.安装maven

    • 使用安装包安装

    • 解压缩 tar -zvxf apache-maven-3.6.1-bin.tar.gz -C /opt

    • 配置环境变量

      • vim /etc/profile

      • 按 i 进入插入模式,在配置文件的最下方加上:

        export PATH=$PATH:/opt/apache-maven-3.6.1/bin

      • source /etc/profile

    • mvn -version 查看是否安装成功

      https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/AC78FDB0-E7CE-4CB2-8E2D-13953F624655_2/iXyHdkd7VKAzuv5fxGipxILpIELMtv4OtGX58wOe2NQz/Image.png

    • 修改maven的配置文件,把镜像设置为阿里云

      • vim /opt/apache-maven-3.6.1/conf/settings.xml

      • 将以下内容插入到setting.xml文件中


        alimaven
        aliyun maven
        https://maven.aliyun.com/repository/central
        central

    6.安装MySQL

    • 安装 yum 的 mysql 连接器 yum install -y mysql80-community-release-el7-7.noarch.rpm

    • 切换到根目录下, yum list mysql* 查看所有的mysql可用安装

      https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/FD9C0C8F-8EB3-49B4-99EF-5F18B25AF5D9_2/Hyc9FxLmVFyjzo476k0lndtjy2l745sjy9iGy57dO0Mz/Image.png

    • yum install -y mysql-community-server.x86_64

    • 启动mysql服务 systemctl start mysqld

    • 查看mysql服务状态 systemctl status mysqld

      https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/C1B22592-E235-401C-AAE1-8D46DAFA3ADA_2/ydVhRYdOMA3AMLDsf2xh5CwS0cISxaFdjuHlTG4G74oz/Image.png

    • 从mysql 安装的日志文件里找到root的临时密码,修改密码。

      • grep 'password' /var/log/mysqld.log
      • mysql -u root -p 输入临时密码,登录mysql
      • 修改密码 alter user root@localhost identified by ‘[密码]’;
      • exit 退出mysql 用新密码重新登录一下,成功登录就ok啦

    7.初始化mysql数据库

    • 解压缩 unzip -d /root init_sql.zip

    • 登录mysql 创建数据库create database community;

    • use community;

    • source 命令导入数据

      source /root/community-init-sql-1.5/init_schema.sql source
      /root/community-init-sql-1.5/init_data.sql source
      /root/community-init-sql-1.5/tables_mysql_innodb.sql

    • show tables; 查看所有的表

      https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/FA7B1A38-023E-4DA3-A2CA-A0EB625CBACB_2/c9ykT7joo3eyOUClHoZZgy6pS7XXDJgntH1jsWR25SIz/Image.png

    • exit

    8.安装Redis

    • 使用yum安装

      cd /

      yum list redis*

      yum install -y redis.x86_64

    • 启动 redis 服务 systemctl start redis

    • 查看redis 服务状态 systemctl status redis

      https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/5DC1982B-D6D5-43AF-BABC-F5A8A51745C0_2/BIq3ZeTHfy0jjzGCizvrN1dwK5uKgye8tB9LBNewTosz/Image.png

    • 运行几个redis命令测试一下

      https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/C768E7EF-A819-44E8-B576-65D6939F42A7_2/BKJ4jGE4uvtfxDKYxrPLvE6yikkgGKyoI1HJa7h6s0oz/Image.png

    9.安装kafka

    • 使用安装包安装

    • 解压缩 tar -zvxf kafka_2.12-2.3.0.tgz -C /opt

    • 默认配置就可以,不需要修改配置文件

    • 启动zookeeper

      cd /opt/kafka_2.12-2.3.0 bin/zookeeper-server-start.sh -daemon
      config/zookeeper.propertie

    • 启动kafka

      nohup bin/kafka-server-start.sh config/server.properties 1>/dev/null
      2>&1 &

    • 测试一下kafka是否可用

      bin/kafka-topics.sh --list --bootstrap-server localhost:9092

      https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/E7529E62-6CAC-49F6-8E20-3DA04B404D61_2/UB4K0FPmNnpklnpS1IpUYfI5kHZPSOW0yXOReZtQNrwz/Image.png

    10.安装elasticsearch及其分词工具

    • 使用安装包安装

    • 解压缩 tar -zvxf elasticsearch-6.4.3.tar.gz -C /opt

    • 解压缩 unzip -d /opt/elasticsearch-6.4.3/plugins/ik elasticsearch-analysis-ik-6.4.3.zip

    • 修改配置文件

      cd /opt/elasticsearch-6.4.3/config
      vim elasticsearch.yml

    • 配置集群名字,数据存放位置,日志文件存放位置

      cluster.name: amelia
      path.data: /tmp/elastic/data path.logs:
      /tmp/elastic/logs

    • 修改 jvm.options vim jvm.options

      -Xms256m
      -Xmx512m

    • elasticsearch不允许root用户启动,只允许普通用户启动,新建一个用户,并为用户设置权限,切换至新用户,后台方式启动elasticsearch

      [root@ameliacommunity config]# groupadd amelia
      [root@ameliacommunity config]# useradd amelia1 -p 123456 -g amelia
      [root@ameliacommunity config]# cd /opt
      [root@ameliacommunity opt]# chown -R amelia1:amelia *
      [root@ameliacommunity opt]# cd /tmp
      [root@ameliacommunity tmp]# chown -R amelia1:amelia *
      [root@ameliacommunity tmp]# su - amelia1
      [amelia1@ameliacommunity ~]$ cd /opt/elasticsearch-6.4.3/
      [amelia1@ameliacommunity elasticsearch-6.4.3]$ bin/elasticsearch -d

      https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/A41BE9A2-5957-45D2-AAD6-4BA63C998843_2/rOOgPtxnc0Bz5askxzLtDzQrY4z5DL4boJEeFarr7Fcz/Image.png

      [amelia1@ameliacommunity elasticsearch-6.4.3]$ su -
      Password:
      Last login: Sun Oct  9 13:59:48 CST 2022 from 219.228.135.127 on pts/2
      [root@ameliacommunity ~]# curl -X GET "localhost:9200/_cat/health?v"
      epoch      timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
      1665300441 15:27:21  amelia  green           1         1      0   0    0    0        0             0                  -                100.0%
      [root@ameliacommunity ~]#
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7

    11.安装Wkhtmltopdf

    • 使用yum安装

      [root@ameliacommunity ~]# cd /
      [root@ameliacommunity /]# yum list wkhtmltopdf*
      Loaded plugins: fastestmirror
      Loading mirror speeds from cached hostfile
      Available Packages
      wkhtmltopdf.x86_64 0.12.4-1.el7 epel
      wkhtmltopdf-devel.x86_64 0.12.4-1.el7 epel
      [root@ameliacommunity /]# yum install -y wkhtmltopdf.x86_64

    • 安装一个虚拟的gui程序

      [root@ameliacommunity /]# yum list xvfb
      Loaded plugins: fastestmirror
      Loading mirror speeds from cached hostfile
      Available Packages
      python-xvfbwrapper.noarch 0.2.4-2.el7 epel
      xorg-x11-server-Xvfb.x86_64 1.20.4-18.el7_9 updates
      [root@ameliacommunity /]# yum install -y xorg-x11-server-Xvfb.x86_64

    • 测试是否可用
      https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/0B2DA6B8-4EB6-48F0-B5CF-D608733434EF_2/mByWtzKvu5FYe5brCgxhMnfqxt3gZhtIPzmrufzLATgz/Image.png

    • 将命令封装到/opt下

      • vim /opt/wkhtmltoimage.sh 将下面内容写入wkhtmltoimage.sh文件中

        xvfb-run --server-args=“-screen 0, 1024x768x24” wkhtmltoimage “$@”

      • 给文件添加执行权限 chmod +x wkhtmltoimage.sh

      • 使用 /opt/wkhtmltoimage.sh [https://www.baidu.com](https://www.baidu.com/) 2.png

    12.安装tomcat

    • 使用安装包安装

    • 解压缩 tar -zvxf apache-tomcat-9.0.22.tar.gz -C /opt

    • 配置环境变量

      • vim /etc/profile

      • 按 i 进入插入模式,在配置文件的最下方加上:

        export PATH=$PATH:/opt/apache-tomcat-9.0.22/bin

      • source /etc/profile

      • echo $PATH 打印环境变量

    • 启动tomcat

      https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/20DA8CC5-7741-4369-82AD-886A08055122_2/5jl1MPckeAXFTbaN46z1ULyoxMIHSxkdOBu9RcWGFhkz/Image.png

    • 使用浏览器访问tomcat,http://120.26.37.14:8080/,发现不可访问,原因是云服务器没有开放8080端口,开放端口方法参考:https://developer.aliyun.com/article/701181

    • 成功访问

      https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/F699E4F0-EA77-4CB8-A056-43328B7DB60B_2/1GG8aADeJmTB2vCFx2iyaiMCjFAZ5pfgNR0Q56LGsP0z/Image.png

    13.安装Nginx

    • 使用yum安装

      cd /

      yum list nginx*

      yum install -y nginx.x86_64

    • 配置 vim /etc/nginx/nginx.conf

      upstream myserver{
      server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; } server {
      listen 80;
      server_name 120.26.37.14;
      location /{
      proxy_pass http://myserver;
      } }

    • 启动nginx服务 systemctl start nginx

    • 查看nginx服务状态 systemctl status nginx

    • 测试是否可用(服务器需要开放80端口),直接访问http://120.26.37.14,成功访问则说明nginx服务可用

    14.删除 /opt/apache-tomcat-9.0.22/webapps 下所有文件

    15.修改代码,部署。

    • 将community项目打包为ROOT.war,把配置文件中community项目名改为空值,加一个对根路径的处理,访问/index(重定向或者转发)

    • 调整代码

      • 修改项目名

        • 文件 application.propertiesserver.servlet.context-path=
        • 文件 global.jsvar CONTEXT_PATH = "";
      • 修改对根路径的处理(转发)

        • 文件 HomeController.java 添加:
        @RequestMapping(path = "/",method = RequestMethod.GET)
            public String root(){
            	return "forward:/index";
            }
        
        • 1
        • 2
        • 3
        • 4
        • 打包为war包,且打包名为ROOT,修改 pom.xml 文件
        <packaging>warpackaging>
        <build>
                <finalName>ROOTfinalName>
        build>
        
        • 1
        • 2
        • 3
        • 4
        • 修改配置文件

        https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/16469D51-18B5-4809-B5B9-1E4C229BFB4D_2/zbgCq29NwOYS0YMmQ6MjbWAtgrqaOmBg2EddtiCM6qgz/Image.png

        • 配置tomcat启动入口类,新建类 CommunityServletInitializer.java
    • maven clean

    • 将项目压缩为 .zip文件,上传至云服务器

    • 解压缩 unzip -d /root community.zip

    • 进入项目文件路径 cd community

    • 使用 mvn 命令打包且跳过编译 mvn clean package -Dmaven.test.skip=true

    • 进入打包后生成的target文件夹下 cd target

    • 将打包好的war包移动到tomcat的webapps路径下 mv ROOT.war /opt/apache-tomcat-9.0.22/webapps/

    • 启动tomcat 服务 startup.sh

    • 通过日志文件查看是否成功开启服务,然后就可以用浏览器直接访问啦!

      https://res.craft.do/user/full/fd148a50-4a5b-9a85-bec3-e1645571e2c7/doc/0B8D9E58-36B1-468D-8921-9CB1E5C62155/AFFACF7B-B6B2-4176-A5D3-E05E50D742C9_2/xY7VeKPxxSH0RfoxworMhDQiont2Bdoop5rTkXvnzwMz/Image.png

  • 相关阅读:
    【信号处理】Matlab实现希尔伯特-黄变换
    Hadoop在启动yarn时报错:Cannot set priority of resourcemanager process xxxxx
    SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(7)
    CMake教程-第 8 步:添加自定义命令和生成文件
    深入浅出计算机网络 day.1 概论① 信息时代的计算机网络
    YOLOv5的Tricks | 【Trick15】使用COCO API评估模型在自己数据集的结果
    接口定义与实现
    目标检测YOLO实战应用案例100讲-水下机器人视域中小目标检测(中)
    SpringBoot-生成验证码
    Codeforces Round #820 (Div. 3) A-G
  • 原文地址:https://blog.csdn.net/wangws_sb/article/details/128040982