美文网首页
LNMP 架构

LNMP 架构

作者: 小屁孩云熙 | 来源:发表于2021-12-30 19:13 被阅读0次

1. LNMP 架构

L   -- Linux
N   -- Nginx    处理用户的静态请求
M   -- MySQL    存储用户的字符串数据信息
P   -- PHP      处理动态请求;负责和数据库建立关系
  • 注意
01. selinux 关闭
02. /tmp 1777 权限,mysql服务无法启动 (编译安装)

2. LNMP 架构部署

2.1 Nginx 部署

2.2 MariaDB 部署

2.2.1 安装

yum install mariadb mariadb-server -y

2.2.2 初始化

mysql_install_db --help
--basedir=path      指定 mysql 程序目录
--datadir=path      指定 数据信息 保存目录
--user=mysql        指定 用户管理数据目录 700

信息输出:
创建用户密码信息

# 扩展
# 01. 给本地数据库设置密码
mysqladmin -u root password 'xxxx'
# 02. 给远程数据库设置密码
mysqladmin -u root -h web01 password 'xxx'

2.2.3 启动服务

systemctl start mariadb
systemctl enable mariadb

2.2.3 设置密码

mysqladmin -u root password 'xxx'

2.2.4 连接数据库

mysql -u root -pxxx

2.3 PHP 部署安装

2.3.1 更新 yum 源,卸载系统自带的 PHP 软件

yum remove php-mysql php php-fpm php-common -y

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

2.3.2 安装 PHP 软件(7.1)

yum install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-mongodb php71w-pecl-redis -y

2.3.3 编写配置文件

vim /etc/php-fpm.d/www.conf

user = www
group = www

# 保证 Nginx 进程的管理用户和 PHP 服务进程的管理用户保持一致

2.3.4 启动服务

systemctl start php-fpm
systemctl enable php-fpm

3. LNMP 架构原理

image-20211228155859652.png

4. 实现 LNMP 之间建立关系

4.1 实现 Nginx 和 PHP 之间建立关系

4.1.1 编写 Nginx 配置文件

location ~ \.php$ {
    root /html/blog;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi_params;
}

systemctl restart nginx

4.1.2 编写动态资源文件

vim test.php

<?php
    phpinfo();
?>

4.1.3 访问测试

4.2 实现 PHP 和 MySQL 之间建立关系

4.2.1 编写 PHP 代码文件

test_mysql.php

<?php
    $servername = "localhost";
    $username = "root";
    $password = "123456";
    $conn = mysqli_connect($servername,$username,$password);
    if ($conn) {
        echo "successful!\n";
    }
    else {
        die("connection failed:".mysqli_connect_error());
    }
?>

4.2.2 访问测试

5. 部署搭建网站页面(代码上线)

5.1 获取代码信息 (git)

使用开源的网站代码

www 网站页面:http://www.dedecms.com/

bbs 网站页面:https://www.discuz.net/

blog 网站页面:https://cn.wordpress.org/

知乎 网站页面:http://www.wecenter.com/downloads/

5.2 将代码解压,放入到站点目录中

5.3 修改站点目录权限

chown -R www.www /html/blog

5.4 创建数据库 和 用户

create database wordpress charset utf8;
show databases;

grant all on wordpress.* to wordpress@'localhost' identified by '123456';
show grants for wordpress@'%';
select user,host from mysql.user;

5.5 网站页面初始化

5.6 问题解决

5.6.1 上传文件报 413 错误

  1. 修改 Nginx 配置文件
vim blog.conf

server {
    client_max_body_size 50m;   -- 指定用户上传数据的大小限制(默认为1M)
}
  1. 修改 php.ini 配置文件
upload_max_filesize = 50M   -- 使PHP接收用户上传的更大的数据(默认2M)

5.6.2 如何让 LNMP 架构和存储服务器建立关系

  1. 找出图片存储的目录
# 01. 根据图片链接地址获取图片存储位置
http://blog.yunxuanedu.com/wp-content/uploads/2021/12/hj.gif

# 02. 先定位数据存放站点目录
find /html/blog -type f -mmin -5    # 最今 5 分钟内 的文件
inotifywait -mrq /html/blog
  1. 使 Web 服务器 和 存储服务器建立关系
# 01. 检查存储服务是否正常

# 02. 编写存储服务配置文件
[root@nfs01 ~]# cat /etc/exports
/data/blog  172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
/data/www  172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
/data/bbs  172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
[root@nfs01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data/bbs  172.16.1.0/24
/data/www  172.16.1.0/24
/data/blog 172.16.1.0/24

# 03. 将 Web 服务器上的数据迁移
[root@web01 uploads]# ll
total 0
drwxr-xr-x 3 www www 16 Dec 29 16:34 2021
[root@web01 uploads]# mv 2021/ /tmp/
[root@web01 uploads]# ll
total 0
[root@web01 uploads]# pwd
/html/blog/wp-content/uploads

# 04. 挂载目录
[root@web01 uploads]# mount -t nfs 172.16.1.31:/data/blog /html/blog/wp-content/uploads
[root@web01 uploads]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   28G  2.0G   26G   8% /
devtmpfs                 475M     0  475M   0% /dev
tmpfs                    487M     0  487M   0% /dev/shm
tmpfs                    487M   20M  467M   5% /run
tmpfs                    487M     0  487M   0% /sys/fs/cgroup
/dev/sda1                473M  125M  349M  27% /boot
172.16.1.31:/data         28G  1.9G   26G   7% /mnt
tmpfs                     98M     0   98M   0% /run/user/0
172.16.1.31:/data/blog    28G  1.9G   26G   7% /html/blog/wp-content/uploads

# 05. 数据迁移到挂载目录下
[root@web01 ~]# mv /tmp/2021 /html/blog/wp-content/uploads
[root@web01 ~]# cd /html/blog/wp-content/uploads
[root@web01 uploads]# ll
total 0
drwxr-xr-x 3 www www 16 Dec 29 16:34 2021

# 06. 访问测试

5.6.3 如何让 LNMP 架构和 数据库服务器建立关系

5.6.3.1 为什么 不将数据库 服务在web站点服务器上运行
  1. 方便集群资源共享,保证集群节点服务器数据一致
  2. 节省硬件成本和维护成本
  3. 安全可靠等
5.6.3.2 数据迁移流程
  1. 在本地进行数据备份
# 全库备份
mysqldump -uroot -p123456 --all-database > /tmp/web_back.sql
  1. 将备份数据迁移至数据库服务器
  2. 恢复数据
mysql -uroot -pxxx < /tmp/web_back.sql
  1. 修改数据库用户信息
# 优化 - 删除无用的用户信息
delete from mysql.user where user="";

# 新建用户
grant all on wordpress.* to wordpress@'172.16.1.%' identified by '123456';
flush privileges;   -- 刷新权限,若授权后测试未生效
  1. 修改 Web 服务器 代码文件信息
vim wp-config.php
  1. 停止 Web 服务器上的数据库

5.6.4 域名变动后,无法正常访问新域名,会跳到旧域名问题

  1. 修改 wordpress 后天设置信息,将后台中旧域名修改为新域名
  2. 修改 数据库 中的数据信息

相关文章

  • 综合架构之网站服务-LNMP搭建博客

    1.掌握LNMP的安装步骤2.LNMP架构访问原理 网站架构组成 分类:LNMP(php) (LNMT(tomca...

  • Day40-Nginx-LNMP

    1.什么是LNMP架构 LNMP是一套技术的组合,Linux,Nginx,MySQL,PHP 2.LNMP架构是如...

  • LNMP 架构

    1. LNMP 架构 注意 2. LNMP 架构部署 2.1 Nginx 部署 2.2 MariaDB 部署 2....

  • LNMP架构介绍、MySQL安装、PHP安装、Nginx介绍

    目录 一、 LNMP架构介绍二、 MySQL安装三、 PHP安装四、 Nginx介绍 一、 LNMP架构介绍 LN...

  • day 40 Nginx流行架构

    LNMP架构基本介绍环境搭建 一、LNMP架构基本介绍 什么是LNMPLNMP是一套技术的组合,L=Linux,N...

  • lnmp(一)——lnmp介绍及mysql、php安装

    12.1 LNMP架构介绍12.2 MySQL安装12.3/12.4 PHP安装12.5 Nginx介绍 LNMP...

  • 40 Nginx笔记---LNMP

    今日内容 14.什么是LNMP架构 15.LNMP架构是如何工作的 16.Nginx与PHP、MySQL之间是如何...

  • LNMP基本架构

    介绍LNMP nginx+mysql+php lnmp最常见的架构 L linux --系统平台N nginx ...

  • 12LNMP

    第一章 LNMP架构概述 1.1 什么是LNMP LNMP 是一套技术的组合, L=Linux、 N=Nginx、...

  • LNMP

    第一章 LNMP架构概述 1.1 什么是LNMP LNMP 是一套技术的组合, L=Linux、 N=Nginx、...

网友评论

      本文标题:LNMP 架构

      本文链接:https://www.haomeiwen.com/subject/osqwqrtx.html