准备环境
开始之前需要为平台准备运行环境,本次示例使用的是CentOS 7操作系统,用户需要根据实际环境调整安装命令。
后端
后端需要安装Java 17的运行时,需要根据以下步骤进行安装:
执行以下命令查看是否已经安装其他版本的Java:
bashjava -version如果已经安装其他版本的Java,请卸载其他版本的Java:
bashsudo yum remove java-1.8.0-openjdk安装EPEL软件源:
bashsudo yum install epel-release安装Open jdk 17:
bashsudo yum install java-17-openjdk-devel确认Java 17的运行时是否安装成功:
bashjava -version输出结果如下:
bashOpenJDK 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文件,添加以下内容:bashexport JAVA_HOME=/usr/lib/jvm/java-17-openjdk export PATH=$JAVA_HOME/bin:$PATH保存并退出文件,并运行以下命令,使环境变量生效:
bashsource /etc/profile
前端
前端需要安装Nginx来提供静态文件服务,需要根据以下步骤进行安装,安装参考文章:CentOS 7非编译安装Nginx:
安装Nginx:
bashsudo rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-2.el7.ngx.x86_64.rpmTIP
若出现其他问题,可按照提示进行安装依赖,正常来说直接运行即可。 如果不想要该发行版本,则可以到http://nginx.org/packages/centos/7/x86_64/RPMS/ 中进行选择。
验证安装是否成功:
bashsystemctl status nginx输出结果如下:
bashnginx.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:
bashsystemctl start nginx启动Nginx后,可以通过以下命令查看Nginx的运行状态:
bashsystemctl status nginx输出结果如下:
bashnginx.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
设置开机自启动
bashsystemctl enable nginx
数据库
数据库使用的是MySQL 5.7,需要根据以下步骤进行安装,安装参照文章:MySQL主从数据库测试(CentOS 7):
更新安装源
bashsudo yum update -y安装网络工具net-tools
bashsudo yum install -y net-tools安装下载工具wget
bashsudo yum install -y wget备份安装源
bashsudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup下载国内安装源
bashsudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo清除缓存
bashsudo yum clean all生成缓存
bashsudo yum makecache安装工具lsof
bashsudo yum install -y lsof下载MySQL5.7的资源包
bashsudo wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm安装MySQL5.7源
bashsudo rpm -Uvh mysql57-community-release-el7-10.noarch.rpm安装MySQL服务端
bashsudo yum install mysql-community-server -y启动MySQL
bashsudo systemctl start mysqld.service启动成功后,可以通过以下命令查看MySQL的运行状态:
bashsudo systemctl status mysqld.serviceTIP
若出现其他问题,可参考文章:MySQL主从数据库测试(CentOS 7)
将MySQL设置为自启动
bashsudo systemctl enable mysqld.service获取生成的默认随机密码
bashsudo grep 'temporary password' /var/log/mysqld.log输出结果如下:
bash2023-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:
bashmysql -u root -p Enter password: 9e%@#^&*TIP
注意在实际操作时,密码是不可见的! 修改密码:
bashmysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; mysql> FLUSH PRIVILEGES;CAUTION
以下命令中的
mysql>表示是mysql的命令行提示符,实际操作时无需输入。配置MySQL允许远程登录:
bashmysql>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服务配置
备份文件
bashcp /usr/lib/systemd/system/docker.service /usr/lib/systemd/system/docker.service.bak找到配置行
bashExecStart=/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配置
bashsystemctl daemon-reload重启docker服务
bashsystemctl restart docker
修改防火墙配置
新增规则
bashfirewall-cmd --add-port=2375/tcp --permanent应用防火墙规则配置
bashfirewall-cmd --reload
验证配置
使用
curl命令来验证:bashcurl http://192.168.31.7:2375/version注意: IP需要修改成自己的IP,当出现docker的信息时,即可说明现在docker已经允许远程访问了。
CAUTION
当前的方式为开放认证的连接方式,即其他人只要知道了你的ip与端口即可访问与控制docker服务,当前方式只推荐使用在内网、测试验证与学习等场景中,即使在内网也要借助其他例如白名单的措施来防止他人随意连接docker服务。