0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】

文章目录

    • 1.概要
    • 2.整体架构流程
    • 3.技术细节
      • 3.1 准备一个终端工具。
      • 3.2 准备Debian12系统镜像ISO。
      • 3.3 ESXI主机安装Debian12,开启SSH配置。
      • 3.4 终端工具连接Debian12的SSH
      • 3.5 Debian12完成Nginx配置
      • 3.6 Debian12完成MySQL 配置
      • 3.7 Debian12完成PHP 配置
    • 小结
    • 花有重开日,人无再少年啊!

1.概要

LNMP 是一种使用 Linux、Nginx、MySQL 和 PHP 搭建的服务器环境,用于支持网站和应用程序的运行

其它内容传送门地址:

0x00 开局三层路由起内网【base:路由器+空闲物理主机(我是TP-LINK+台式机)】
0x01 在空闲物理主机上部署vSphere【base:空闲物理设备+ESXI 8.0+vCenter Server 】
0x02 在Debian12.0中部署BIND9实现主DNS服务【base:BIND9+ESXI+Debian12】
0x03 在Debian12.0中部署BIND9实现从DNS服务【base:BIND9+Debian12+vSphere】
0x04 在Debian12.0中部署NTP实现网络校时服务【base:NTP+Debian12+vSphere】
0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】
0x06 在vSphere中部署Openmediavault实现轻量NAS【base:Openmediavault+vSphere】
0x07 在vSphere中部署TrueNAS实现业务NAS ZFS【base:NTP+vSphere】
0x08 在Debian12.0中部署LDAP目录访问【base:LDAP+Debian12+vSphere】
0x09 在Debian12.0中部署SAMBA4活动目录,实现DC域控 【base:SAMBA4+Debian12+vSphere】

2.整体架构流程

  1. 准备一个终端工具(mobaxterm、xshell、windterm)。
  2. 准备Debian12系统镜像ISO。
  3. ESXI主机安装Debian12,开启SSH配置。
  4. 终终端工具连接Debian12的SSH。
  5. Debian12完成Nginx配置。
  6. Debian12完成MySQL 配置。
  7. Debian12完成PHP 配置。

3.技术细节

3.1 准备一个终端工具。

mobaxterm、xshell、windterm各有千秋,都好用。windterm全免费,但是各种密码输入界面BUG,但不影响使用。

  • mobaxterm网址:https://mobaxterm.mobatek.net/,下载Free版就够用了,英文界面。
  • xshell网址:https://www.xshell.com/zh/xshell/,xshell自称最强,付费以后的确是的。
  • windterm网址:https://github.com/kingToolbox/WindTerm,中文开源免费,各种指令补全快捷执行。

3.2 准备Debian12系统镜像ISO。

Debian的官网:https://www.debian.org/。
怎么读Debian,你可以开玩笑的喊它Dabian,当然基于Debian系列的Linux发行版可是很猛的噢。
Debian官网
点击下载,跳转页面,注意看图标注文字。
获取Debian
获取Debian页面的左边下面,找到完整安装映像。
在这里插入图片描述
点击“64位PCxxxxx”跳转到一个全英文介绍界面别慌,这些英文是教你如何安装的,直接鼠标滚动到最下面。找到最新版torrent种子文件。
在这里插入图片描述
这里我建议大家用迅雷来完成下载,国内种子P2P下载迅雷还是会快点。不过这才短短两个月,Debian12的版本都出到12.1了,我之前还是12.0呢,不过没影响,除非是大版本更新,不然子版本都没啥根本区别。下载完就可以进行下一步了。

3.3 ESXI主机安装Debian12,开启SSH配置。

通过浏览器登录你的ESXI主机,进入主界面,找到左侧的==“存储”==
在这里插入图片描述
找到你的存储设备,点数据存储浏览器
在这里插入图片描述
点击上载,把下载好的Debian12的ISO传输到你的ESXI主机中
在这里插入图片描述
上传完成后,点击左侧列表虚拟机,进入虚拟机界面,选择创建/注册虚拟机
创建/注册虚拟机

图太多了,要命不一步一步的写了,创建虚拟机这里,正常起名字,选择各种参数就行了,唯独在第四步“自定义设置”要把咱们上传的ISO镜像给放到CD/DVD介质里,最后点击创建即可。

在这里插入图片描述
内心OS:我得写精简点,这个不是保姆教程啊!!!这是随笔!

创建完虚拟机后,在虚拟机列表找到你的新虚拟机,右键——控制台——启动远程控制台,会打开提示:问你是否通过VMware workstation来管理,点击打开,你就跳转到你电脑本机安装的VMware workstation里了。什么?你电脑没有VMware workstation!装一个,别在ESXI的网页界面里折磨自己。
在这里插入图片描述
跳转到VMware workstation后,你发现ESXI其实是帮你在VMware workstation连接了一个远程服务器,接下来所有步骤就像正常的虚拟机哪有操作就行,安装Debian12过程中的重点地方,我会在下面截图中说明。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后等待安装就行,Debian12的安装真没啥说的,动手强的兄弟批量装机,这玩意可能就三分钟内点完安装了。安装完成后,你的ssh服务是默认打开的。

3.4 终端工具连接Debian12的SSH

先在Debian12里面打开终端,su提权到root身份

su

在这里插入图片描述
接着修改SSH配置文件,调整为默认允许root身份登录

nano /etc/ssh/sshd_config

在这里插入图片描述

把PermitRootLogin前面的#号去掉,后面改为yes,然后按ctrl+x再加Y确认修改(ctrl+u撤销上一步),接着重启ssh服务

systemctl restart sshd

以windtrem为例,右键新建会话,如下配置,root是你登录的用户名,正常连接即可。
在这里插入图片描述
进入到ssh后,正常情况DNS服务器IP地址是需要固定的,输入nmtui回车,进入Debian12的可视化网络配置界面

nmtui

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第1张图片
0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第2张图片
0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第3张图片
配置完成后,正常保存退出,通过“ip a”命令检查IP地址是否正确,通过ping www.baidu.com检查是否与外网通讯正常。

ip a
ping www.baidu.com

开局都是0配置,你的内网是即插即用的,这一步应该没毛病,有问题ping不通就去检查你的路由器。
在这里插入图片描述
接着去修改Debian软件仓库源,我喜欢同时指定为国内的阿里和清华源,流程如下

nano /etc/apt/sources.list

把里面的所有内容清空,把下面的内容粘贴进去,这里就提醒终端软件的好处了,wind支持你直接你在CSDN复制,然后在终端里面右键直接粘贴

deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

编辑好如下,按ctrl+x再加Y确认修改(ctrl+u撤销上一步)
在这里插入图片描述
接着apt-get update更新源

apt-get update

3.5 Debian12完成Nginx配置

更新完源以后,执行下面命令安装Nginx,输入Y同意安装

apt-get install nginx

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第4张图片
通过systemctl指令先开启ngnix服务,在检查状态。出现Active即为正常。

systemctl start nginx
systemctl status nginx

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第5张图片
最后通过在浏览器访问Debian12的ip地址,你应该看到欢迎界面:
0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第6张图片

3.6 Debian12完成MySQL 配置

更新完源以后,执行下面命令安装MySQL ,但现在的Mysql你直接执行

apt-get install mysql-server

Debian12会报错:Package ‘mysql-server’ has no installation candidate,提示找不到包,应该是Oracle把mysql的包收回自己管理了,导致各种镜像厂库的包名改掉了,目前最好的方法是通过Oracle官网的MySQL apt存储库来安装,访问下面网址:

https://dev.mysql.com/downloads/repo/apt/

找到最新版本号
0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第7张图片
我不推荐你去点Download,还需要登录,这里直接使用wget拼接一下,下载地址就行

wget https://dev.mysql.com/get/mysql-apt-config_0.8.26-1_all.deb mysql-apt-config_0.8.26-1_all.deb
//把/get/后面的.deb包改成最新版本,然后后面给这个包取个名字

下载完成后,通过dpkg -i命令安装这个deb包,-i参数代表install

dpkg -i mysql-apt-config_0.8.26-1_all.deb

安装过程会出现第一个配置界面,让你选你的linux版本,虽然我是Debian12,但是你别管,选Debian就行了。

第二个界面才是主要的,我们在这里选择server和cluster
0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第8张图片

接着选版本,选第一个就行,第三个cluster是集群版。

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第9张图片

注意这里你选择Mysql8.0版本,按回车以后,又回跑出来一个让你选server或者tools的界面,这不是遇到鬼,这是多选的意思,这里直接最下面的ok就行。

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第10张图片

现在你完成了Mysql来自Oracle的apt源的添加,是的,你搞半天只是为了添加源列表。
放心,你去/etc/apt/sources.list是看不到添加的内容的,你只需要正常执行更新就行。

apt-get update

更新过程中你是可以看到mysql的源的,完成后我们再进行musql的安装
0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第11张图片

接着执行安装命令

apt-get install mysql-server

这回就有了,安装过程会提示一个root密码界面,请输入复杂一点的密码,并记住这个密码

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第12张图片

重复输入后,同意协议

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第13张图片

接下来设置默认认证类型,选第一个使用存储密码就行,不要用5.x几版本那个,后面忘记密码很难改。

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第14张图片

正常来说,到这一步你就安装完mysql的服务端了,通过下面命令:

systemctl status mysql.service

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第15张图片

你已经能看到正常的mysql服务启动了,注意,这时候你在一台window电脑上使用Sqlyog等程序,理论上,就已经能访问这个数据库了,但在mysql8.0这个版本,你一定会遇到权限不足的报错,如下:
0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第16张图片

------------接下来是修复----------------

这是因为mysql高版本以后对访问权限搞的很死,一开始只允许本机访问,如果是部署mysql的老玩家,一半开局都会起用户,然后给权限的。那么安装的sqlyog无法访问mysql,我们就在Debian12上安装mysql-client自己访问自己,执行下面命令。

apt-get install mysql-client

一般都是默认安装了的,那么直接登录mysql

mysql -u root -p

接着输入密码登录mysql,注意不显示密码,别输入错误
0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第17张图片
正常连接如下
0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第18张图片
接下来是开启远程访问mysql权限的步骤,这基本是必须的内容,当你以后遇到各种权限问题时候,也可以参考这部分。依次执行下面命令

use mysql  //选择本表

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第19张图片

select 'host' from user where user='root';		//从user表里面选择查看uesr等于root的host名是啥,这里显示host代表只能本机访问,我们要改它

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第20张图片

update user set host ='%' where user='root';		//通过update命令把user表里面user等于root的host值更新为通配符%

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第21张图片

flush privileges;		//刷新一下刚才的修改

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第22张图片

select host,user from mysql.user;	//执行这句,能看到root变成%通配符了

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第23张图片
最后,把mysql服务重启后,去Sqlyog里面试试吧;

systemctl restart mysql.service

如果,我是说如果,你和我一样,又报错了,报2058错误码,那我们还需要继续调整,因为8.0这个版本太新了,配置安装的时候你输入的密码加密方式是sha2,sqlyog解析不出来,所以又报错了.
0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第24张图片
解决办法也有,重新进入mysql

mysql -u root -p

接着输入密码登录mysql,注意不显示密码,别输入错误,然后执行

select host,user,plugin from mysql.user;	//查看你的各个用户是用什么plugin方式加密

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第25张图片
可以看到我们刚才改的%通配符,以及后面一堆的sha2加密方式,这里我们要把sha2改成普通的mysql_native_password,执行下面语句:

ALTER USER root IDENTIFIED WITH mysql_native_password BY '你的密码';

其实网上大部分修改语句都是使用下面,

alter user root@localhost IDENTIFIED with mysql_native_password BY '你的密码';

网上的这个语句你会报错ERROR 1396 (HY000): Operation ALTER USER failed for ‘root’@‘localhost’,
为什么呢,因为我们把root的默认域改成通配符%所有域了啊。

所以大家要有学习书本,而又高于书本的精神来干技术!

全部改为后你会看到确认OK提示:
0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第26张图片
最后检查一下

select host,user,plugin from mysql.user;	//查看你的各个用户是用什么plugin方式加密

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第27张图片
OK了,重启一次mysql再去试一下sqlyog吧。博主已经成功,你也试试吧,你也可以的。
0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第28张图片

3.7 Debian12完成PHP 配置

完成上面的mysql,你估计已经很累了,我也累啊,天菩萨我大晚上9点半写博客,绝了。接下来开始PHP的配置。
使用下面命令:

apt-get install php-fpm		//安装php本体

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第29张图片

apt-get install php-mysql		//安装php与mysql的组件

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第30张图片
安装基本没障碍,截止我写博客的8月28日,安装php默认最新版本是7.4版本
咱们可以通过下面命令,查看php运行状态。

systemctl status php7.4-fpm.service

0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】_第31张图片
OK,说明安装成功。

小结


花有重开日,人无再少年啊!


那么到此为止,我们的LNMP就全部搭建完成了,你说这套东西能用吗?其实不一定的,因为没有进行版本控制,但对于看博客的诸君,总有一个学习的过程,先装得上,再去进行版本控制,人终究会成长的嘛。

并且这一套LNMP配置是在vSphere上做的,其实就是在私有云上部署,这也是一种全新的体验。也是一种知识的整合,但是好想吐槽自己,BIND9,0x02编号的博文都没写完,我就跑来搞这个LNMP了,我真是想一出是一出。


你可能感兴趣的:(前端,nginx,mysql,php,运维,服务器,linux)