2019独角兽企业重金招聘Python工程师标准>>>

LNMP架构介绍

  • lamp架构,linux,mysql,apache,php; p- hp是作为apache的一个模块存在,libphp5或者libphp7用来解析php,apache的提供服务的叫httpd,当一个用户登录网站的时候,apache会将请求给php模块,让它去和数据库交互。

  • lnmg架构,linx,mysql,nginx,php

  • php是作为一个独立的服务存在的,这个服务叫做php-fpm,nginx提供的服务叫nginx,当一个用户登录网站的时候,nginx会将请求交给php服务,让它去和数据库交互

  • 在静态页面的处理上,nginx会比apache更快一下,主要是底层的一些架构不同,在动态页面的处理上上,nginx并不比apache有优势

  • nginx的用户并发支持会很大,可以达到好几万,这是apache做不到的。


安装mysql

[root@linux-129 ~]# cd /usr/local/src
  1. 下载:这个是一个二进制免编译包
[root@linux-129 src]# http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
  1. 解压:
[root@linux-129 src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
  1. 移动并重命名:
[root@linux-129 src]#  mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
[root@linux-129 src]# cd /usr/local/mysql
  1. 创建mysql用户
[root@linux-129 mysql]# useradd -M mysql -s /sbin/nologin
  1. 创建数据库目录
[root@linux-129 msyql]# mkdir /data/
  1. 编译:
首先安装依赖包:perl-Data-Dumper   libaio
[root@linux-129 msyql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
  1. 拷贝启动脚本
[root@linux-129 mysql]# cp support-files/mysql.server  /etc/init.d/mysqld
  1. 编辑启动脚本
[root@linux-129 mysql]# vim /etc/init.d/mysqld
  1. 修改下面内容
basedir=/usr/local/mysql
datadir=/data/mysql
注意:如果遇到服务器上装了别的mysql,这里在启动脚本里面定义一个默认配置文件路径,因为linux系统默认的mysql配置文件路径是在/etc/my.cnf,所以这里需要指定一下

  1. 拷贝配置文件
[root@linux-129 mysql]# cp support-files/my-default.cnf /usr/local/mysql/my.cnf
  1. 编辑配置文件
basedir = /usr/local/mysql
datadir = /data/mysql
  1. 启动msql
[root@linux-129 mysql]# /etc/init.d/mysqld start
  1. 添加服务
[root@linux-129 mysql]# chkconfig --add mysqld
  1. 开机启动
[root@linux-129 mysql]# chkconfig mysqld on[root@linux-129 mysql]# chkconfig --list注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。    如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。    欲查看对特定 target 启用的服务请执行    'systemctl list-dependencies [target]'。mysqld           0:关 1:关 2:开 3:开 4:开 5:开 6:关
netconsole      0:关 1:关 2:关 3:关 4:关 5:关 6:关
network         0:关 1:关 2:开 3:开 4:开 5:开 6:关

PHP安装

cd /usr/local/src/
  1. 下载
wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
  1. 解压
tar zxf php-5.6.30.tar.gz
  1. 创建用户php-fpm
useradd -s /sbin/nologin php-fpm
[root@linux-129 php-5.6.30]# tail -3 /etc/passwd
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/sbin/nologin
php-fpm:x:1001:1001::/home/php-fpm:/sbin/nologin

cd php-5.6.30
4. 安装一个扩展源:

yum install -y  epel-release.noarch如果没有包,安装以下依赖包
yum install -y  epel-release.noarch bzip2-devel  libjpeg-turbo-devel  libpng-devel freetype-devel libtomcrypt-devel  openssl-devel  php-mcrypt  libmcrypt  libmcrypt-devel  gcc  libtool-ltdl-devel expat-devel pcre-devel  libxml2-devel  libcurl-devel
  1. 因为之前编译过php,所以这里需要清除之前编译内容
[root@linux-129 php-5.6.30]# make clean
find . -name \*.gcno -o -name \*.gcda | xargs rm -f
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp5.la sapi/cli/php sapi/cgi/php-cgi    libphp5.la modules/* libs/*
  1. 编译:
[root@linux-129 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

如果php和mysql不在同一台服务器上
编译

./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-mysqli --with-pdo-mysql --with-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 --enable-pdo --enable-mysqlnd

错误信息:

编译php后发生warning:configure:WARNING:unrecognizedoptions:--with-mysql 只是php不支持mysql模块
./configure --help 查看configure的正确语法,重新编译php支持mysql,改用--with-pdo-mysql
[root@linux-129 php-5.6.30]# yum list |grep libcurl

[root@linux-129 php-5.6.30]# yum install -y libcurl-devel

重新编译后

[root@linux-129 php-fpm]# make
[root@linux-129 php-fpm]# make install
[root@linux-129 php-fpm]# cd /usr/local/php-fpm/
[root@linux-129 php-fpm]# ls
bin  etc  include  lib  php  sbin  va[root@linux-129 php-fpm]# ls  /usr/local/php-fpm/sbin/php-fpm  //这个文件是启动文件
/usr/local/php-fpm/sbin/php-fpm 它也可以使用 -m 查看模块,-i 查看phpinfo,-t检查配置文件正确还是错误

这里报错:没有配置文件

[root@linux-129 php-fpm]#  /usr/local/php-fpm/sbin/php-fpm -t
[10-Apr-2018 16:07:44] ERROR: failed to open configuration file '/usr/local/php-fpm/etc/php-fpm.conf': No such file or directory (2)
[10-Apr-2018 16:07:44] ERROR: failed to load configuration file '/usr/local/php-fpm/etc/php-fpm.conf'
[10-Apr-2018 16:07:44] ERROR: FPM initialization failed
  1. 拷贝php的配置文件 : php.ini-production生成环境下用的,php.ini-development开发环境中用
    区别:错误日志就不一样
[root@linux-129 php-fpm]# cp /usr/local/src/php-5.6.30/php.ini-production /usr/local/php-fpm/etc/php.ini
  1. 拷贝php-fpm.conf的配置文件
[root@linux-129 php-fpm]# cd /usr/local/php-fpm/etc
[root@linux-129 etc]# ls
pear.conf  php-fpm.conf.default  php.ini     \\php-fpm.conf.default这个就是模板,这里我们直接编辑
[root@linux-129 etc]# vim 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             \\监听的地址 也可以写成ip:端口的形式
#listen = 127.0.0.1:9000     \\因为php和nginx是在同一台机器上,是在本地通信,所以这里可以是127.0.0.1,可以使用别的IP,默认端口是9000  ;这里只能使用一种监听模式,我们注释掉一个。
listen.mode = 666   \\当定义的监听是sock的时候,这个语句才会生效,定义sock的文件权限是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
  1. 拷贝php-fpm的启动脚本
[root@linux-129 etc]# cd /usr/local/src/php-5.6.30
[root@linux-129 php-5.6.30]# cp  sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@linux-129 php-5.6.30]# ls /etc/init.d/php-fpm
/etc/init.d/php-fpm
  1. 修改权限
[root@linux-129 php-5.6.30]# chmod 755 /etc/init.d/php-fpm

11 . 添加服务列表

[root@linux-129 php-5.6.30]# chkconfig --add php-fpm
  1. 开机启动
[root@linux-129 php-5.6.30]#chkconfig php-fpm on
[root@linux-129 php-5.6.30]# 注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。欲查看对特定 target 启用的服务请执行'systemctl list-dependencies [target]'。mysqld             0:关 1:关 2:开 3:开 4:开 5:开 6:关
netconsole      0:关 1:关 2:关 3:关 4:关 5:关 6:关
network         0:关 1:关 2:开 3:开 4:开 5:开 6:关
php-fpm         0:关 1:关 2:开 3:开 4:开 5:开 6:关
  • 检查配置文件是否正确
[root@linux-129 php-5.6.30]# /usr/local/php-fpm/sbin/php-fpm -t
[10-Apr-2018 16:39:37] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
  1. 启动服务
[root@linux-129 php-5.6.30]# service php-fpm start
Starting php-fpm  done
  1. 查看进程
[root@linux-129 php-5.6.30]# ps aux |grep php-fpm

Nginx介绍

• Nginx官网 nginx.org,最新版1.13,最新稳定版1.12 • Nginx应用场景:web服务、反向代理、负载均衡 反向代理一台机器叫反向代理,代理2台机器就叫做负载均衡 • Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都一样,和Nginx的最大区别在于Tenging增加了一些定制化模块,在安全限速方面表现突出,另外它支持对js,css合并 • Nginx核心+lua相关的组件和模块组成了一个支持lua的高性能web容器openresty,参考http://jinnianshilongnian.iteye.com/blog/2280928

  • lua是一种开发语言;
  • java做的网站一半都是用过的nginx,因为java中tomcat在处理静态文件的时候比较差,nginx在处理静态文件效率比较高;
  • nginx本身的功能比较少,但是它可以扩展一些第三方模块进来;比如:支持https等

转载于:https://my.oschina.net/u/3866516/blog/1933189

12.1-12.5 LNMP架构介绍 , MySQL安装 , PHP安装, Nginx介绍相关推荐

  1. lnmp架构之mysql部署

    在前面的操作中(之前的文章),我们已经手动配置好了nginx的负载均衡服务器,后端配置有两个RS:在nginx调度服务器上使用php源码编译安装了php,使用nginx发布了php页面,同时为了减轻数 ...

  2. 电商平台 lnmp 架构之 mysql 高速缓存--redis

    电商平台 lnmp 架构之 mysql 高速缓存 --redis 1. redis的介绍 2. redis服务的安装 3. Redis常用命令 4. Redis异步复制 5. Redis高可用 6. ...

  3. lnmp架构搭建—源码编译(nginx、mysql、php)

    含义及理解: LNMP = Linux+Nginx+Mysql+PHP:LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写.L指Linux,N指Nginx,M一般指MySQL ...

  4. LNMP架构环境搭建之PHP、Nginx源码编译安装及其简单配置应用

    LNMP架构中的Mysql见上一篇博文"LNMP架构环境搭建之mysql源码编译安装" 一.PHP简介 PHP(外文名:PHP: Hypertext Preprocessor,中文 ...

  5. mysql数据库表的类型介绍,mysql数据库表的类型介绍

    前言 之前我们讲了下载安装数据库,还有如何卸载(虽然直接重装系统就好) 那么现在让我们来讲讲 """ 1.数据库与表的剩余操作 编码配置.引擎介绍 2.数据库字段的操作 ...

  6. LNMP架构详解(2)——Mysql、PHP、Nginx源码编译过程

    前言 本文将介绍LNMP架构中Mysql.PHP.Nginx的源码编译过程:这时有人不仅会问:在我们使用的Linux系统中,可以从yum源中获得mysql.php,为什么要进行如此漫长复杂的过程进行编 ...

  7. lnmp架构mysql500是什么原因_LNMP架构介绍

    LNMP架构 LNMP架构介绍 1)使前端web服务和后端存储服务进行串联 2)主要实现处理PHP程序动态请求 LNMP的工作原理 LNMP: L:表示linux N:表示Nginx M:表示mysq ...

  8. Redis集群——利用Gearman在Lnmp架构中做MySQL的缓存服务器

    一.概述 Redis的集群主要是使用切片技术来搭建的,简单来说就是把所有KEY分散存放到不同的redis节点上(不要把鸡蛋都放在一个篮子里). 1. 集群基本原理 Redis集群中内置了16384个槽 ...

  9. 部署LNMP架构及其应用

    部署企业LNMP架构 (一)首先安装nginx服务,具体请见另一篇关于nginx的博文. (二)安装MySQL数据库 1.安装前准备 [root@localhost ~]# rpm -e mysql- ...

  10. 企业级LNMP架构搭建实例(基于Centos6.x)

    1.1 部署LNMP架构说明 1.1.1 LNMP架构内容 01.部署linux系统 02.部署nginx网站服务 03.部署mysql数据库服务 04.部署php动态解析服务 1.1.2 配置LNM ...

最新文章

  1. 斐波那契数列及青蛙跳台阶问题
  2. java Map 怎么遍历
  3. POJ 1655 Balancing Act[树的重心/树形dp]
  4. 【若依(ruoyi)】datetimepicker日期和时间插件
  5. SAP UI5和微信小程序对比之我见
  6. java面向对象:关键字 —(16)
  7. 岛国人气美少女竟然每晚跟 3 个人通宵打麻将?
  8. 光盘刻录只允许读取不能拷贝_原来 8 张图,就可以搞懂「零拷贝」了
  9. Unity 官方网站
  10. npm和angular_如何开发,使用和发布Angular库到NPM
  11. Java自学之路(新手一定要看)
  12. Bean property 'preFix' is not writable or has an invalid setter method
  13. poj 1287 Networking (最小生成树Kruskal算法)
  14. Windows 使用 CMD 命令行下载文件
  15. 【精选】VI手册设计模板合集,附带源文件、预览图、精细分类
  16. 金蝶k/3 现金流量表编制口诀
  17. APP推广渠道分析:5种方法和2种思路
  18. Spring的核心技术(四)---依赖性简介
  19. python 跨知乎app发私信以及Python专栏30万用户信息爬取
  20. 微信公众账号的订阅号与服务号有什么区别?

热门文章

  1. react中的虚拟DOM
  2. Android的Theme主题切换
  3. python从列表某位置开始读取_python如何读取列表中元素的位置?
  4. 福昕pdf虚拟打印机_福昕扫描王将取代扫描仪,OCR文字识别应用办公标配
  5. java 循环读取指定文件夹下所有文件
  6. PHP统计订单表,订单售后表金额
  7. php生产txt_PHP生成TXT资料
  8. mysql用 fifo 记录日志_Python学习第四十七天记录打call:mysqlclient操作MySQL关系型数据库...
  9. LINUX编译autoconf
  10. 全网首发:SHELL多个判断条件,不会短路