Linux服务搭建(传统基础架构)

avatar
作者
猴君
阅读量:1

介绍

本文将搭建如上三台服务器,跟着下面一步步操作,完全可以复现出来,对初学者友好。


前期准备

学习IT必备的软件

软件:

1、VMware Workstation官方下载

2、Xshell+Xftp官方下载

镜像这里使用红帽和Oracle的

镜像文件:

1、rhel-baseos-9.1-x86_64-dvd.iso

2、rhel-baseos-9.1-x86_64-boot.iso

3、OracleLinux-R9-U1-x86_64-boot.iso

下载Redhat镜像

由于商业盈利,要注册账号(后面的操作不会涉及到收费)

登录Redhat开发者网站,并注册账号;最好不要选择学生身份,不然信息填写方面有些麻烦。

然后在红帽发行版下载页面中,下载指定镜像文件:

国外网站,下载确实有点慢...

下载Oracle镜像

此Oracle非彼Oracle,它也有自己的liunx发行版

登录Oracle发行版下载页面中,下载指定镜像文件:

虚拟网卡设置

如果有网络方面的基础并且自己的虚拟网卡配置已经配置好了,那就可以自己定义IP。

进入虚拟网络编辑器

更改设置

 选择VMnet8,分别设置NAT和DHCP

这里虚拟出一个网关;注意IP不要设置成VMnet虚拟网卡的IP了

 

 地址分配池,尽量与规划的服务器IP错开,避免产生冲突

 此时,如果你的VMware上有现成的虚拟机,可以设置成nat模式,看看能否正确分配IP


一、Web服务器

1、创建虚拟机

这里使用自定义(高级)的方式创建,因为可以精准控制配置信息,建议初学者从这种创建方式开始学习

采用缺省(默认)的兼容性即可 

选择下载好的红帽的boot镜像文件

版本,如果你使用的是最新的软件就选择对应的版本,不然就择高选取

该虚拟机就是模拟的一个服务器,所以标识了一下服务器的型号,这里以R4900G6为例

CPU配置为1颗 * 1核足够,可适当增加

 内存1G足够,虚拟机的运行会立即占用物理机的内存,所以谨慎增加

 使用NAT模式,通俗地说这种模式可以使虚拟机与物理机互联、也可以使虚拟机与Internet互联

I/O控制类型采用缺省配置即可

磁盘类型采用缺省配置即可

 创建新的虚拟磁盘

 分配100G的磁盘空间,并选择将虚拟机磁盘存储为单个文件,不要立即分配

指定磁盘文件也采用缺省配置

 点进自定义硬件,去掉不需要的硬件,如USB控制器、声卡、打印机(后面需要的话还能添加)

开启此虚拟机

选择第一个

 实际生产环境中,一般是采用英语的方式;这里为了方便学习,先就使用简体中文

接下来出现了安装信息摘要,这里简要引导一下

本地化        (由于上一步的语言选择已经缺省配置了)

        键盘:汉语

        语言:简体中文

        时间和日期:亚洲/上海(如果不是这个时区,一定要手动修改)

软件 

        连接到红帽:这里需要用到事先在Redhat开发者网站注册的账户

                         

                        

                这里如果出错,一是检查用户名与密码;二是检查VMnet8配置是否正确

                        

        

        安装源:后面会使用本地软件源的方式,这里不管

                        (如果想使用在线源的方式下载软件,需要订阅)

        软件选择:“最小安装”(提高安全性和稳定性),更贴切实际的生产要求                                                 

系统

        安装目的地:使用为虚拟机分配的那100G,直接进入在点击左上角的“完成”即可

                        

        

        KDUMP:缺省配置

        网络和主机名:设置域名,并手动修改IP

                        

                         

                            

         安全配置文件:缺省配置

用户设置

        root密码:自定义

                        

        创建用户:用户名和密码自定义。实际生产环境中不会给你root账号,所以后面的操作                            就模拟普通用户的操作,这里勾选“将此用户设为管理员”

                        

所有摘要完成后,所有感叹号提示消失,自然就能点击开始安装了

 安装完成后重启

(重启后,建议此时为虚拟机拍摄一个快照,以防后面操作出错不至于重装系统)

2、初始配置

登录进去使用"ip address"命令可以查看到IP地址

使用Xshell软件连接服务器:先ping一下地址,再使用ssh命令进行登录,"ssh 用户名@IP地址"

  • ssh ctod@10.33.90.10

sudo免密:

在命令前加sudo并输入密码可以执行root权限的命令,但输入过一次密码后过一会儿又得再次输入,修改sudoers文件即可解决

  • sudo vi /etc/sudoers
    注释第107行,并删除第110行的注释(wq!强制写入并退出)

 文件编辑的三种模式:

设置DNF本地软件源:

在自己用户目录下,创建一个新目录

  • mkdir /home/ctod/dnf
  • ls /home/ctod
    查看指定目录,看看dnf文件是否成功创建

在物理机打开之前下载好的rhel-baseos-9.1-x86_64-boot.iso镜像文件,电脑会出现一个驱动器,点击去可以看到AppStream和BaseOS,这两个就是部署本地软件源的需要用到的。

这时,你就应该明白为什么dvd要比boot大那么多了

 使用Xftp将这两个文件上传到创建的目录里

 上传完成后,编辑redhat.repo文件

  • sudo vi /etc/yum.repos.d/redhat.repo 

shift+g定位到文件末尾,添加如下内容:

 [BaseOS] name=BaseOS baseurl=file:///home/ctod/dnf/BaseOS enabled=1 gpgcheck=0  [AppStream] name=AppStream baseurl=file:///home/ctod/dnf/AppStream enabled=1 gpgcheck=0 

编辑完成后,安装一个vim看看能否成功

  • sudo dnf install vim -y
    (-y表示自动确认)

如果报错了,着重检查一下编辑redhat.repo文件是否有误

3、服务部署

  • sudo dnf install httpd (-y)
    httpd是apache超文本传输协议服务器的主程序,是一个独立运行的后台进程,他会建立一个处理请求的子进程或线层的池
  • sudo systemctl enable --now httpd
    开启并运行httpd服务 

  • systemctl status httpd
    查看服务的状态

  • sudo firewall-cmd --permanent --add-service=http (或 sudo firewali-cmd --permnanent --add-port=80/tcp)
    使防火墙放行http服务 或 80端口

  • sudo firewall-cmd --reload
    重新加载防火墙

  • sudo firewall-cmd --list-services (或 sudo firewall-cmd --list-ports)
    查看放行的服务

  • sudo touch /var/www/html/index.html
    创建web主页文件
  • sudo vim /var/www/html/index.html
    编辑一下主页文件,然后使用物理机的浏览器访问web服务

此时web服务已经部署完成了。我们知道http的默认端口是80,接下来拓展一下怎么更改缺省端口和资源目录

  • sudo setenforce 0
    临时关闭SELinx(Linux操作系统的一种安全机制)

sudo vim /etc/httpd/conf/httpd.conf
将监听修改为自己定义的端口号,我这里修改为60080

  • apachectl configtest
    检查配置

  • sudo systemctl restart httpd
    重启httpd服务
  • sudo firewall-cmd --permanent --add-port=60080/tcp
    放行tcp协议的60080端口
  • sudo firewall-cmd --reload
    重新启动防火墙,此时可以使用新的端口访问网站了

  • cat -n /etc/selinux/config
    查看SELinux配置文件,“sudo setenforce 0”命令只能临时关闭这种安全机制
  • sudo grubby --update-kernel ALL --args selinux=0
    禁用SELinux,实际生产环境也一般会禁用的
  • sudo reboot

服务器重启中...

再次登录服务器

  • getenforce
    查看是否开启了SELinux (disable表示已禁用) 

  • mkdir /home/ctod/html
    创建自定义的网站目录(缺省目录)
  • sudo vim /etc/httpd/conf/httpd.conf
    修改httpd主配置文件,更改web服务资源路径

  • apachectl configtest

  • sudo systemctl restart httpd
  • chmod +005 /home/ctod
    设置权限
  • systemctl status httpd

 此时再次访问web站点,由于没有主页文件,所以出现的是红帽测试页面


二、数据库服务器

1、创建虚拟机

镜像文件使用之前下载好的Oracle镜像文件

目前VMware Workstation Pro还不支持OL9,这里选OL8即可

每次创建虚拟机,都要将其安装在一个新的文件夹里,千万不要直接与之前的混合

CPU:1颗 * 1核

内存:1G

Disk:20G 单一磁盘,不立即分配

网卡:NAT模式

其他的采用缺省配置或参考web虚拟机的创建

注意:去掉不需要的硬件(安全性、稳定性)

可以看到Oracle的安装信息再要跟红帽的几乎一模一样,下面列出需要注意的步骤:

因为Oracle是开源、免费的,所以可以直接设置在线软件源,只要后面能联网就能下载软件啦

安装源:https://yum.oracle.com/repo/OracleLinux/OL9/baseos/latest/x86_64/

 依然是最小安装

 安装目的地同样地选择自动分区

 主机名请参考我的,这里我们先不修改IP,在后面使用命令图形化方式进行修改 

用户设置就参考之前的,然后就可以安装了

2、初始配置

先试试能不能安装vim软件(请确保网络畅通)

  • sudo dnf install vim -y 

sudo免密:

  • sudo vim /etc/sudoers

numtui工具的使用:

  • sudo nmtui

 选择第一个选项,然后直接编辑ens160网卡

 

 展示IPv4配置

 选择手动(Manual)配置方式

 

 分别添加并配置ip地址、网关,根据提示完成配置

 

 

  • sudo nmcli connection up ens160
    使ens160网卡配置立即生效

此时窗口没有反应,因为IP改变了,只需要要重新使用新的IP登录就可以了

其实使用命令或文件配置的方式配置是更加快捷的(实际当中一般建议使用命令的方式,因为具有更好的容错性),如域名的设置:

  • hostname
    查看域名
  • sudo hostnamectl set-hostname 主机名
    命令方式修改域名
  • vim /etc/hostname
    文件编辑方式修改域名

请确保一、二级域名是和web服务器域名的是一样的

3、服务部署

  • sudo dnf install mysql-server (-y)
    安装mysqld
  • sudo systemctl status mysqld
  • sudo systemctl enable --now mysqld
    启动mysqld服务

 需要重启

  • sudo reboot
  • sudo systemctl status mysqld
  • sudo firewall-cmd --permanent --add-service=mysql
    放行mysql服务
  • sudo firewall-cmd --reload
  • sudo firewall-cmd --list-services

  • sudo reboot
  • sudo mysql_secure_installation
    初始配置

密码至少8位

此时mysql基本框架已经部署好了

  • mysql -u root -p 进入mysql
    使用root账户登录mysql

不要把这个roo跟linux的root搞混了,一个是服务的root用户、另一个是操作系统的root用户

熟悉sql命令操作(有基础的话可以不用做):

show databases;                                             //显示数据库

use mysql;                                                     //进入名叫mysql的数据库

show tables;                                                 //显示所在数据库的数据表

select * from 表名;                                    //查看指定表的所有内容

create database book;                                       //创建名叫book的数据库

show databases;                                              //查看有没有

use book;                                                        //进入book数据库

show tables;                                                  //空的

create table os(name char(20),price int);    //创建一个叫os的表,并设定属性

describe os;                                               //查看字段属性

insert into os(name,price) values('Unix 设计艺术','120');        //添加记录

insert into os(name,price) values('Linux 内核分析,'80');        //添加记录

select * from os;                                                                   //查看表内容

select * from os where price > 100;                                       //条件查看

update os set price=118 where name='Unix 设计艺术';    //更新表

select * from os;

exit;                                                                        //断开mysql服务连接(退出)

  • mysql -u root -p
     

创建普通用户:

  • show variables like 'validate_password%';
    查看密码设置等级

  • set global validate_password.policy=0;
    将密码设置等级配置为0(这样就可以创建低强度密码)

  • show variables like 'validate_password%';

 

  • create user 'ctod'@'%' identified by 'ctod1234';
    创建名为‘ctod’、密码为‘ctod1234’的普通用户,‘%’表示允许该用户远程登录mysql
  • grant all privileges on book.* to 'ctod'@'%';
    将book数据库所有操作权限给cotd用户,并能远程登录操作
  • exit

  • mysql -u ctod -p
    用ctod进入mysql,试试操作book数据库
    • show databases;
    • use book;
    • show tables;
    • select * from os;
    • ...

这里推荐四款数据库可视化操作工具:

MySQL可视化

DBeaver Download | DBeaver Community

Navicat下载 Navicat | 下载 Navicat Premium 14 天免费 Windows、macOS 和 Linux 的试用版

SQLyog下载 Download SQLyog - free - latest version

MySQL-Front下载 Herzlich Willkommen!


三、web服务动态升级

动态网页的“动”,简单地说是指人能够与web进行交互。交互过程中可能会产生数据需要存储,这就需要用到数据库,所以我们利用前面部署好的mysql服务器就可以将web服务器升级为动态的了。

进入web服务器(10.33.90.10)

  • sudo dnf install php php-mysqlnd -y
    安装php服务与php-mysqlnd插件(用于连接数据库) 
  • sudo systemctl restart httpd
    要启动动态网页服务就得重启一下httpd
  • cd /home/ctod/html
  • vim test.php

编写php测试脚本,写入如下内容:

<?php         phpinfo(); ?> 

使用浏览器访问:10.33.90.10:60080/test.php
此时加载出的是php系统信息就表示PHP没问题

进入DB服务器(10.33.90.11)
创建动态网页服务需要使用的后台数据库

  • mysql -u root -p
    • create database wordpress;
    • grant all privileges on wordpress.* to 'ctod'@'%';

进入web服务器(10.33.90.10)

  • rm -rf ~/html/*
    删除网页资源目录下的所有文件
    -r表示删除包括文件与目录;-f表示提前确定直接执行(强制删除)
    ~所登用户的目录,这里即表示删除ctod目录下html目录里的所有文件与目录   
  • sudo dnf install wget -y
    wget是用于下载文件的工具
  • wget https://cn.wordpress.org/wordpress-latest-zh_CN.zip
    WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MYSQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个(CMS)来使用。
  • sudo dnf install unzip
    unzip命令用于解压缩zip文件
  • unzip wordpress-latest-zh_CN.zip
  • mv wordpress/* ~/html
    将刚刚解压出来的所用文件都移至html文件目录下
  • cp ~/html/wp-config-sample.php ~/html/wp-config.php
    wp-config-sample.php只是配置文件模板,真的配置文件叫wp-config.php,所以得以模板文件复制一个配置文件
  • vim ~/html/wp-config.php

编辑如下内容:

设置并安装wordpress

 安装完成后,重新访问网页查看

 登录WordPress站点后台管理页面(10.33.90.10:60080/wp-admin)

 

此时还没有权限使用wordpress平台设置网页

  • sudo chown -R apache:apache /home/ctod/html
    把/home/ctod/html及其目录下得所有文件得所有者设为apache
    这样就可以了


四、DNS服务器

1、创建虚拟机

参考web服务器的步骤

注意这次使用dvd镜像

2、初始配置

sudo 免密

  • sudo vi /etc/sudoers

本地软件源设置

在安装操作系统的时候使用过一次rhel-baseos-9.1-x86_64-dvd.iso文件,它就相当于光盘。那么在linux操作系统中挂载它的话就可以直接使用里面的文件了。

  • mkdir /home/ctod/dnf
    创建存放RPM的文件目录
  • sudo mount /dev/sr0 /home/ctod/dnf
    将光盘文件挂载到dnf目录
  • ll dnf
    此时能看到光盘里的内容

  • df -Th
    查看挂载点

 永久挂载,不然下次重启系统又要手动挂载

  • sudo vi /etc/fstab

在末尾添加以下内容

/dev/sr0                /home/ctod/dnf          iso9660 default         0 0
  • sudo mount -a

同样的,又是编辑redhat.repo文件

  • sudo vi /etc/yum.repos.d/redhat.repo
 [BaseOS] name=BaseOS baseurl=file:///home/ctod/dnf/BaseOS enabled=1 gpgcheck=0  [AppStream] name=AppStream baseurl=file:///home/ctod/dnf/AppStream enabled=1 gpgcheck=0

安装vim看看能够成功

3、服务部署

  •  sudo dnf install bind -y
  • sudo vim /etc/named.conf
    编辑主配置文件

 

  • sudo vim /etc/named.rfc1912.zones
    编辑域配置文件

 末尾添加如下内容,建议复制文件上边内容的作为模板然后再修改标记内容

复制一个自己设定的域名文件

  • sudo ls -al /var/named/named.localhost
  • sudo cp -a /var/named/named.localhost /var/named/ctod3.cn.zone
    -a将文件元素也一对一复制,这里是必要的
  • sudo ls -al /var/named/
  • sudo vim /var/named/ctod3.cn.zone
    编辑数据配置文件

  • sudo systemctl start named

!如果有报错,一定要认真检查上面编辑的三个文件

  • sudo systemctl status named
  • sudo systemctl enable named
  • sudo firewall-cmd --permanent --add-port=53/tcp
  • sudo firewall-cmd --permanent --add-port=53/udp

dns协议要同时使用tcp与udp的53端口

  • sudo firewall-cmd --reload

在物理PC里设置vmnet8网卡的DNS服务器地址

 此时就可以使用域名代替IP访问个人站点了


当然,传统数据中心不仅仅是上面的那几种服务器,其中还包括存储、APP...,而且会在一台服务器上安装多个服务。现在更多的场景其实已经向着“云”发展了,以后虚拟化将越来越广泛。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!