1.0.0 理论
概述:
LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器
Mysql是一个小型关系型数据库管理系统
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统
- LNMP平台就是 Linux、 Ngnix、 My SQL、PHP的组合架构,需要 Linux服务器、MysαL数据库、PHP解析环境
- Ngnix特长:高并发,低资源,处理静态网络访问请求非常强
- Apache:静态处理和动态处理都可以做,更适合做动态处理
- Nginx将动态资源请求交给PHP当中的fpm处理动态请求
- PHP主配置文件:php.ini
- Nginx将动态资源分配给FPM或Apache
1.0.1 Nginx
概述:
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师lgor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
Nginx相较于Apache\lighttpd具有占有内存少,稳定性高等优势,并且依靠并发能力强,丰富的模块库以及友好灵活的配置而闻名。在Linux操作系统下,nginx使用epoll事件模型,得益此,nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作统上采用类似于Epoll的高效事件模型kqueue.
- —款高性能、轻量级Web服务软件
- 稳定性高
- 系统资源消耗低
- 对HTTP并发连接的处理能力高
单台物理服务器可支持30 000~50 000个并发请求
1.0.2 MySQL
- 为了与 Nginx、PHP环境保持一致,此处选择采用源代码编译的方式安装 My SQL组件
- MySQL部署的方法
- 编译安装 MySQL
- 优化调整初始化数据库
- 启动mysq服务并设置root数据库账号的密码
1.0.3 PHP
- 配置网页动静分离,解析PHP,有两种方法可以选择
■使用PHP的FPM模块
■将访问PHP页面的Web请求转交给 Apache服务器去处理 - 较新版本的PHP已经自带FPM模块,用来对PHP解析实例进行管理、优化解析效率
■FastCG将 Http Server和动态脚本语言分离开
■Nginx专门处理静态请求,转发动态请求
■PHP FPM专门解析PHP动态请求
■单服务器的LNMP架构通常使用FPM的方式来解析PHP
2.0.0 实例
2.0.1 安装 Nginx
现在我们开始安装Nginx
- 首先我们用 Xftp(或者用别的传输工具) 把 Nginx软件包放到 /opt 目录下;然后进行解压 Nginx
root@localhost opt]# cd /opt
root@localhost opt]# tar zxvf nginx-1.12.2.tar.gz
[root@localhost nginx-1.12.2]# useradd -M -s /bin/nologin nginx
[root@localhost ~]# id nginx ## 查看用户是否创建成功
uid=1001(nginx) gid=1001(nginx) groups=1001(nginx)
- 然后安装环境和需要的模块
[root@localhost opt]# yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl \
zlib-devel
gcc和gcc-c++: 就是编译器,支持源码转变为二进制文件
make:将配置文件转换成执行性文件(二进制文件)
pcre-devel:支持正则表达式格式
expat-devel:支持开发的一种格式
zlib-devel:压缩功能,压缩库
每一个后面带一个\代表换行
--------------------------------------
[root@localhost opt]# cd nginx-1.12.2/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
--prefix=/usr/local/nginx \ ## 安装路径
--user=nginx \ ## 用户nginx
--group=nginx \ ## 属组nginx
--with-http_stub_status_module ## 统计模块功能
[root@localhost opt]# make -j3 && make install ## 进行安装编译
- 现在做优化路径
##为了使 Nginx 服务器的运行更加方便, 可以为主程序 nginx 创建链接文件, 以便管理员
直接执行 "nginx" 命令就可以调用Nginx的主程序
[root@localhost nginx-1.15.9]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost nginx-1.15.9]# ls -l /usr/local/sbin/nginx
[root@localhost nginx-1.15.9]# nginx -t ### 检查配置文件
- 启动、重新配置、停止Nginx
[root@localhost nginx-1.15.9]# nginx ## 启动 Nginx
[root@localhost nginx-1.15.9]# netstat -anpt |grep nginx ## 过滤Nginx的进程
[root@localhost ~]# yum -y install psmisc ###最小安装没有killall令需要安装
[root@localhost ~]# killall -s HUP nginx ## 重载Nginx配置文件(相当于刷新)
[root@localhost ~]# killall -s QUIT nginx ## 退出 Nginx
- 为了使Nginx服务的启动、停止、重载等操作更加方便,可以编写基于CentOs 7.6的
Nginx服务控制文件使用systemctl工具来进行管理.CentOS7.6系统的管理习惯
[root@localhost ~]# vi /lib/systemd/system/nginx.service
[Unit]
Description=nginx ###描述
After=network.target ####描述服务类别
[Service]
Type=forking ###后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid ###PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx ###启动服务
ExecReload=/usr/bin/kill -s HUP $MAINPID ###根据PID重载配置
ExecStop=/usr/bin/kill -s QUIT $MAINPID ###根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target
==>> wq 保存
[root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service
[root@localhost ~]# systemctl enable nginx.service
[root@localhost ~]# systemctl start nginx ## 这样我们就可以用这种方法来开启 Nginx 了
- 安装好之后启动服务,在浏览器输入IP,出现这个画面,服务成功启动!
2.0.2 安装MySQL
之前的博客有写过 https://blog.csdn.net/weixin_48191060/article/details/108433964
2.0.3 安装PHP
之前的博客有写过 https://blog.csdn.net/weixin_48191060/article/details/108434472