LNMP架构

LNMP架构介绍

1)使前端web服务和后端存储服务进行串联

2)主要实现处理PHP程序动态请求

LNMP的工作原理

LNMP:

L:表示linux

N:表示Nginx

M:表示mysql

P:表示PHP

工作原理:

前端接收用户的请求,到达nginx后,nginx服务会先判断用户的请求是否可以处理,如果可以处理的先自己处理,如果处理不了的,nginx服务先通过fastcgi_pass指令与通过fastcgi接口将处理不了的请求抛送给PHP服务,php会通过php-fpm进程来接收到nginx抛送过来的请求,同时php服务会通过wrapper进程来识别这个请求,然后会交给php的解析器来进行识别,php解析器识别后会调取数据库资源,让数据库识别用户的请求,最终将要调取的数据识别出来,返还给php进程wrapper,再返还给php进程php-fpm,再返回给fastgci接口交给nginx客户端,nginx客户端接收到这个请求的结果响应给用户

LNMP架构部署

第一步:安装LNMP架构相关软件

1.部署linux系统

部署完成后,需要进行基础优化(防火墙关闭,selinux关闭,/tmp目录权限为1777)

2.部署nginx服务

安装过程详解:http://1a7f2dd7.wiz03.com/share/s/0qvOTn10-AEH29_zxM18oPGG1QICGl14RkIx2GujYl2NuYca

3.部署mysql服务

第一个里程:下载mysql软件

mysql官方下载链接地址:ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/

wget ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz

[root@web01 tools]# tar xf mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz

[root@web01 tools]# mv mysql-5.6.41-linux-glibc2.12-x86_64 /application/mysql-5.6

第二个里程:创建软链接

[root@web01 mysql-5.6]# ln -s /application/mysql-5.6/ /application/mysql

第三个里程:创建数据库管理用户,并进行授权数据目录

[root@web01 mysql]# useradd -M -s /sbin/nologin mysql

[root@web01 mysql]# chown -R mysql. /application/mysql/data/

第四个里程:对数据库进行初始化

[root@web01 mysql]# scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql

第五个里程:启动mysql服务

[root@web01 mysql]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld

#将默认位的mysql位置改成现在安装的位置

[root@web01 mysql]# sed -ri "s#/usr/local#/application#g" /etc/init.d/mysqld /application/mysql/bin/mysqld_safe

#因版本不同,需要现在的配置文件覆盖系统原来的配置文件

[root@web01 mysql]# cp /application/mysql/support-files/my-default.cnf /etc/my.cnf

cp: overwrite `/etc/my.cnf'? y

[root@web01 mysql]# /etc/init.d/mysqld start

第六个里程:设置mysql密码

[root@web01 ~]# /application/mysql/bin/mysqladmin -uroot password "oldboy"

[root@web01 ~]# /application/mysql/bin/mysql -uroot -poldboy

第二步:部署PHP环境

第一个里程:安装PHP软件依赖关系

[root@web01 tools]# yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-t urbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

libiconv软件安装---字符集转换库(默认可以不进行安装了)

cd /server/tools

#wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

tar zxf libiconv-1.14.tar.gz

cd libiconv-1.14

./configure --prefix=/usr/local/libiconv

make && make install

#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

yum -y install libmcrypt-devel mhash mcrypt

rpm -qa libmcrypt-devel mhash mcrypt

第二个里程:安装PHP软件

php官方网站下载:php.net

本地不安装mysql, 将--with-mysqli=mysqlnd设为mysqlnd即可

[root@web01 sbin]#

./configure \

--prefix=/application/php-5.5.32 \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-iconv-dir=/usr/local/libiconv \

--with-freetype-dir --with-jpeg-dir \

--with-png-dir \

--with-zlib \

--with-libxml-dir=/usr \

--enable-xml \

--disable-rpath \

--enable-bcmath \

--enable-shmop \

--enable-sysvsem \

--enable-inline-optimization \

--with-curl \

--enable-mbregex \

--enable-fpm \

--enable-mbstring \

--with-mcrypt \

--with-gd \

--enable-gd-native-ttf \

--with-openssl \

--with-mhash \

--enable-pcntl \

--enable-sockets \

--with-xmlrpc \

--enable-soap \

--enable-short-tags \

--enable-static \

--with-xsl \

--with-fpm-user=www \

--with-fpm-group=www \

--enable-ftp \

--enable-opcache=no

##防错(以下信息可以不进行配置了)

ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/

touch ext/phar/phar.phar

make && make install

ln -s /application/php-5.5.32/ /application/php

第三个里程:设置PHP程序配置文件

cp php.ini-production /application/php-5.5.32/lib/

cd /application/php/etc/

cp php-fpm.conf.default php-fpm.conf

第四个里程:启动PHP服务

/application/php/sbin/php-fpm

netstat -lntup|grep php

tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 6251/php-fpm

第三部:进行软件直接的结合,nginx与php结合

1.编写nginx配置文件

[root@web01 blog]# cat ../../conf/extra/blog.conf

server {

listen 80;

server_name blog.etiantian.org;

root html/blog;

index index.php index.html index.htm;

location ~* .*\.(php|php5)?$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

[root@web01 blog]#

2.编辑php页面

[root@web01 blog]# cat test_info.php

//$link_id=mysql_connect('主机名','用户','密码');

//mysql -u用户 -p密码 -h 主机

$link_id=mysql_connect('localhost','root','oldboy') or mysql_error();

if($link_id){

echo "mysql successful by oldboy !\n";

}else{

echo mysql_error();

}

?>

3.测试访问

部署一个真实的网站

第一个里程:上传和下载网站代码

第二个里程:解压代码程序,将代码和序保存到站点目录并进行授权

cd /server/tools

tar xf wordpress-4.7.3-zh_CN.tar.gz

mv wordpress/* /application/nginx/html/blog/

chown -R www.www /application/nginx/html/blog/

第三个里程:直接访问blog网站,进行初始化操作

创建数据库:

create database wordpress;

show databases;

创建连接数据用户信息

grant all on wordpress.* to 'wordpress'@'localhost' identified by 'oldboy123';

select user,host from mysql.user;

lnmp架构mysql500是什么原因_LNMP架构介绍相关推荐

  1. 系统架构师-基础到企业应用架构-表现层

    一.前言 最近也许是由于假期的原因,我发布的文章的速度变慢了,对大家说下抱歉,这个系列的确我很难写,感谢大家对我的支持和关注,的确我在发布后得到大家的支 持和认可,让我有了更多的动力,之前发布的有些内 ...

  2. 亿级商品详情页架构演进技术解密 | 高可用架构系列 二

    转载:http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=210272034&idx=1&sn=3be9d2b53c7fe ...

  3. 亿级商品详情页架构演进技术解密 | 高可用架构系列

    亿级商品详情页架构演进技术解密 | 高可用架构系列 --http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=210272034&i ...

  4. 系统架构师-基础到企业应用架构-企业应用架构

    为什么80%的码农都做不了架构师?>>>    一.上篇回顾 我们先来回顾下上篇讲解的内容,我们前面的几节分别讲述了,业务逻辑层.数据访问层.服务层.表现层,我们了解了这些分层的职责 ...

  5. 架构漫谈:我心中的架构

    本文为<架构漫谈>系列第一篇.本文将会从:"什么是架构","架构能解决什么问题","架构和框架的区别"三个点来着重讨论,本文系个 ...

  6. 关于架构的优化和设计,架构师必须悟透的事情

    原文地址:http://mp.weixin.qq.com/s?__biz=MzA5Nzc4OTA1Mw==&mid=411196355&idx=1&sn=be0d574b4a1 ...

  7. 企业架构(五)——联邦企业架构(FEA)实施指南

    文章目录 一.概述 二.效能改善生命周期 三.企业架构的开发和应用 1.架构级别 2.架构演进 (1)概述 (2)片段架构 ① 片段的识别和定义过程 ② 片段架构的开发和维护过程 四.企业架构过渡战略 ...

  8. 企业架构(三)——联邦企业架构框架(FEAF)

    文章目录 一.FEAF 1.FEAF的出现 2.FEAF构成 (1)Level 1 (2)Level 2 (3)Level 3--架构模型细化 (4)Level 4--业务架构模型细化(EAP方法) ...

  9. 架构设计:远程调用服务架构设计及zookeeper技术详解(上篇)

    一.序言 Hadoop是一个技术生态圈,zookeeper是hadoop生态圈里一个非常重要的技术,当我研究学习hadoop的相关技术时候,有两块知识曾经让我十分的困惑,一个是hbase,一个就是zo ...

最新文章

  1. 大数据教程之大数据处理流程
  2. C#中各种数据类型转换的方法的类
  3. 论大型信息系统集成项目的整体管理
  4. 基于 Slax 构建译者专用 Linux
  5. 【城市沙龙】LiveVideoStack Meet | 长沙:多媒体与广电
  6. 方法重载,new,override
  7. IntelliJ IDEA 2020 快捷键私人订制
  8. 代码在eclipse下不报错,在doc命令行下报错--jar file和runable jar file
  9. java连接zookeeper 找不到zoo.cfg_ZooInspector 连接不到 Zookeeper 的解决方法
  10. 安谋中国发布“玲珑”多媒体产品线,首款ISP处理器面世
  11. 使用windows live writer连接CSDN和博客园博客
  12. Class.forName的作用以及为什么要用它【转】
  13. 微信终端跨平台组件 mars 开源
  14. 微信小程序 js部分语法
  15. pandas学习之excel重复项判断显示与去重
  16. Unraid USB启动盘怎么更换和重新获取注册码密钥?
  17. Android各种模拟器使用笔记
  18. Win10+Vs+CMake安装OpenCV+contrib
  19. 32位颜色 转换成16位颜色
  20. 阿里王坚:人工智能是一个非常傲慢的提法,这个提法最后会害死大家

热门文章

  1. 珍爱生命,远离正则表达式(parse库简介)
  2. 手动创建,MSSQLSERVER服务
  3. react中将html转成图片
  4. 2021-11-20总结
  5. python ox_Oracle 模块操作Oracle
  6. derby 转 mysql
  7. eclipse 切换java版本
  8. node.js使用create-torrent与parse-torrent操作torrent信息
  9. 百度蜘蛛ip段大全分析,百度每个ip都什么意思
  10. 小三分之一!移远通信推出超小尺寸5G模组