LNMP基础架构实现

架构原理:

LAMP=linux+apache+mysql+php

LNMP=linux+nginx+mysql+php

一、初入LNMP

当我们讲LAMP的时候PHP是作为一个模块在Apache中,但是在LNMP中,PHP是一个服务,当用户请求的时候nginx会把它交给php 然后对mysql进行交互!像这种静态的,例如图片或者html,nginx会直接处理,从而加快访问速度! 谈到速度,其实如果一个普通的站点你是看不到什么效果的,但是如果要是访问一个纯静态站点,nginx就能体现出它的优势!(其实我的站点就是nginx,因为多数是静态的文章+图片)nginx的另外一个优势得益于它的高并发支持!


二、安装mysql

安装mysql的配置,其实在做LAMP的时候已经做过了,一模一样的编译配置。就直接show配置: LAMP安装

cd /usr/local/src

wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz 

tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql

cd /usr/local/mysql

useradd mysql

mkdir -p /data/mysql

chown -R mysql:mysql /data/mysql

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

cp support-files/my-default.cnf  /etc/my.cnf

cp support-files/mysql.server /etc/init.d/mysqld

vi /etc/init.d/mysqld 

vim编辑下面两行basedir和datadir配置
basedir=/usr/local/mysql
datadir=/data/mysql

/etc/init.d/mysqld start

三、PHP安装

和LAMP安装PHP方法有差别,需要开启php-fpm服务

3.1 配置并编译:

cd /usr/local/src/

wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

tar zxf php-5.6.30.tar.gz

useradd -s /sbin/nologin php-fpm

cd php-5.6.30

./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl  --with-openssl

--prefix=指定安装位置
--with-config-file-path=指定配置文件目录
--enable-fpm=启动fpm服务
--with-fpm-user=指定用户
--with-fpm-group=指定用户组
--with-mysql=指定mysql的路径
如下几乎都是。

[当然在编译的时候也会出现错误,参照之前的错误安装解析即可](http://www.okay686.cn/?p=402)

echo $?

make && make install

echo $?

3.2 PHP信息:

安装下来之后我们发现其实比之前安装PHP要多了两个目录 sbinvar

sbin:实际上就是启动php-fpm服务的目录

var:实际上就是存放PHP日志的,当然这个我们可以指定的

查看PHP信息:

/usr/local/php-fpm/sbin/php-fpm -i

查看PHP模块:

/usr/local/php-fpm/sbin/php-fpm -m

测试PHP配置语法:

/usr/local/php-fpm/sbin/php-fpm -t

3.3 配置PHP:

cp php.ini-production /usr/local/php-fpm/etc/php.ini

//牢记此命令,后期会经常使用到
vi /usr/local/php-fpm/etc/php-fpm.conf

//写入如下内容
[global]
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024

[global]=定义全局参数
[www]=自定义模块
listen = 监听的地址
或者可以使用这样的方式↓
listen = 127.0.0.1:9000 (port默认为9000,也可以更改)
listen.mode = 666 用来定义listen = /tmp/php-fcgi.sock的权限,只有这个sock打开的情况下才生效!

//配置启动脚本
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chmod 755 /etc/init.d/php-fpm

chkconfig --add php-fpm

chkconfig php-fpm on

service php-fpm start

ps aux |grep php-fpm

四、Nginx

官网:nginx.org

因为nginx处理静态文件的能力要比apache好很多,所以很多企业在建站的时候一般都是用java写的,然后会选择tomcat,但是tomcat处理静态文件的能力不是太好就会叠加选择nginx。

nginx特点:

  • 体积小
  • 处理能力强
  • 并发高
  • 可扩展性好

Nginx应用场景:

  • web服务
  • 反向代理
  • 负载均衡

Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都一样,和Nginx的最大区别在于Tenging增加了一些定制化模块,在安全限速方面表现突出,另外它支持对js,css合并

Nginx核心+lua相关的组件和模块组成了一个支持lua的高性能web容器openresty,参考http://jinnianshilongnian.iteye.com/blog/2280928

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Php-fpm相关配置

    老七Linux
  • nginx的502问题

    老七Linux
  • nginx,php-fpm配置部分小结

    老七Linux
  • LNMP架构介绍,MySQL安装, PHP安装,Nginx介绍

    叶瑾
  • linux学习第四十三篇:LNMP架构介绍,mysql安装,php安装,Nginx介绍

    LNMP架构介绍 和LAMP不同的是,提供web服务的是Nginx,并且php是作为一个独立服务存在的,这个服务叫做php-fpm,Nginx直接处理静态请求...

    用户1215343
  • Php-fpm相关配置

    老七Linux
  • C++数据个数未知情况下的输入方法

    我们经常需要输入一串数,而数据个数未知。这时候就不能以数据个数作为输入是否结束的判断标准了。

    xiaoxi666
  • 今日 Paper | 物体渲染;图像和谐化;无偏数据处理方法;面部伪造检测等

    论文名称:IGNOR: Image-guided Neural Object Rendering

    AI科技评论
  • 从旧服务器迁移svn到另一台新服务器中(linux系统)|遇到诸多坑,已解决

    1 ) 下载 subversion-1.6.11.tar.bz2 subversion-deps-1.6.11.tar.bz2 这两个文件

    小小鱼儿小小林
  • 如何搭建LNMP环境【编译版】

    www用户主要是用来赋予nginx和php执行权限,mysql主要是赋予给mysql权限,禁止登录是为了防止用户有权限去操作www和mysql,一切为了安全:

    魔王卷子

扫码关注云+社区

领取腾讯云代金券