Skip to content

准备环境

开始之前需要为平台准备运行环境,本次示例使用的是CentOS 7操作系统,用户需要根据实际环境调整安装命令。

后端

后端需要安装Java 17的运行时,需要根据以下步骤进行安装:

  • 执行以下命令查看是否已经安装其他版本的Java:

    bash
    java -version
  • 如果已经安装其他版本的Java,请卸载其他版本的Java:

    bash
    sudo yum remove java-1.8.0-openjdk
  • 安装EPEL软件源:

    bash
    sudo yum install epel-release
  • 安装Open jdk 17:

    bash
    sudo yum install java-17-openjdk-devel
  • 确认Java 17的运行时是否安装成功:

    bash
    java -version

    输出结果如下:

    bash
    OpenJDK version "17.0.1" 2021-10-19
    OpenJDK Runtime Environment (build 17.0.1+12-39)
    OpenJDK 64-Bit Server VM (build 17.0.1+12-39, mixed mode, sharing)

    如果显示结果与上方相似,则说明Java 17的运行时安装成功。

  • 配置环境变量: 编辑/etc/profile文件,添加以下内容:

    bash
    export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
    export PATH=$JAVA_HOME/bin:$PATH

    保存并退出文件,并运行以下命令,使环境变量生效:

    bash
    source /etc/profile

前端

前端需要安装Nginx来提供静态文件服务,需要根据以下步骤进行安装,安装参考文章:CentOS 7非编译安装Nginx

  • 安装Nginx:

    bash
    sudo rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-2.el7.ngx.x86_64.rpm

    TIP

    若出现其他问题,可按照提示进行安装依赖,正常来说直接运行即可。 如果不想要该发行版本,则可以到http://nginx.org/packages/centos/7/x86_64/RPMS/ 中进行选择。

  • 验证安装是否成功:

    bash
    systemctl status nginx

    输出结果如下:

    bash
    nginx.service - nginx - high performance web server
    Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
    Active: inactive (dead)
     Doc: http://nginx.org/en/docs/

    如果显示结果与上方相似,则说明Nginx安装成功。

  • 启动Nginx:

    bash
    systemctl start nginx

    启动Nginx后,可以通过以下命令查看Nginx的运行状态:

    bash
    systemctl status nginx

    输出结果如下:

    bash
    nginx.service - nginx - high performance web server
    Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
    Active: active (running) since Tue 2023-04-18 09:06:01 CST; 1h 2min ago
    Doc: http://nginx.org/en/docs/
    Main PID: 1234 (nginx)
    CGroup:
    - /usr/sbin/nginx -g daemon on; master_process on;

    如果显示结果与上方相似,则说明Nginx已启动。

    TIP

    若出现其他问题,可参考文章:CentOS 7非编译安装Nginx

  • 设置开机自启动

    bash
    systemctl enable nginx

数据库

数据库使用的是MySQL 5.7,需要根据以下步骤进行安装,安装参照文章:MySQL主从数据库测试(CentOS 7)

  • 更新安装源

    bash
    sudo yum update -y
  • 安装网络工具net-tools

    bash
    sudo yum install -y net-tools
  • 安装下载工具wget

    bash
    sudo yum install -y wget
  • 备份安装源

    bash
    sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  • 下载国内安装源

    bash
    sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  • 清除缓存

    bash
    sudo yum clean all
  • 生成缓存

    bash
    sudo yum makecache
  • 安装工具lsof

    bash
    sudo yum install -y lsof
  • 下载MySQL5.7的资源包

    bash
    sudo wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
  • 安装MySQL5.7源

    bash
    sudo rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
  • 安装MySQL服务端

    bash
    sudo yum install mysql-community-server -y
  • 启动MySQL

    bash
    sudo systemctl start mysqld.service

    启动成功后,可以通过以下命令查看MySQL的运行状态:

    bash
    sudo systemctl status mysqld.service

    TIP

    若出现其他问题,可参考文章:MySQL主从数据库测试(CentOS 7)

  • 将MySQL设置为自启动

    bash
    sudo systemctl enable mysqld.service
  • 获取生成的默认随机密码

    bash
    sudo grep 'temporary password' /var/log/mysqld.log

    输出结果如下:

    bash
    2023-04-18T09:06:01.000000Z 0 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 9e%@#^&*

    TIP

    示例中的MySQL密码为:9e%@#^&*

  • 登录MySQL修改密码,登录MySQL后,执行以下命令修改密码为123456,默认MySQL密码规则会有限制,如有需要则自行修改: 登录MySQL:

    bash
    mysql -u root -p
    Enter password: 9e%@#^&*

    TIP

    注意在实际操作时,密码是不可见的! 修改密码:

    bash
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
    mysql> FLUSH PRIVILEGES;

    CAUTION

    以下命令中的mysql>表示是mysql的命令行提示符,实际操作时无需输入。

  • 配置MySQL允许远程登录:

    bash
    mysql>use mysql;
    #%代表所有连接
    mysql>update user set Host = '%' where Host = 'localhost' and User='root';
    #刷新权限表
    mysql>flush privileges;

    TIP

    若出现其他问题,可参考文章:MySQL主从数据库测试(CentOS 7)

docker

平台需要依赖docker来运行赛题环境,因此需要安装docker,目前docker版本没有限制,所以可以安装最新的ce版本,安装步骤如下:

安装docker

  • 安装依赖:
    bash
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 添加docker源:
    bash
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)
  • 安装docker:
    bash
    sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • 启动docker:
    bash
    sudo systemctl start docker
  • 设置docker开机启动:
    bash
    sudo systemctl enable docker

配置docker允许远程访问

修改docker服务配置

  • 备份文件

    bash
    cp /usr/lib/systemd/system/docker.service /usr/lib/systemd/system/docker.service.bak
  • 找到配置行

    bash
    ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
  • 将以上配置行注释掉,并新增以下允许远程访问的配置行,如下所示:

    bash
    #ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

重启docker服务

  • 重载docker配置

    bash
    systemctl daemon-reload
  • 重启docker服务

    bash
    systemctl restart docker

修改防火墙配置

  • 新增规则

    bash
    firewall-cmd --add-port=2375/tcp --permanent
  • 应用防火墙规则配置

    bash
    firewall-cmd --reload

验证配置

  • 使用curl命令来验证:

    bash
    curl http://192.168.31.7:2375/version

    注意: IP需要修改成自己的IP,当出现docker的信息时,即可说明现在docker已经允许远程访问了。

CAUTION

当前的方式为开放认证的连接方式,即其他人只要知道了你的ip与端口即可访问与控制docker服务,当前方式只推荐使用在内网、测试验证与学习等场景中,即使在内网也要借助其他例如白名单的措施来防止他人随意连接docker服务。

Released under the MulanPSL2 License.