文章目录
1.概要
LNMP 是一种使用 Linux、Nginx、MySQL 和 PHP 搭建的服务器环境,用于支持网站和应用程序的运行
其它内容传送门地址:
2.整体架构流程
- 准备一个终端工具(mobaxterm、xshell、windterm)。
- 准备Debian12系统镜像ISO。
- ESXI主机安装Debian12,开启SSH配置。
- 终终端工具连接Debian12的SSH。
- Debian12完成Nginx配置。
- Debian12完成MySQL 配置。
- 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页面的左边下面,找到完整安装映像。
点击“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
配置完成后,正常保存退出,通过“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
通过systemctl指令先开启ngnix服务,在检查状态。出现Active即为正常。
systemctl start nginx
systemctl status nginx
最后通过在浏览器访问Debian12的ip地址,你应该看到欢迎界面:
3.6 Debian12完成MySQL 配置
更新完源以后,执行下面命令安装MySQL ,但现在的Mysql你直接执行
apt-get install mysql-server
Debian12会报错:Package ‘mysql-server’ has no installation candidate,提示找不到包,应该是Oracle把mysql的包收回自己管理了,导致各种镜像厂库的包名改掉了,目前最好的方法是通过Oracle官网的MySQL apt存储库来安装,访问下面网址:
找到最新版本号
我不推荐你去点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
接着选版本,选第一个就行,第三个cluster是集群版。
注意这里你选择Mysql8.0版本,按回车以后,又回跑出来一个让你选server或者tools的界面,这不是遇到鬼,这是多选的意思,这里直接最下面的ok就行。
现在你完成了Mysql来自Oracle的apt源的添加,是的,你搞半天只是为了添加源列表。
放心,你去/etc/apt/sources.list是看不到添加的内容的,你只需要正常执行更新就行。
apt-get update
更新过程中你是可以看到mysql的源的,完成后我们再进行musql的安装
接着执行安装命令
apt-get install mysql-server
这回就有了,安装过程会提示一个root密码界面,请输入复杂一点的密码,并记住这个密码
重复输入后,同意协议
接下来设置默认认证类型,选第一个使用存储密码就行,不要用5.x几版本那个,后面忘记密码很难改。
正常来说,到这一步你就安装完mysql的服务端了,通过下面命令:
systemctl status mysql.service
你已经能看到正常的mysql服务启动了,注意,这时候你在一台window电脑上使用Sqlyog等程序,理论上,就已经能访问这个数据库了,但在mysql8.0这个版本,你一定会遇到权限不足的报错,如下:
------------接下来是修复----------------
这是因为mysql高版本以后对访问权限搞的很死,一开始只允许本机访问,如果是部署mysql的老玩家,一半开局都会起用户,然后给权限的。那么安装的sqlyog无法访问mysql,我们就在Debian12上安装mysql-client自己访问自己,执行下面命令。
apt-get install mysql-client
一般都是默认安装了的,那么直接登录mysql
mysql -u root -p
接着输入密码登录mysql,注意不显示密码,别输入错误
正常连接如下
接下来是开启远程访问mysql权限的步骤,这基本是必须的内容,当你以后遇到各种权限问题时候,也可以参考这部分。依次执行下面命令
use mysql //选择本表
select 'host' from user where user='root'; //从user表里面选择查看uesr等于root的host名是啥,这里显示host代表只能本机访问,我们要改它
update user set host ='%' where user='root'; //通过update命令把user表里面user等于root的host值更新为通配符%
flush privileges; //刷新一下刚才的修改
select host,user from mysql.user; //执行这句,能看到root变成%通配符了
最后,把mysql服务重启后,去Sqlyog里面试试吧;
systemctl restart mysql.service
如果,我是说如果,你和我一样,又报错了,报2058错误码,那我们还需要继续调整,因为8.0这个版本太新了,配置安装的时候你输入的密码加密方式是sha2,sqlyog解析不出来,所以又报错了.
解决办法也有,重新进入mysql
mysql -u root -p
接着输入密码登录mysql,注意不显示密码,别输入错误,然后执行
select host,user,plugin from mysql.user; //查看你的各个用户是用什么plugin方式加密
可以看到我们刚才改的%通配符,以及后面一堆的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提示:
最后检查一下
select host,user,plugin from mysql.user; //查看你的各个用户是用什么plugin方式加密
OK了,重启一次mysql再去试一下sqlyog吧。博主已经成功,你也试试吧,你也可以的。
3.7 Debian12完成PHP 配置
完成上面的mysql,你估计已经很累了,我也累啊,天菩萨我大晚上9点半写博客,绝了。接下来开始PHP的配置。
使用下面命令:
apt-get install php-fpm //安装php本体
apt-get install php-mysql //安装php与mysql的组件
安装基本没障碍,截止我写博客的8月28日,安装php默认最新版本是7.4版本
咱们可以通过下面命令,查看php运行状态。
systemctl status php7.4-fpm.service
OK,说明安装成功。
小结
花有重开日,人无再少年啊!
那么到此为止,我们的LNMP就全部搭建完成了,你说这套东西能用吗?其实不一定的,因为没有进行版本控制,但对于看博客的诸君,总有一个学习的过程,先装得上,再去进行版本控制,人终究会成长的嘛。
并且这一套LNMP配置是在vSphere上做的,其实就是在私有云上部署,这也是一种全新的体验。也是一种知识的整合,但是好想吐槽自己,BIND9,0x02编号的博文都没写完,我就跑来搞这个LNMP了,我真是想一出是一出。