前言
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
一:LNMP架构的部署
1.1:LNMP架构概述
LNMP平台就是 Linux、 Ngnix、 My SQL、PHP的组合架构,需要 Linux服务器、MysαL数据库、PHP解析环境
Ngnix特长:高并发,低资源,处理静态网络访问请求非常强
Apache:静态处理和动态处理都可以做,更适合做动态处理
Nginx将动态资源请求交给PHP当中的fpm处理动态请求
PHP主配置文件:php.ini
Nginx将动态资源分配给FPM或Apache
1.2:MySQL安装配置
为了与 Nginx、PHP环境保持一致,此处选择采用源代码编译的方式安装 My SQL组件
MySQL部署的方法
编译安装 MySQL
优化调整初始化数据库
启动mysq服务并设置root数据库账号的密码
1.3:PHP解析环境的安装
配置网页动静分离,解析PHP,有两种方法可以选择
使用PHP的FPM模块
将访问PHP页面的Web请求转交给 Apache服务器去处理
较新版本的PHP已经自带FPM模块,用来对PHP解析实例进行管理、优化解析效率
FastCG将 Http Server和动态脚本语言分离开
Nginx专门处理静态请求,转发动态请求
PHP FPM专门解析PHP动态请求
单服务器的LNMP架构通常使用FPM的方式来解析PHP
PHP编译安装步骤
编译安装PHP
编译选项时添加"- enable-fpm”以启用此模块
安装后的调整,主要是配置文件的建立与相应命令工具的路径优化
安装 Zend Guardloader(提高PHP解析效率),并进行加载配置
CGI还有跨平台的功能
1.4:配置Nginx支持PHP环境
调用本机的php-fpm进程配置方法
建立FPM配置文件php- fpm. conf,修改配置选项,如:PD文件运行用户、服务进程数等
启动php-pm进程
在Ngnx的配置文件中的 serve}配置段配置将PHP的网页请求转给FPM模块处理
在Ngnx的配置文件中的 Server{}配置段配置将PHP的网页请求转给FPM模块处理
1.5:常见的PHP开源产品介绍
Discuz!
康盛创想(北京困技有限公司推出的一套通用的社区论坛软件系统,如001年6月面世以来,是全球成熟度最高、覆盖率最大的论坛软件系统之一
PHPWind
PHPWind(简称:PW)是一个基于PHP和 MySQL的论坛程序,是国内最受欢迎的通用型论坛程序之一。 PHPWind的前身是onstar,发布于2004年, PHPWind由杭州德天信息技术有限公司开发,软件全面开源免费
二:LNMP应用部署
2.1:Nginx安装
2.1.1:编译安装步骤
1.挂载宿主机的共享文件夹,读取下载好的源码文件
2.解压跨平台组件包和源码包
将跨平台组件包移动到源码包目录下
3.安装编译器和其他工具
yum -y install gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl \
zlib-devel \
pcre
4.configure配置
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
5.make编译和make install
6,路径优化
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin '//nginx命令执行路径优化'
useradd -M -s /sbin/nologin nginx
2.1.2:使用systemctl控制
vim /lib/systemd/system/nginx.service '//添加使用systemctl工具进行管理'
[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
chmod 754 /lib/systemd/system/nginx.service
2.1.3:开启nginx,关闭防火墙
[root@localhost system]# chmod +754 nginx.service
[root@localhost system]# systemctl start nginx.service
[