0%

VM 虚拟机_部署篇


Linux 系统安装

声明

部署本地win10的VMos虚拟机的CentOS7 服务器

后续安装都是在VMos虚拟机的CentOS7 服务器里进行的安装!!!

VMOS部署CentOS部分,网络资源较多,可参考网络

在 局域网络访问CentOS主机的网络配置,可参考网络,注意(大多网络配置都是将虚拟机到部署到NET上,实际部署到物理地址会更方面局域网的其他主机的访问。)


ssh链接常用命令:

ssh root@192.168.0.133


Linux 常用命令

将一个文件夹下的所有内容复制到另一个文件夹下

1
2
3
cp -r /home/packageA/* /home/cp/packageB/`

`cp -r /home/packageA/. /home/cp/packageB/

vim 多删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
全选(高亮显示):按esc后,然后ggvG或者ggVG

全部复制:按esc后,然后ggyG

全部删除:按esc后,然后dG

解析:

gg:是让光标移到首行,在vim才有效,vi中无效

v : 是进入Visual(可视)模式

G :光标移到最后一行

选中内容以后就可以其他的操作了,比如:
d 删除选中内容
y 复制选中内容到0号寄存器

创建文件夹子

1
mkdir -p forward  #可创建孩子目录

删除一个文件夹及其下面的所有文件

1
rm -rf /home/packageA
  • -r表示向下递归,不管有多少级目录,一并删除
  • -f表示直接强行删除,不作任何提示的意思

rm[选项] 文件或目录

选项:

-f:强制删除(force),和-i选项相反,使用-f,系统将不再询问,而是直接删除目标文件或目录。

-i:和-f正好相反,在删除文件或目录之前,系统会给出提示信息,使用-i可以有效防止不小心删除有用的文件或目录。

-r:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件。


安装CentOs7 虚拟机

VMware配置CentOS操作系统
1.VMware创建虚拟机
2.虚拟机安装CentOS系统
3.常见问题(含7和8常见问题)
4.VMware安装+Linux镜像下载+Linux系统安装全教程
1.VMware创建虚拟机
安装前说明:
对于之前下载好ios文件,尽量应该为他们放在一个专门的文件夹(例如:Linux-os),方便以后操作。

注意需要的软件安装源地址

1
http://mirrors.aliyun.com/centos/7/os/x86_64

image-20231024142751853

image-20231024142854241


双系统安装教程

Windows+Ubuntu20.04

少一点包容

由于需要在Linux下写代码,之前虚拟机安装过centos,但运行速度不理想,使用颇为受限,故安装双系统,这篇教程没有繁琐赘述,重要之处以及我所遇到的一些BUG都会详细说明。

  1. 为什么选择Ubuntu20.04

之前使用centos,但是centos8.x已经不再维护,综合其他一些原因选择Ubuntu,而且这个发行版本会维护5年(具体到哪一年忘记了),很多需要用到的软件也会一直支持。

  1. 我的电脑配置
  • 惠普战99 工作站
  • Windows10 家庭版 64
  • 16GRAM
  • 固态硬盘256,2T机械
  1. 安装方式

上面说到了,我的固态硬盘其实所剩无几,于是选择安装在机械硬盘(需要几百兆SSD容量),我压缩了500G的机械硬盘空间来给·Ubuntu,有条件的全部在分在固态硬盘就行。

另外重要两点

  • Ubuntu的/SWAP(虚拟内存)分区最好在固态硬盘这样读写速度会快一点(建议),具体大小根据RAM决定,后面会说明。
  • Ubuntu的/boot分区要分在Windows系统盘,这样才能Ubuntu启动下读取到Windows,在开机的时候可以选择加载哪个系统。

一、制作启动硬盘

  1. 下载Ubuntu20.04 ISO

官网入口下载LTS版本,我是直接下载的,搭配迅雷下载器还是很快的几分钟吧,如果速度很慢可以从华为或者清华大学镜像网站下载。

2.下载 UltraISO并制作启动U盘

UltraISO官网入口点免费下载试用,安装好后打开点击免费试用。

准备一个4G以上大小的U盘,制作过程中会格式化U盘,记得备份文件

选择好下载的UbuntuISO文件打开,点击【启动】→【写入硬盘映像】如图:

img

写入方式选择【USB-HDD+】

img

点击【写入】会弹出格式化U盘提示点击确定等待写入完成即可。

二、为Ubuntu分配磁盘空间

我们需要在固态硬盘(也就是系统盘)分出300M-500M的空间用于Ubuntu的/boot分区来作为启动引导文件(否则无法启动Ubuntu,具体原因百度),另外如果固态硬盘充足可以预留处/SWAP分区的空间。

swap,电脑内存8G大小就分配内存两倍的空间,8G以上跟内存一样大或者稍大1、2个G,交换空间,虚拟内存,这个建议分固态硬盘的区,不然会影响运行速度,机械硬盘也是可以用的.

右键点击【此电脑】,选择【管理】→【磁盘管理】,选择想压缩的盘右键单击可以看到压缩卷,点进去就能看到可压缩大小,单位是MB,我在机械硬盘分了500G大小,固态硬盘分了20G大小。

img

img

这是我压缩好后的样子:

img

由于电脑存储文件并非连续的,比如前面20G使用了,之间空了10G,后面的又占用了,那么这10G也就无法压缩。所以会出现可压缩空间远远小于剩余空间

解决方法参考:

进行磁盘分区时,“可用压缩空间”远小于真实的空间大小时的设置方法

Windows系统压缩卷时可压缩空间远小于实际剩余空间解决方法

三、安装Ubuntu

  1. 查看电脑BIOS模式

WIN+R输入msinfo32,回车确认

img

BIOS模式,传统代表MBR,另外就是UEFI,Ubuntu是UFFI模式

  1. BiOS安装准备

插入我们制作好的启动硬盘,开机按F10进入BiOS模式(不同的电脑进入方式可能不同,另外建议把英文改为中文,方法自行百度)

不会操作先看说明,我的是按F1,选择【系统设置】→【启动选项】

img

将【U盘/USB硬盘】更改为首选项,我的电脑是按F5/F6移动,F10保存。

保存退出后,电脑会自动重启进入Ubuntu的安装。

  1. 开始安装

①. 将语言改为中文或者英文,点击安装Ubuntu

img

②. 键盘布局选择【Chinese】,后面的连接网络我就跳过了,如果要选择【正常安装】要联网。

img

③. 由于我准备的硬盘大小充足,所以我选择【正常安装】,也可以选择【最小安装】不影响使用。其他的在图中。

img

④. 安装类型选择其他选择其他选项。

img

⑤. 创建分区,这是最重要的一步,我的分区如下:

- 注意:先分逻辑区,再分主分区

  • 1./swap交换分区(虚拟内存),逻辑分区,我分了16GB(8G及以下RAM选择两倍大小,以上跟RAM大小一样就行)
  • 2./boot分区 ,逻辑分区,默认ext4。 我分了将近300M,放置Ubuntu的启动引导文件,
  • 3./ 根分区(root分区),逻辑分区,我选择100G就可以,默认ext4,
  • 4./home分区,主分区,默认ext4,我选择400G,用户的所有文件都在这里。

说明:交换分区和/boot分区容量我都是在c盘压缩的,/和/home分区总共500G是在机械硬盘分的,另外根据自己的实际情况合理分配就行了,按照我的比例。

不清楚Linux分区的自行百度或者查看这篇文章:Linux下硬盘分区:根分区(/)交换分区(/swap)和/boot分区

分区按照我上面的说明来就行,我就不一一展示了,位置选择压缩好的空闲分区(或者用分区助手创建的分区,看大小和使用量就知道,创建的分区不是空闲分区,不能点加号,更改为可用就行),点左下角加号创建。

img

安装启动引导器的设备选择/boot分区那个路径,然后点击【现在安装】

img

⑥. 开始安装,我只用了20分钟不到就安装好了,没有几个小时,一次成功。

img

  1. 更改BIOS启动选项

安装好Ubuntu之后,拔下U盘(不拔等会开机还会进入Ubuntu安装),右上角关机,彻底关机后开机F10进入BIOS,跟之前的步骤一样,选择【系统设置】→【启动选项】,将【操作系统的启动管理员】上移

img

按ENTER将Ubuntu启动移到第一位,保存退出,开机进入启动界面就可以看到选项了,第一位是Ubuntu,第三个是Windows.

img

img

四. 安装完成

至此Ubuntu安装全部完成,接下来就可以愉快的使用Linux了,遇到不会的建议先查看官方文档。如果教程有什么不足之处欢迎指正评论。学无止境,希望这篇文章对你有所帮助!

编辑于 2021-04-11 19:50


直接复制虚拟机出现网络问题

http://phpzyw.com/bc853B2wHB1lWCwQ.html

首先我的虚拟机是复制出来的,选择我已经移到,但是结果会出现了以下情况,导致了我无法ping 通,先看下提示:

img

使用:ipconfig –all 命令查寻,果然再现有打开的虚拟机中,存在两个mac地址相同的虚拟机,所以就有思路了,修改mac地址。

尝试1:直接利用虚拟机自带的修改mac地址

选择对应的虚拟机,直接在虚拟机设置中进行修改,修改步骤如下

img

不知道是不是虚拟机没关闭的原因导致的修改无效,所以我采用了第二种方法,简单粗暴点。

尝试2:修改网卡的mac地址

选中网卡后右击,在右击菜单中点击属性,在本地连接属性对话框中,点击“配置”按钮

img

在打开的网卡属性对话框中,点击高级选项卡;找到本地管理的地址;默认选择不存在,需要设定实际值,点击上一个圆圈选项后,输入一个12位的16进制数(我这里是已经修改过的,所以填了数字)

img

然后再看,网络就好了

当然还有第三种方法,修改注册表,不过我觉得注册表修改有点麻烦,需要先找到对应的网卡,步骤如下:

1、在Cortana搜索栏输入regedit,按回车键进入注册表编辑器

2、定位到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E972-E325-11CE-BFC1-08002bE10318}

3、每个00XX的代号都代表一个网卡(要想分辨出你想要的网卡型号,得在点击编号后,在右侧的DriverDesc值中确定型号,如下图)

img

4、确定好网卡后,就在这个网卡的项目中新建一个字符串值,命名为NetworkAddress,内容是新的MAC地址,如下图

img

img

5、点击“确定”后修改完毕,此时需要重启连接进行验证。可以在相应的“网络连接”中单击右键,选择“禁用”,然后再点击“启用”即可

安装SSH

安装

Step 1: 检查是否已安装OpenSSH

在安装OpenSSH之前,需要检查系统是否已经安装了OpenSSH。可以通过以下命令来检查:

```

rpm -qa | grep openssh

如果输出结果中包含openssh,那么说明已经安装了OpenSSH,否则需要进行安装。

Step 2: 安装OpenSSH

CentOS 7使用yum软件包管理器来进行软件安装。可以通过以下命令来安装OpenSSH:

sudo yum install openssh-server

安装完成后,可以通过以下命令来启动OpenSSH:

sudo systemctl start sshd

Step 3: 配置OpenSSH

默认情况下,OpenSSH配置文件位于/etc/ssh/sshd_config。可以通过编辑该文件来配置OpenSSH。可以通过以下命令来编辑该文件:

sudo vi /etc/ssh/sshd_config

在该文件中,可以配置以下内容:

- 端口号:默认情况下,OpenSSH使用22端口。可以通过修改Port字段来更改端口号。

- 允许的用户:默认情况下,OpenSSH允许所有用户登录。可以通过修改AllowUsers字段来限制允许登录的用户。

- 允许的IP地址:可以通过修改AllowUsers字段来限制允许登录的IP地址。

修改完成后,需要重新启动OpenSSH才能使配置生效:

sudo systemctl restart sshd

Step 4: 连接到远程计算机

安装和配置OpenSSH后,可以使用ssh命令连接到远程计算机。可以使用以下命令连接到IP地址为192.168.1.100的远程计算机:

ssh username@192.168.1.100

username是远程计算机上的用户名。如果连接成功,将会提示输入密码。


使用

在CentOS中开启SSH服务需要以下步骤:

1.安装OpenSSH服务

打开终端,输入以下命令安装OpenSSH服务:

sudo yum install openssh-server

2.开启SSH服务

输入以下命令启动SSH服务并设置为开机启动:

sudo systemctl enable sshd

sudo systemctl start sshd

3.设置防火墙规则

输入以下命令来开启SSH端口:

sudo firewall-cmd –permanent –add-service=ssh

sudo firewall-cmd –reload

4.测试SSH服务

在另一台计算机或移动设备上安装SSH客户端,并使用CentOS机器的IP地址或域名进行连接。若连接成功则说明SSH服务已开启成功。

cnetOS7

安装mysql 5 ,参考链接

安装配置_MySQL安装配置(Linux) - 知乎 (zhihu.com)

删除mysql数据 :

1、查看当前mysql安装状况

1
rpm -qa | grep mysql``# 或``yum list install | grep mysql

2、查看mysql的服务是否启动

1
systemctl status mysqld

2.1、如果启动则关闭mysql服务

1
2
3
4
5
systemctl stop mysqld.service  # service可加可不加
# 停止MySQL的服务
[root@chenstudy ~]\# systemctl stop mysqld
# 再次查看MySQL的服务状态
[root@chenstudy ~]\# systemctl status mysqld

3、 卸载上述命令查询出的已安装程序

1
2
3
4
5
6
yum remove mysql-community-libs-8.0.30-1.el7.x86_64
rpm -qa | grep mysql
yum remove mysql-community-client-plugins-8.0.30-1.el7.x86_64
rpm -qa | grep mysql
yum remove mysql-community-server-8.0.30-1.el7.x86_64
rpm -qa | grep mysql

4、删除mysql相关文件

  • 查找相关文件
1
find / -name mysql
  • 删除上述命令查找出来的相关文件
1
2
3
4
5
6
7
8
9
10
 /usr/lib64/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /etc/selinux/targeted/active/modules/100/mysql



rm -rf /etc/selinux/targeted/active/modules/100/mysql
rm -rf /usr/share/mysql
rm -rf /usr/lib64/mysql

5、删除my.cnf

1
rm -rf /etc/my.cnf

安装mysql 5.7:

使用wget命令下载

wget命令下载到指定目录:wget -P [目录] [下载链接]

1
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz

安装

(参考链接 :[Centos系统安装mysql-5.7.22(tar.gz安装包)_centos.tar.gz 下载-CSDN博客](https://blog.csdn.net/dc282614966/article/details/81098074#:~:text=1.将下载好的安装到解压到%2Fusr%2Flocal目录下 tar -zxvf mysql- 5.7.22 -linux-glibc 2.12 -x,-x 86 _ 64 mysql 4.为centos添加mysql用户组和mysql用户 (-s %2Fbin%2Ffalse参数指定mysql用户仅拥有所有权,而没有登录权限)) )与(安装配置_MySQL安装配置(Linux) - 知乎 (zhihu.com))

1. 使用wget命令下载

wget命令下载到指定目录:wget -P [目录] [下载链接]

1
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz

2. 压缩包解压

使用tar命令解压到指定目录:tar -zxvf [压缩包] -C [目录]

1
tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz -C /usr/local

3. 创建数据库目录

进入MySQL目录,创建数据库目录,注意这是存放数据的目录

1
2
3
4
cd /usr/local/
ln -s mysql-5.7.36-linux-glibc2.12-x86_64 mysql
cd ./mysql
mkdir data

给数据库目录赋予权限

1
chmod -R 777 /usr/local/mysql/data

4. 创建用户、组

1
2
groupadd mysql
useradd -g mysql mysql

5. 修改MySQL配置文件

进入my.cnf配置文件,如果没有这个文件,可以直接创建

1
vim /etc/my.cnf

点击i进入编辑模式,粘贴下面内容

1
2
3
4
5
6
7
8
9
10
11
12
13
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log-error=/usr/local/mysql/data/mysql.err
pid-file=/usr/local/mysql/data/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

6. 初始化MySQL

进入MySQL bin 目录下

1
2
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/

出现如下报错

image-20240112160755858

解决方案

1
2
3
4
5
6

# 查询是否安装 libaio
[root@iZgw0h7bkppxogfh5fxtufZ usr]# rpm -qa|grep libaio
[root@iZgw0h7bkppxogfh5fxtufZ usr]#
# 安装 libaio
[root@iZgw0h7bkppxogfh5fxtufZ usr]# yum install -y libaio

image-20240112161110063

重新初始化 mysql 就可以了

image-20240112161233488

7. 查看MySQL密码

输入命令

1
cat /usr/local/mysql/data/mysql.err

这时候在最底部会看到root用户的默认密码,例如下面的ABCD@#$%1234

1
[Note] A temporarypassword is generated for root@localhost: ABCD@#$%1234

8. 添加软连接

备注:正常情况下需要到MySQL的bin目录和support-files目录下执行命令,为了避免麻烦才推荐添加软连接。

1
2
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

添加成功后,在任意位置输入启动命令

1
2
3
4
# 启动:
service mysql start
# 重启:
service mysql restart

9. 登录,修改信息

使用root账号进行登录,密码是步骤7的数据

1
2
mysql -uroot -p
ABCD@#$%1234

修改密码

1
2
set password=password('root@1234');
flush privileges;

修改访问权限

1
2
3
use mysql;
update user set Host='%' where User='root';
flush privileges;

关闭防火墙

1:查看防火状态

systemctl status firewalld

(已经被关闭了)

2:暂时关闭防火墙

systemctl stop firewalld

3:重启防火墙

systemctl enable firewalld

然后reboot 重启虚拟机就OK了


安装 redis 数据库

安装

redis 的安装极为简单,使用 CentOS 7 自带的 yum 安装即可

1
yum install redis

启动等操作

1
2
3
4
5
6
7
8
9
10
11
# 启动
systemctl start redis

# 查看状态
systemctl status redis

# 停止
systemctl stop redis

# 重启
systemctl restart redis

查看版本号

1
2
3
4
5
6
redis-server -v
redis-server --version

输出
Redis server v=3.2.12 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64
build=7897e7d0e13773f

验证安装

安装 redis,都会附带安装 redis-cli,这是 Redis 的客户端工具

我们可以使用它,验证 redis 是否正常运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 进入客户端
redis-cli

# 成功连接并且进入客户端
127.0.0.1:6379>

# 添加数据
127.0.0.1:6379> set test-key test-value
OK

# 查询数据
127.0.0.1:6379> get test-key
"test-value"

# 删除数据
127.0.0.1:6379> del test-key
(integer) 1

# 退出客户端
127.0.0.1:6379> exit

能正常连接,且操作数据,表示安装成功。

开启远程连接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 进入并编辑redsi.conf文件
vim /etc/redis.conf

# 找到bind 127.0.0.1 将其注释(#)或修改为 bind 0.0.0.0
bind 0.0.0.0

# 为了安全,我们需要开启密码保护
# 找到 # requirepass xxx ,默认是被注释的,将注释符号去掉,并添加自己的密码
# 找到它要往下拉很久,我们也可以直接在 bind 0.0.0.0 下面添加一个 requirepass xxx
requirepass 123456

# 开启守护线程
daemonize yes

# 按 esc 键,并输入 :wq 保存

# 重启,让配置生效
systemctl restart redis

开放端口

腾讯云和阿里云的服务器,请到控制台 - 服务器 - 安全组 - 开放6379端口,否则远端无法登录。

安装gitlab

参考链接(【精选】centos7安装部署gitlab_centos7 安装gitlab-CSDN博客 ) 与(CentOs7 安装Gitlab_centos7安装gitlab-CSDN博客
1、安装依赖

1
2
yum install curl openssh-server openssh-clients postfix policycoreutils-python

2、启动ssh

1
2
systemctl enable sshd
systemctl start sshd

3、添加http服务到firewalld,pemmanent表示永久生效,若不加–permanent系统下次启动后就会失效

1
2
3
systemctl start firewalld
firewall-cmd --permanent --add-service=http
systemctl reload firewalld

4、启动postfix

1
2
systemctl enable postfix
systemctl start postfix

4.1出现错误

image-20231018140146231

解决方案(Centos7.x启动postfix服务失败,提示 Job for postfix.service failed because the control process exited with-CSDN博客

5、下载安装gitlab

1.添加gitlab镜像

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

2.安装gitlab 安装命令:rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

3.修改gitlab配置文件指定服务器ip和自定义端口:

vim /etc/gitlab/gitlab.rb

image-20231018151728126

4.重置并启动GitLab

执行:

1
2
gitlab-ctl reconfigure  #配置GitLab(配置完自动启动,默认账号root)

配置成功->

image-20231018152257252

1
gitlab-ctl restart

运行成功 ->

image-20231018152340233

6.访问 GitLab页面

如果没有域名,直接输入服务器ip和指定端口进行访问

初始账户: root 密码:5iveL!fe

第一次登录修改密码(后边会讲)

关闭防火墙;登录地址 http:192.168.0.133:9090/users/sign_in

image-20231018152820669


将gitlab的密码改为了 admin_gitlab


端口命令

CentOS 7 开放防火墙端口 命令
最近CentOS7的防火墙和6不一样了, 发现以前CentOS 6 系列中的 iptables 相关命令不能用了,查了下,发现Centos 7使用firewalld代替了原来的iptables。

使用方法如下:

关闭防火墙

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

开启端口

firewall-cmd –zone=public –add-port=80/tcp –permanent
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

重启防火墙
firewall-cmd –reload

常用命令介绍

firewall-cmd –state ##查看防火墙状态,是否是running
firewall-cmd –reload ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd –get-zones ##列出支持的zone
firewall-cmd –get-services ##列出支持的服务,在列表中的服务是放行的
firewall-cmd –query-service ftp ##查看ftp服务是否支持,返回yes或者no
firewall-cmd –add-service=ftp ##临时开放ftp服务
firewall-cmd –add-service=ftp –permanent ##永久开放ftp服务
firewall-cmd –remove-service=ftp –permanent ##永久移除ftp服务
firewall-cmd –add-port=80/tcp –permanent ##永久添加80端口
iptables -L -n ##查看规则,这个命令是和iptables的相同的
man firewall-cmd ##查看帮助

更多命令,使用 firewall-cmd –help 查看帮助文件

重新开启防火墙:Failed to start firewalld.service: Unit firewalld.service is masked 问题解决:

Failed to start firewalld.service: Unit firewalld.service is masked_七夜月光的博客-CSDN博客

CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下

1、直接关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

2、设置 iptables service
yum -y install iptables-services
如果要修改防火墙配置,如增加防火墙端口3306
vi /etc/sysconfig/iptables
增加规则
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT

保存退出后
systemctl restart iptables.service #重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
最后重启系统使设置生效即可。

关闭gitlab

后来查看了官方文档中的说明后, 使用如下命令:

systemctl stop gitlab-runsvdir

然后

ps -ef | grep gitlab

发现跟gitlab相关的进程都关闭了。

内存也释放了。

free -mh

开启gitlab

  1. 启动systemctl start gitlab-runsvdir.service

    若启动时候没反应,则进行第二步,查看系统服务

  2. systemctl -t target

    如果存在inactive dead的服务,则意味着这个服务出错了,进行第三步操作

  3. systemctl list-jobs

    列出所有正在运行的任务,如果存在某个任务是running,其他任务waiting, 则是该任务堵塞了其他服务,停止该任务即可

  4. systemctl stop xxx.service

    停止阻塞服务

5.再次启动systemctl start gitlab-runsvdir.service,则正常启动

6.gitlab-ctl start 启动gitlab成功

安装jdk


方法一:利用yum源来安装jdk(此方法不需要配置环境变量)

查看yum库中的java安装包 :yum -y list java*

安装需要的jdk版本的所有java程序:yum -y install java-1.8.0-openjdk*

方法二:用rpm安装jdk(可以使用man rpm命令查看rpm的帮助文档)

使用Xftp将下载好的jdk-8u152-linux-x64.rpm上传到CentOs上去

使用rpm命令安装: rpm -ivh jdk-8u152-linux-x64.rpm

(默认安装在/usr/java目录下,不用配置环境变量)

方法三:手动解压JDK的压缩包,然后设置环境变量

1、使用Xftp将下载好的jdk-8u152-linux-x64.tar.gz上传到CentOs上去

2、复制安装包到/usr/java目录中(目录可以自己选):cp jdk-8u152-linux-x64.tar.gz /usr/java

3、切换到/usr/java目录下:cd /usr/java

4、解压缩包:tar -zxvf jdk-8u152-linux-x64.tar.gz

5、配置环境变量

使用vim /etc/profile 编辑profile文件 输入: vim /etc/profile

向文件里面追加以下内容:

#set java environment

JAVA_HOME=/usr/java/jdk1.8.0_152

JRE_HOME=$JAVA_HOME/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH

注释:

JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径,此路径下包括lib,bin,jre等文件夹(tomcat,Eclipse的运行都需要依靠此变量)。

CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设:.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib。CLASSPATH变量值中的.表示当前目录

PATH使得系统可以在任何路径下识别java命令,设为:$JAVA_HOME/bin:$JRE_HOME/bin。

特别注意:环境变量值的结尾没有任何符号,不同值之间用:隔开(windows中用;)。

5、使配置文件生效:source /etc/profile

安装nginx

参考(部署前端项目)

https://blog.csdn.net/JYSCDNKB/article/details/129632162

CentOs7安装nginx
卸载nginx
1 先查看是否启动了 nginx 服务

1
ps -ef|grep nginx

出现这个则 nginx 没启动服务

出现这个则 nginx 启动了服务

2 如果 nginx 启动了服务,则需要先关闭 nginx 服务 【没启动就略过这一步】

1
kill 进程id

3 查看所有与 nginx 有关的文件夹

1
find / -name nginx

4 除与 nginx 有关的文件夹

1
rm -rf file /usr/local/nginx*

5 卸载Nginx相关的依赖

1
yum remove nginx

这样就卸载完成了

安装nginx
查看安装nginx所需要的环境

1
2
3
4
5
6
#查看 C++ 环境是否安装(查看版本号)
gcc -v
#查看 zlib 是否安装
cat /usr/lib64/pkgconfig/zlib.pc
#查看 pcre 是否安装(查版本号)
pcre-config --version

配置 nginx 安装所需的环境

1
2
3
4
5
6
7
8
9
10
11
12
#一次安装4个插件
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

#一次安装如果有问题,可以试一下分开安装(上面命令执行成功了就无需执行以下命令了)
#安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境
yum install gcc-c++
#pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库
yum install -y pcre pcre-devel
#zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装
yum install -y zlib zlib-devel
#nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库
yum install -y openssl openssl-devel

安装 nginx

安装 nginx

1 方法一:在官网直接下载.tar.gz安装包,然后通过远程工具拉取到 linux 里面【在 /usr/local 里面创建个nginx文件夹,拉进来。(也可以拉到其他地方)】
2 方法二:使用wget命令下载,确保系统已经安装了wget,如果没有安装,执行 yum install wget 安装。
这里使用方法二进行安装:

1 进入 usr/local 里面创建 nginx 文件夹,方便后期删除干净

1
2
3
4
5
6
#进入usr下的local目录
cd usr/local
#在local目录下创建 mysql 文件夹
mkdir nginx
#进入nginx目录
cd nginx

2 通过 wget 下载 nginx 安装包

1
wget https://nginx.org/download/nginx-1.21.6.tar.gz

3 解压 并进入解压后的目录

1
2
3
4
#解压
tar xvf nginx-1.21.6.tar.gz
#进入解压后的目录
cd nginx-1.21.6

4 配置(带有https模块)【需要进入解压后的目录】

1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

5 编译和安装【需要进入解压后的目录】

1
2
3
4
#编译
make
#安装
make install

6 启动、关闭 nginx 服务

1
2
3
4
5
6
7
8
9
10
11
###启动服务
#需要先进入sbin目录下
cd /usr/local/nginx/sbin
#启动nginx服务
./nginx

###关闭服务
#需要先进入sbin目录下
cd /usr/local/nginx/sbin
#关闭nginx服务
./nginx -s stop

到这里 nginx 就安装完成了

其他命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
####端口号操作
#查询开启的所有端口
firewall-cmd --list-port
#设置80端口开启
firewall-cmd --zone=public --add-port=80/tcp --permanent
#验证80端口是否开启成功 (单个端口查询)
firewall-cmd --zone=public --query-port=80/tcp
#设置80端口关闭
firewall-cmd --zone=public --remove-port=80/tcp --permanent

####防火墙操作
#检查防火墙是否开启
systemctl status firewalld
#开机自启防火墙
systemctl enable firewalld
#开机禁止自启防火墙
systemctl disable firewalld
#启动
systemctl start firewalld
#关闭
systemctl stop firewalld
#重启
firewall-cmd --reload

项目启动教程

1 部署 常用命令

通过ssh命令 在项目地址下传输文件的命令

在对应的文件下的地址栏目输入cmd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 将后端jar包传到服务器输入如下代码
scp -r forward-admin.jar root@192.168.0.133:/usr/local/project/forward/server/

scp -r dts-admin-api.jar root@192.168.0.112:/usr/local/project/shopping/admin-server/
nohup java -jar /usr/local/project/shopping/admin-server/dts-admin-api.jar &

scp -r dts-merchant-api.jar root@192.168.0.112:/usr/local/project/shopping/merchant-server/
nohup java -jar /usr/local/project/shopping/merchant-server/dts-merchant-api.jar &

scp -r dts-wx-api.jar root@192.168.0.112:/usr/local/project/shopping/wx-server/
nohup java -jar /usr/local/project/shopping/wx-server/dts-wx-api.jar &

#将前端的dist输入如下的代码
scp -r dist root@192.168.0.133:/usr/local/project/forward/web/

2 后端部署

2.1 首先将springBoot的项目进行打包 -> 参考网络教程

2.2 将jar包的License文件进行替换操作

image-20231018200412155

2.3 找到jar包文件夹

1
2
3
# 将打包的 forward-admin.jar 远程传送到linux服务器的”/usr/local/project/forward/server/“  目录下

scp -r forward-admin.jar root@192.168.0.112:/usr/local/project/forward/server/

image-20231018200942055

2.4 在服务器启动jar包

2.4.1 进入到jar包保存的目录

1
2
#进入到jar包目录
cd /usr/local/project/forward/server/

2.4.2 启动java的jar程序

(1)直接启动,控制台退出则关掉应用

java -jar forward-admin.jar

(2)后台启动,控制台退出不会关掉应用

1
2
3
4
#打包命令
nohup java -jar forward-admin.jar &
#本服务器的打包命令
nohup java -jar /usr/local/project/forward/server/forward-admin.jar &

(3)后台启动并且输出日志,控制台退出不会关掉应用

nohup java -jar forward-admin.jar >> ./register.log 2>&1 &

(3)后台启动(加内存)并且输出日志,控制台退出不会关掉应用

nohup java -jar -Xms1024m -Xmx2048m forward-admin.jar>> ./register.log 2>&1 &

2.4.3 关闭java程序

(1)查询java应用程序

1
ps -ef|grep java

(2)强制杀掉进程

1
kill -9 xxx

3 前端部署

3.1 将前端的vue项目进行打包 ->参考网路

打包命令: npm run build:test

image-20231019211338924

3.2 将dist文件上传到服务器

1
2
3
4
5
6
7
# 将打包的 dist 远程传送到linux服务器的”/usr/local/project/forward/web/“  目录下

scp -r dist root@192.168.0.112:/usr/local/project/forward/web/


scp -r dist root@192.168.0.112:/usr/local/project/shopping/admin-web/

image-20231018203917602

3.3 设置nginx的配置 的Server下 插入如下代码

3.3.1 server的配置代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
server {
listen 8082;
server_name localhost;

location / {
root /usr/local/project/forward/web/dist;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}

location /test-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8081/;
}

location /profile/ {
proxy_pass http://localhost:808/profile/;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

将上面的代码保存到 -> nginx下的cnfig下的nginx.conf,保存到server同级下,设置如下图所示,

image-20231018210959644

3.3.2 重启nginx

重启一下nginx -s reload 即可


图片地址问题:

图片问题一般需要再后端的 ( 对图片等数据订单一个配置 )修改后打包。

image-20231103160112329

ssh扩展:

从服务器下载东西到本地windos

1
scp -r -P 9000  root@192.168.0.119:~/storage/pictures/1.jpg   D:/

image-20231107202542223

在本地windos上传东西到服务器

1
2
3
scp -r dist root@192.168.0.133:/usr/local/project/forward/web/

# dist 是windos的文件夹子 ,-r 递归上传 ,/usr/local/project/forward/web/ 服务器的地址

常见问题

1、前端遇到问题如下:

image-20231020090233015

解决方案:

方法一:指定配置目录

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

方法二:在logs下新建一个nginx.pid文件

1.进入nginx的logs目录查看文件,发现没有nginx.pid文件

image-20231020090613256

2.创建一个nginx.pid文件

image-20231020090629683

3.编辑nginx.pid文件,文件内容为1473,保存退出

image-20231020090642496

4.在sbin目录下启动nginx并测试关闭

image-20231020090657062

成功解决问题

image-20231020092029001

需要打包为test文件, npm run build:test

打包其他的环境,需要改变Server配置。

3.4在地址栏进行地址访问 比如当前项目

后端 192.168.0.133:8081

前端 192.168.0.133:8082


遇到问题 nginx: [alert] kill(17451, 1) failed (3: No such process)

image-20231024170836183

解决方案

进入sbin文件执行命令 ./nginx -c /usr/local/nginx/conf/nginx.conf

然后再次执行命令 ./nginx -s reload


请求不到后台的接口

image-20231229125307332


2、后端遇到:

常见问题:

org.springframework.context.ApplicationContextException: Failed to start bean ‘webServerStartStop’; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server

image-20231019214926913

重启服务器


常用操作:

1、固定 IP地址

访问配置文件:

vim /etc/sysconfig/network-scripts/ifcfg-ens33

进行配置

1
2
3
4
5
BOOTPROTO="static"

IPADDR=192.168.0.112
GATEWAY=192.168.0.1
DNS1=114.114.114.114

image-20231027131201590

进行重启服务器

1
reboot

image-20231028165617795