linux搭建测试环境详细过程

前言


本文记录下,测试人员如何搭建测试环境,以供后面自己方便找,大家可以借鉴下搭建测试环境需要安装的有: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.hqwc.cn/news/477996.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AMD FPGA设计优化宝典笔记(5)低频全局复位与高扇出

亚军老师的这本书《AMD FPGA设计优化宝典》&#xff0c;他主要讲了两个东西&#xff1a; 第一个东西是代码的良好风格&#xff1b; 第二个是设计收敛等的本质。 这个书的结构是一个总论&#xff0c;加上另外的9个优化&#xff0c;包含的有&#xff1a;时钟网络、组合逻辑、触发…

leetcode hot100 拆分整数

在本题目中&#xff0c;我们需要拆分一个整数n&#xff0c;让其拆分的整数积最大。因为每拆分一次都和之前上一次拆分有关系&#xff0c;比如拆分6可以拆成2x4&#xff0c;还可以拆成2x2x2&#xff0c;那么我们可以采用动态规划来做。 首先确定dp数组的含义&#xff0c;这里dp…

容器库(7)-std::map

std::map是一种有序关联容器&#xff0c;它包含具有唯一键的键值对。搜索、移除和插入的时间复杂度是 。底层通常是以红黑树实现的。 template<class Key,class T,class Compare std::less<Key>,class Allocator std::allocator<std::pair<const Key, T>&…

Gitlab CI/CD docker命令报错:/usr/bin/bash: line 136: docker:command not found

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

chrome版本117驱动下载路,解决版本不匹配问题

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

数字化商品管理:革新鞋服零售模式,引领智能商业新时代

随着科技的快速发展&#xff0c;数字化浪潮席卷各行各业&#xff0c;鞋服零售企业亦不例外。在这个新时代&#xff0c;数字化商品管理不仅成为鞋服零售企业革新的关键&#xff0c;更是其引领智能商业浪潮的重要引擎。本文将围绕数字化商品管理如何深刻影响鞋服零售模式&#xf…

Java 21 新特性的扫盲级别初体验

一、前言 JDK 21 于 2023 年 9 月发布&#xff0c;作为目前讨论热度最高的JDK&#xff0c;虽然大家都开玩笑说你发任你发&#xff0c;我用Java8&#xff0c;但是作为一个Javaer&#xff0c;对JDK21的新特性还是要有所了解的。 以下是 JDK 21 的新功能列表&#xff1a; 虚拟线…

Java关键字大全

概览 以上是我们学习Java从小白到入门能够接触到的关键字。 下面整理一些我们刚开始学习Java会经常用到的关键字的用法概述&#xff1a; 一、本数据类型&#xff08;4类8种&#xff09; 类型种类&#xff1a; 四类八种整型byte,short,int,long 浮点型float,double字符型cha…

GA-kmedoid 遗传算法优化K-medoids聚类

遗传算法优化K-medoids聚类是一种结合了遗传算法和K-medoids聚类算法的优化方法。遗传算法是一种基于自然选择和遗传机制的随机优化算法&#xff0c;它通过模拟生物进化过程中的遗传、交叉、变异等操作来寻找问题的最优解。而K-medoids聚类算法是一种基于划分的聚类方法&#x…

Python:常见的运算符

一、算术运算符 算术在数学中可以直接运用的一些运算规则&#xff1a; ------- 加法运算 - ------- 减法运算 * ------- 乘法运算 / ------- 除法运算 强数据类型语言中/表示的整除运算 // ------ 整除 % ------ 取余运算 ** ------ 幂次方运算 >>> a 10 >>&…

【数据结构】13:表达式转换(中缀表达式转成后缀表达式)

思想&#xff1a; 从头到尾依次读取中缀表达式里的每个对象&#xff0c;对不同对象按照不同的情况处理。 如果遇到空格&#xff0c;跳过如果遇到运算数字&#xff0c;直接输出如果遇到左括号&#xff0c;压栈如果遇到右括号&#xff0c;表示括号里的中缀表达式已经扫描完毕&a…

业务流程图与功能流程图到底有什么区别?

先介绍一下业务流程图&#xff1a; 一、业务流程图 业务流程图(Transaction Flow Diagram&#xff0c;TFD)是一种描述管理系统内各单位、人员之间的业务关系、作业顺序和管理信息流向的图表。它用一些规定的符号及连线表示某个具体业务的处理过程&#xff0c;帮助分析人员找出…