[Linux] yum安装分布式LNMP架构

1. 在一台主机安装nginx(192.168.136.120)

1.1 搭建nginx相关的yum源
bash 复制代码
cd /yum.repos.d
mkdir bak
mv *.repo bak
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
1.2 安装启动nginx服务
bash 复制代码
yum install nginx -y 
nginx -v

systemctl start nginx
systemctl enable nginx

2. 在另一台主机安装mysql(192.168.136.130)

2.1 wget mysql相关的yum源
bash 复制代码
yum remove mariadb* -y   #卸载一切与mysql有关的包

cd /etc/yum.repos.d

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
sed -i 's/gpgcheck=1/gpgcheck=0/' mysql-community.repo
yum -y install mysql-community-server
注意 : wget默认会将下载的安置在当前目录 

2.2 启动mysql服务并且做一些初步设置
bash 复制代码
systemctl start mysqld.service
systemctl enable mysqld.service

过滤出密码并登录,修改默认密码

bash 复制代码
grep "password" /var/log/mysqld.log			#在日志文件中找出root用户的初始密码
2021-07-31T07:55:00.366359Z 1 [Note] A temporary password is generated for root@localhost: ga7%<d<0*jD&

grep "password" /var/log/mysqld.log | awk '{print $NF}'
bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123';     #密码设置要求有 大小写字母、数字和符号 组合
 
grant all privileges on *.* to root@"%" identified by "Admin@123" with grant option; #允许所有通过数据库密码访问的主机
flush privileges; #刷新数据库
2.3 停止自动更新
bash 复制代码
yum -y remove mysql57-community-release-el7-10.noarch     #为了防止每次yum操作都会自动更新,卸载这个软件

三、在第三台主机安装php(192.168.136.140)

3.1 获取php的相关yum源
bash 复制代码
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
3.2 安装相关的依赖拓展模块
bash 复制代码
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache
bash 复制代码
systemctl start php-fpm
systemctl enable php-fpm  #启动服务和设置开机自启
php -v   #查看版本号,同时也可以测试php的基础功能是否可以使用

这玩意我安装太慢了,几kb/s,没贴图 !!!

3.3 nginx支持php的解析
bash 复制代码
cd /etc/nginx/conf.d
//给default.conf 做一个备份,防止配置修改错误,无法还原
cp default.conf   default.conf.bak

修改php的默认配置:

bash 复制代码
location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;    #本机连接
        fastcgi_index  index.php;
        #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name; 
          #修改该配置,使其支持nginx的访问设置
        include        fastcgi_params;
    }



nginx -t

保存配置后并重启服务:

bash 复制代码
systemctl restart nginx

四、LNMP的连接测试(192.168.136.120)

4.1 nginx和php的连接测试
bash 复制代码
cd /usr/share/nginx/html
vim index.php
<?php
phpinfo();
?>
4.2 测试mysql是否能连接成功
bash 复制代码
vim /usr/share/nginx/html/index.php
<?php
$link=mysqli_connect('192.168.136.120','root','Admin@123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

总结:

1. Yum在搭建lnmp的时候,不需要专门添加系统服务,而是触及到相关的yum源码下载。

2. Yum构建的lnmp占用更少的内存。粗略计算,源码在编译构建lnmp时消耗10g的存储空间,yum约2-3g。

3.如果Yum源构建lnmp,则与本地源不同。您无法移动原始yum默认设置,因为您需要从外部获取资源。 如果需要添加,可以直接添加。

4.在实验之前关闭防火墙和selinux是一个不容忽视的因素。

相关推荐
wdfk_prog28 分钟前
嵌入式面试真题第 10 题:高优化等级下共享状态可见性、内存模型与系统级同步设计
java·linux·开发语言·面试·职场和发展·架构·c
2501_941982051 小时前
企业微信二次开发:私域数据基石——三大核心基础能力接口实战
windows·架构·bootstrap·企业微信
x-cmd2 小时前
Mac 涨价后,本地 AI 还能千元入门吗?
linux·人工智能·macos·ai·agent·amd·本地ai入门
胡萝卜术2 小时前
RAG 的知识炼油厂:从原始网页到可检索知识块的工程化之路
面试·架构·github
wdfk_prog2 小时前
嵌入式面试真题第 11 题:RTOS 优先级翻转与实时任务阻塞的通用治理
c语言·缓存·面试·职场和发展·架构
Sirius Wu3 小时前
OpenClaw Skill:Matplotlib 可视化技能 + 沙箱双层隔离完整详解
服务器·网络·人工智能·安全·ai·架构·aigc
J-Tony113 小时前
【Redis】 Redis 是单线程还是多线程
服务器·数据库·mysql
AOwhisky4 小时前
下一代容器来了?Docker 宣布原生支持 WebAssembly
java·运维·docker·容器·rust·wasm
咖啡无伴侣7 小时前
unplugin-auto-import 使用详解+面试高频考点
前端·架构
微三云 - 廖会灵 (私域系统开发)7 小时前
SaaS多租户电商平台架构实战:从租户隔离到计费系统的完整实现
架构