linux搭建测试环境详细过程

news2025/3/12 13:50:39

前言


本文记录下,测试人员如何搭建测试环境,以供后面自己方便找,大家可以借鉴下搭建测试环境需要安装的有:nginx,redis,mysql,java,docker,保证这几个基本就可以用了,当然根据不同环境的需要,还需要安装一些类似ftp,libreoffice,onlyoffice 等文件处理;

教程中需要新环境,避免安装重复的软件产生冲突,你们也可自行清理已有软件,
我用的本地虚拟机来演示操作

我把所有的安装教程都汇聚到了一起,所以文字可能很长,有需要的可以耐心看完;


一、安装dcoker


1.1 安装yum工具

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken


1.2更新本地的镜像源

yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast


1.3 安装docker


yum install -y docker-ce

docker-ce为社区免费版本,安装时间较长,稍等片刻docker即可安装成功`


1.4 启动docker


#关闭防火墙
systemctl stop firewalld
#查看是否关闭
systemctl status firewalld
#设置开机不自启防火墙
systemctl enable firewalld

启动docker,输入命令: 

systemctl start docker

1.5 配置镜像加速


docker官方镜像仓库网速较差,我们需要设置国内镜像服务:
参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

#创建docker文件夹
sudo mkdir -p /etc/docker
#进入docker文件目录
cd /etc/docker
#创建文件daemon.json 文件
touch dameon.json

#向dameon.json 中追加数据 命令如下:

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://akchsmlh.mirror.aliyuncs.com"]
}
EOF

最后重新加载文件,并重启docker即可 

sudo systemctl daemon-reload
sudo systemctl restart docker

到这里docker安装基本结束了,
相关docker的其他知识点,可自行搜索学习如docker images
最后开启防火墙:systemctl start firewalld

二、安装nginx


2.1 按照nginx的依赖包,一键安装


yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
 


2.2 下载并解压安装包

//进入到local目录下创建nginx文件夹
cd /usr/local
//创建nginx文件
mkdir nginx
//进入nginx 文件
cd nginx
//下载tar包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
// 解压nginx包
tar -xvf nginx-1.13.7.tar.gz


2.3 安装nginx

//进入nginx目录
cd /usr/local/nginx
//进入目录
cd nginx-1.13.7
//执行命令 考虑到后续安装ssl证书 添加两个模块
./configure --with-http_stub_status_module --with-http_ssl_module
//执行make命令
make
//执行make install命令
make install
 


中间一定要进入nginx的文件下再执行make 命令,不然就会提示make 操作无文件

2.4 启动nginx服务


 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
 


2.5 编辑nginx的配置文件nginx.conf


# 打开配置文件
vi /usr/local/nginx/conf/nginx.conf
 

将server 下的 listen 端口号改成8089(随便挑个端口),因为可能apeache占用80端口,apeache端口尽量不要修改,我们选择修改nginx端口。 

将localhost修改为你服务器的公网ip地址 如下图


记得wq保存退出

2.6 重启nginx


/usr/local/nginx/sbin/nginx -s reload
 

** 查看nginx是否启动 

ps -ef | grep nginx


2.7 开放端口,允许外部访问nginx


若想使用外部主机访问nginx,需要关闭服务器防火墙或开放nginx服务端口,端口为上一步nginx.conf的配置端口

#新增开放端口,端口来源于你在nginx 配置的listen:端口,我这里配置的是5000
firewall-cmd --zone=public --add-port=5000/tcp --permanent

#重启防火墙:
firewall-cmd --reload

#查询端口号80 是否开启:
firewall-cmd --query-port=5000/tcp


2.8 随后访问该ip:端口 即可看到nginx界面。

#下面是nginx 的其他常用操作命令
#进入安装目录中,
命令: cd /usr/local/nginx/sbin

#启动,关闭,重启,命令:
./nginx 启动

./nginx -s stop 关闭

./nginx -s reload 重启


到此nginx安装成功,后续还有其他需要在nginx.conf 中进行配置;

三、安装mysql


3.1在线安装mysql源


wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
 


3.2 安装mysql


rpm -ivh mysql57-community-release-el7-9.noarch.rpm


执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo
mysql-community-source.repo

3.2.1使用yum进行安装

# 必须进入到 /etc/yum.repos.d/目录后再执行安装
cd /etc/yum.repos.d/
# 安装
yum install mysql-server
# 如果报错 RPG key 校验错误的话,选择不校验key即可,使用命令
yum install mysql-server --nogpgcheck


3.3 启动mysql

# 启动 MySQL
systemctl start mysqld
# 设置开机自启
systemctl enable mysqld


3.4 登录mysql


**获取临时密码

# 获取临时密码(在第一次登录时就是用这个密码)
grep 'temporary password' /var/log/mysqld.log
# 登录
mysql -u root -p
# 然后输入密码(刚刚获取的临时密码)


操作见下图


获取不到密码/或者登录不了的情况,处理如下 

#01.获取不到临时密码的处理方法

# 删除原来安装过的mysql残留的数据
rm -rf /var/lib/mysql
# 启动mysql
systemctl start mysqld


#02 登录不了的处理方法,修改配置文件,跳过效验密码

# 打开配置文件
vim /etc/my.cnf
# 在文档内搜索mysqld定位到[mysqld]文本段
/mysqld
# 在[mysqld]后面任意一行添加
skip-grant-tables
#保存后重启mysql
systemctl restart mysqld


3.4 修改mysql密码


执行下面的命令时需登录mysql

# 修改密码,密码格式有一定的要求,
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234qweQWE...';
# 刷新权限
flush privileges;
# 查看 mysql 的密码策略
SHOW VARIABLES LIKE 'validate_password%';


操作见下图

中间有报错记得,刷新权限

3.5 开启远程访问

# 连接服务器
mysql -u root -p
# 看当前所有数据
show databases;
# 进入mysql数据
use mysql;
# 查看mysql数据库中所有的表
show tables;
# 查看user表中的数据
select Host, User,Password from user;
# 修改user表中的Host(% 代表任意的客户端,可替换成具体IP地址)
update user set Host='%' where User='root';  
# 最后刷新一下
flush privileges;


3.6修改默认编码

vim /etc/my.cnf
# 进入文件后添加下面的配置即可
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8


添加utf-8 ,记得保存退

重启mysql后,并进入mysql查看编码格式

#重启mysql
systemctl restart mysqld
#进入mysql
mysql -uroot -p
#查看编码格式
show variables like 'character%';
 


格式修改成功


四、安装 java

linux下安装java

下载(jdk.8)-解压-添加环境变量

五、安装redis


5.1 下载redis安装包


redis版本库地址如下:https://download.redis.io/releases/ 选择想要的版本下载即可


5.2 解压并安装redis


#创建redis目录
mkdir /usr/local/redis
#进入到redis 目录下
cd  /usr/local/redis
#通过 rz  命令上传下载的redis包,或者finashell直接拖动文件到redis目录下也可以
rz
#解压redis包
tar -zxvf  redis-7.0.7.tar.gz 
 


5.3 安装gcc

#安装gcc
yum -y install gcc

#查看gcc 版本
gcc -version


5.4 编译redis


#进入redis包目录
cd /usr/local/redis/redis-7.0.7/
#执行make命令
make
#编译成功后,继续执行make install命令
make install
 

注意执行make命令时,一定要进入redis解压后的包目录里面执行,这样才不会提示 make 无执行文件

5.5 启动redis


#前台启动:在任何目录下执行
 redis-server
#后台启动:在任何目录下执行 
redis-server &
#启动redis服务时,指定配置文件:这种主要用于你改了配置文件的情况,比如你把默认端口号改了,你就用这个,正常也用这个
redis-server redis.conf &   
 

常用的就是:redis-server redis.conf &

5.6 关闭redis


redis-cli shutdown
 


5.7 修改redis密码


方式1:通过命令生成密码,但是服务器重启后密码会失效

#进入redis
redis-cli
#修改密码
config set requirepass 123456
 


requirepass: 后面就是你要修改的密码


方式2:修改配置问文件redis.conf 设置密码(永久有效)
1.进入到redis.conf 文件中,(也就在你安装redis包的路径下面)
如果是finashell连接的话,直接双击文件即可编辑, 你们也可在终端通过命令修改;


2.找到requirepass ,取消注释,添加密码后保存退出


如果是finashell,双击文件进行的编辑,记得ctrl+s 保存哈

3.重启服务器,配置即可生效(重启后记得启动redis)

5.8 远程连接redis


远程连接时,如果防火墙开启,就需要防火墙开放端口:6379(redis默认端口),并重新加载防火墙
firewall-cmd --permanent --add-port=6379/tcp
firewall-cmd --reload

方式1:服务器本机连接

#进入redis
redis-cli
#验证密码
auth pass_123456
 

方式2:Anoter Redis Desk mannger 工具连接


很多人通过anotherdesk连接后,可能都会提示连接被拒绝,这个时候修改下redis.conf 配置文件就行,
命令如下:


cd /usr/local/redis/redis-7.0.5
vim redis.conf


注释掉#bind 127.0.0.1 -::1 (大概也就是不限制固定ip访问吧,或者127开头的ip访问)

修改保存后,一定要重启redis服务, 先杀死redis进程,再重启;
然后再去连接就不会提示被拒绝了;


六、编辑后台配置,启动后端程序

首先要先编辑下后端jar包中的yml配置文件(正常yml文件的配置都是开发配好了直接用,)
修改相应服务ip,端口; redis,mysql 的账号密码等;

编辑后,记得保存,还有其他的yml配置,根据各自需要进行调整;

6.1 上传前端包,后端jar包到服务器


#在home下创建server目录存放后端包
mkdir /home/server
# rz  上传后端包到server目录下,或者直接拖动上传
rz 
#再建一个文件存放前端包
mkdir /home/server/ybxa
#进入ybxa文件夹下
cd /home/server/ybxa
# rz  上传前端包到ybxa目录下,或者直接拖动上传


6.2 配置nginx的配置文件


编辑配置文件:
vim /usr/local/nginx/conf/nginx.conf
1.修改root 后的html 改成前端包的存放路径 /home/server/ybxa
2.并在下方添加一段数据,这是后端所需的映射


数据来源如下

location ^~ /zwzc/ {
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass http://127.0.0.1:8080/;
        }
 

完成配置后,记得重启nginx 

/usr/local/nginx/sbin/nginx -s reload
(如果提示报错,显示nginx.pid faild) 这就表示nginx就没有运行,重启时在路径下找不到nginx的pid进程号,就需要手动启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

6.3 访问项目的前端界面


输入ip:端口 (nginx里面配置的端口) 到浏览器即可访问;目前只有前端,后端还未启动
192.168.159.133:5000

6.4 启动后端jar包


#进入后端包jar的目录下
cd /home/server
#在根目录下窗口一个logs文件
mkdir /logs
#输入启动命令
nohup java -jar -Xms1024m -Xmx2048m -XX:PermSize=1024M -XX:MaxPermSize=2048M 20221209165434.jar  --spring.profiles.active=dev > /logs/catalina.out 2>&1 &
#启动过程有一段时间,耐心等待或者可以看cpu的进度也可以,启动后端包过程中cpu占比很大,启动完了之后就降下来了
 

#查看java启动成功与否
ps -aux | grep java

其他命令:
杀死java:
kill -9 80940
kill-15 80940 (80940就是java的进程号,)

6.5访问项目


输入相应的ip:端口 就可以正常使用项目了;

这个时候,数据库还没得数据,记得导入数据库

总结


走到这里,搭建环境就圆满结束了,过程中搭建了:nginx,redis,mysql,java,docker;
其实还不完整,但整体已经有了,其他的根据自己需要进行搭建

在搭建过程中,有时候访问不了,连接被拒绝等需要考虑防火墙问题,防火墙需要开放mysql的3306端口,redis的6379端口
以及自行配置的nginx的开放端口5000 等等;
相应命令如下:
firewall-cmd --list-all 查看已所有已经开放的端口列表
firewall-cmd --query-port=8080/tcp 是否开启
firewall-cmd --permanent --add-port=80/tcp 开启80端口
firewall-cmd --permanent --remove-port=8080/tcp 移除端口
添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1453847.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

P1439 背包九讲(1):简单的0-1背包

P1439 背包九讲1&#xff1a;简单的0-1背包 一、原题呈现1、题目描述2、输入描述3、输出描述4、样例输入5、样例输出 二、思路分析这是一个最基础的01背包问题。 三、整体代码 一、原题呈现 1、题目描述 有一个箱子容量为 V&#xff08;正整数&#xff0c;0&#xff1c;&…

BUGKU-WEB source

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; 解题思路 看源码&#xff0c;看F12网络请求没有东西只能老老实实按照提示用Linux去扫描目录 相关工具 kali虚拟机安装gobuster 或者dirsearch 解题步骤 先查看源码&#xff1a; flag{Zmxhz19ub3RfaGvyzS…

Code Composer Studio (CCS) - Breakpoint (断点)

Code Composer Studio [CCS] - Breakpoint [断点] 1. BreakpointReferences 1. Breakpoint 选中断点右键 -> Breakpoint Properties… Skip Count&#xff1a;跳过断点总数&#xff0c;在断点执行之前设置总数 Current Count&#xff1a;当前跳过断电累计值 References […

Cron表达式选择器

Cron表达式选择器 功能描述 Cron表达式选择器是用于定时任务调度的一种常见工具&#xff0c;通常用于指定任务的执行时间。Cron表达式由一系列时间单位和对应的时间值组成&#xff0c;用于指定任务的执行时间。下面是一个Cron表达式的示例 0 0 12 * * ?这个表达式的含义是每…

适用于 Windows 的 12 个最佳 PDF 编辑器

PDF文档的普遍存在按理说&#xff0c;PDF文档的可读性和可移植性受到专业文档的青睐。 然而&#xff0c;PDF格式的可食用性是一大缺陷。幸运的是&#xff0c;各种 PDF 编辑工具和软件使 PDF 的编辑变得更加容易&#xff0c;这篇文章旨在帮助我们的读者找到其中最好的工具和软件…

IPv4编址方式

IPv4编址方式 本文的知识都可以到B站up湖科大教书匠的视频里去看具体讲解。 分类地址 IPv4地址被分为网络号和主机号&#xff0c;可分为A类地址、B类地址、C类地址、D类地址、E类地址。其中&#xff0c;只有A类、B类、C类地址的可用于给网络中的主机编址。 A类地址的网络号…

详解 leetcode_078. 合并K个升序链表.小顶堆实现

/*** 构造单链表节点*/ class ListNode{int value;//节点值ListNode next;//指向后继节点的引用public ListNode(){}public ListNode(int value){this.valuevalue;}public ListNode(int value,ListNode next){this.valuevalue;this.nextnext;} }package com.ag; import java.ut…

上位机图像处理和嵌入式模块部署(cmake的使用)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 过去我们编写windows程序的时候&#xff0c;习惯上都是直接使用visual studio创建工程开发。而开发linux程序的时候&#xff0c;则是编写好c、cpp代…

计算机设计大赛 深度学习YOLO图像视频足球和人体检测 - python opencv

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络4 Yolov5算法5 数据集6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习YOLO图像视频足球和人体检测 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非…

Unity中关于ScrollRect组件完整解决方案(ScrollRect中元素自动排版+ScrollRect中元素自动定位到Viewport可见范围内)

这个教程可以实现点击我这个视频中所示的效果 一、元素自动排版功能 1、首先要往我们的unity项目中导入两个脚本文件&#xff0c;脚本文件名称分别是UIScrollEventListener和CZScrollRect&#xff0c;这两个脚本文件代码如下所示。 1-1、介绍UIScrollEventListener脚本写法。…

树和二叉树的基本知识

一、树的概念及结构 1.树的概念 树是一种 非线性 的数据结构&#xff0c;它是由 n &#xff08; n>0 &#xff09;个有限结点组成一个具有层次关系的集合。 把它叫做树是因 为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的 。 有一个 特殊…

上位机图像处理和嵌入式模块部署(Halcon借鉴与客户学习)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于很多学院派的同学来说&#xff0c;他们对市场的感觉一般是比较弱的。如果写一个软件的话&#xff0c;或者说开发一个项目的话&#xff0c;他们…

SQL-Labs靶场“11-15”关通关教程

君衍. 一、十一关 基于POST单引号字符型注入1、源码分析2、联合查询注入3、报错注入 二、十二关 基于POST双引号字符型注入1、源码分析2、联合查询注入3、报错注入 三、十三关 基于POST单引号报错注入变形1、源码分析2、报错注入 四、十四关 基于POST双引号报错注入1、源码分析…

2024阿里云云服务器ECS价格表出炉

2024年最新阿里云服务器租用费用优惠价格表&#xff0c;轻量2核2G3M带宽轻量服务器一年61元&#xff0c;折合5元1个月&#xff0c;新老用户同享99元一年服务器&#xff0c;2核4G5M服务器ECS优惠价199元一年&#xff0c;2核4G4M轻量服务器165元一年&#xff0c;2核4G服务器30元3…

项目开发日志(登录页面):1. Header组件

Header组件 样式 说明 属性 属性名含义类型是否必填默认值linkUrl图标点击后链接界面String否javascript:;(none) 属性名含义类型是否必填默认值url图片路径String是无 样式 mainColor -> 主题颜色 代码 <template><div class"header-container&qu…

定制你的【Spring Boot Starter】,加速开发效率

摘要&#xff1a; 本文将介绍如何创建一个自定义的 Spring Boot Starter&#xff0c;让您可以封装常用功能和配置&#xff0c;并在多个 Spring Boot 项目中共享和重用。 1. 简介 Spring Boot Starter 是 Spring Boot 框架中的一种特殊的依赖项&#xff0c;它用于快速启动和配置…

51_蓝桥杯_led流水灯

一 原理图分析 二 三八译码器工作原理 三八译码器&#xff1a;3个输入控制8路互斥的低电平有效输出。 C B A 输出 0 0 0 Y0 0 0 1 Y1 0 1 0 Y2 0 1 1 Y3 1 0 0 Y4 1 0 1 Y5 1 1 0 Y6 1 1 1 Y7 三 锁存器工作原理 锁存器&#xff1a;当使…

租房招聘|在线租房和招聘平台|基于Springboot的在线租房和招聘平台设计与实现(源码+数据库+文档)

在线租房和招聘平台目录 目录 基于Springboot的在线租房和招聘平台设计与实现 一、前言 二、系统功能设计 三、系统实现 1、房屋管理 2、招聘管理 3、平台资讯管理 4、平台资讯类型管理 四、数据库设计 1、实体ER图 六、论文参考 七、最新计算机毕设选题推荐 八、源…

Oracle19c PDB的简介与创建

多租用户环境&#xff08;Multitenant Environment&#xff09;&#xff0c;允许一个数据库容器&#xff08;CDB&#xff09;承载多个可插拔数据库&#xff08;PDB&#xff09;。 首先&#xff0c;毋庸置疑的是pdb只能在cdb root下创建&#xff0c;每个cdb里面都有一个pdb$seed…

自定义配置IDEA中的Java注释模板

文章目录 1.背景2.模板配置2.1.配置类模板2.2.配置方法模板2.2.1. 创建自定义模板分组2.2.2. 配置缩写、模板、触发键2.2.3. 变量配置 3.总结 1.背景 由于在公司的编码规约中关于注释的规约&#xff0c;在IDEA中的默认模板无法适配&#xff0c;所以在每次新建接口、类、方法的…