LNMP 架构

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. 修改 数据库 中的数据信息
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容