云鸽飞月

  • 登录
  1. 首页
  2. nginx
  3. 正文

基于 LNMP 的个人博客搭建

2026年3月10日 15点热度 0人点赞 0条评论

1.LNMP动态网站架构

架构原理图

用户发出http请求,如果用户请求的是静态资源(html,css,js),nginx直接返回给用户,如果请求的是以.php结尾的动态请求,那么nginx通过fastcgi协议将请求传给php-fpm,php-fpm来调度php进程, php在处理请求的同时会根据代码来连接mysql,php拿到mysql返回的数据后,将数据渲染成html页面,返回给nginx,nginx将html页面返回给用户。

2.部署流程

2.1.环境准备:ubuntu 22.04

服务器公网, 内网
web0110.0.0.7 172.16.1.7
db01172.16.1.10

2.2.数据库准备

db01上准备

数据库版本: mysql-server-8.0

apt install mysql-server-8.0


#启动mysql
systemctl start mysql


#检查状态
[root@db01 /shell]# systemctl status mysql
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2026-03-10 20:41:36 CST; 2h 29min ago

#初始化数据库
mysql_secure_installation 


#进入mysql
mysql -uroot -p

#创建blog数据库
create database blog

#添加blog用户并且拥有对blog数据库中的所有表增删改查的权限,并且设置只能在172.16.1.0这个网段进行连接
grant all  on blog.*  to  'blog'@'172.16.1.%' identified by '1'    
#或者先创建用户
create user 'blog'@'172.16.1.%' IDENTIFIED BY '1';
#在授权
grant all   privileges  ON blog.* to 'blog'@'172.16.1.%';

#设置mysql监听内网
[root@db01 /shell]# grep bind  /etc/mysql/mysql.conf.d/mysqld.cnf 
bind-address		= 172.16.1.10
mysqlx-bind-address	= 172.16.1.10

#重启mysql
systemctl restart mysql

#检查
ps -ef|grep mysql
ss -lntup|grep 3306

2.3 php准备

web01上准备

#安装软件包
apt install -y php php-bcmath php-cli php-common php-dev php-gd php-intl php-mbstring php-mysql php-opcache php-pdo php-xml php-json php-fpm


#修改配置文件
[root@web01 /app/code]# vim /etc/php/8.1/fpm/pool.d/www.conf 
user = nginx
group = nginx
isten = 127.0.0.1:9000

#启动开机自启
systemctl start php8.1-fpm  &&  systemctl enable php8.1-fpm


#检查php进程
[lxb@web01 ~]$ ps -ef|grep php
root       21693       1  0 20:54 ?        00:00:00 php-fpm: master process (/etc/php/8.1/fpm/php-fpm.conf)
nginx      21695   21693  0 20:54 ?        00:00:00 php-fpm: pool www
nginx      21696   21693  0 20:54 ?        00:00:00 php-fpm: pool www

[root@web01 ~]# ss -lntup|grep 9000
tcp   LISTEN 0      511                          127.0.0.1:9000       0.0.0.0:*    users:(("php-fpm8.1",pid=21993,fd=9),("php-fpm8.1",pid=21992,fd=9),("php-fpm8.1",pid=21991,fd=7))                    

2.4 nginx配置

server{
  listen 80;
  server_name blog.baidu.com;
  root /app/code/blog;
  access_log /var/log/nginx/blog.baidu.com_access_log;
  error_log /var/log/nginx/blog.baidu.com_error_log;

  location / {
  index index.php;  
  }

  location ~ \.php$ {
  fastcgi_pass 127.0.0.1:9000; #将以php结尾的文件的请求传给php-fpm
  fastcgi_index index.php;  #默认找index.php
  fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name; #告诉php文件在服务器的哪里,绝对路径
  include fastcgi_params; #引入nginx预定义的fasgcgi参数
  
  }

}

创建站点目录

mkdir -p /app/code/blog

上传代码到站点目录下

配置windows host解析

3.测试

标签: nginx
最后更新:2026年3月10日

voelxb

这个人很懒,什么都没留下

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2026 云鸽飞月. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang