设为首页 收藏本站
查看: 840|回复: 0

[经验分享] LNMP架构介绍,MySQL、PHP安装,Nginx介绍

[复制链接]

尚未签到

发表于 2018-12-12 12:57:14 | 显示全部楼层 |阅读模式
LNMP 架构介绍

  LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Nginx中的PHP是以fastcgi的方式结合Nginx的,可以理解为Nginx代理了PHP的fastcgi。



  • LNMP 工作模式
DSC0000.png



  • 和LAMP不同的是,提供web服务的是Nginx
  • 并且php是作为一个独立服务存在的,这个服务叫做php-fpm
  • Nginx直接处理静态请求,动态请求会转发给php-fpm
  • 对于静态文件处理上性能高于apache,用户并发支持很大,可以上好几万,Apache做不到

MySQL 安装


  •   下载并解压源码包
      下载包:
    [root@localhost src]# wget  http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36.tar.gz
      解压:
    [root@localhost src]# tar -zxv -f mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
      移动解压后的文件并修改文件名:
    将解压出来的mysql-5.6.35-linux-glibc2.5-x86_64 文件移动到/usr/local/目录下,并改名为mysql。
    [root@localhost src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
      切换到/usr/lcoal/mysql/目录
    [root@localhost src]# cd /usr/local/mysql/
      创建账号和/data/目录:
    [root@localhost mysql]# useradd mysql
    [root@localhost mysql]# mkdir /data/

  •   配置mysql
      [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
      #如果在安装过程中出现两个ok,则安装成功。或者使用命令echo $? 命令,输出结果为0则安装成功。结果为1则安装失败。

  •   拷贝配置文件
      配置文件的目录为:/usr/local/mysql/support-files/my-default.cnf
    [root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf

    mysql的配置文件固定放在/etc/下,并且名字为my.cnf(如果为其它目录需要去指定,否则系统只会去找/etc/my.cnf文件。)
      也不可以拷贝配置文件,直接使用现成的/etc/my.cnf 文件,编辑此文件,修改如下内容:
    datadir=/data/mysql
    socket=/tmp/mysql.sock
    注释掉这三行:

    log-error=/var/log/mariadb/mariadb.log

    pid-file=/var/run/mariadb/mariadb.pid

    !includedir /etc/my.cnf.d
  •   启动脚本
      启动脚本目录为:/usr/local/mysql/support-files/mysql.server
      将启动脚本拷贝到/etc/init.d/目录下,改名为:mysqld
    [root@localhost mysql]# cp support-files/mysql.server  /etc/init.d/mysqld
      编辑/etc/init.d/mysqld文件:
    basedir=/usr/local/mysql
    datadir=/data/mysql
    (46,47行)
      权限变更:
    将文件权限改为755(默认为755,不需要改)
    chmod 755 /etc/init.d/mysqld
      设置开机启动,将该服务加到系统服务列表中:
    [root@localhost mysql]# chkconfig --add mysqld
    [root@localhost 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:关
      还可以直接用命令启动:

    /etc/init.d/mysqld start

    service mysqld start
      [root@localhost mysql]# service mysqld start
    Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
    . SUCCESS!   #启动成功
    可以使用命令:
    ps aux | grep mysqld 查看进程
    netstat -lntp 查看监听端口
      停止mysqld服务
    service mysqld stop
      命令行的方式启动(&在后台启动):
    /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &


PHP 安装

如果之前安装过PHP,需要清除其原有的配置:
[root@localhost src]# cd php-5.6.30
[root@localhost src]# make clean

  •   下载并解压PHP
      下载包:
    [root@localhost php]# wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2
      解压包:
    [root@localhost php]# tar -jxv -f php-7.1.6.tar.bz2
      将包移动到/usr/local/下并重命名为php
    [root@localhost php]# mv php-7.1.6 /usr/local/php

  •   配置
      [root@localhost src]# cd /usr/local/php/
    [root@localhost php]#  ./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-pdo-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安装。

  •   编译和安装
      [root@localhost php]# make
    ......
      [root@localhost php]# echo $?
    0
      [root@localhost php]# make install
    ......
      [root@localhost php]# echo $?
    0

  •   查看php-fpm加载了哪些模块
      [root@localhost php]# /usr/local/php-fpm/sbin/php-fpm -m

  •   检查php-fpm配置文件
      [root@localhost php]# /usr/local/php-fpm/sbin/php-fpm -t


配置php-fpm


  •   创建php-fpm用户
      [root@localhost php]# useradd -s /sbin/nologin php-fpm


  该账号用来运行php-fpm服务,因为在LNMP环境中,PHP是以一种服务的形式独立存在的。



  •   将php配置文件添加到php-fpm配置文件目录
      [root@localhost php]# cp php.ini-production  /usr/local/php-fpm/etc/php.ini

  •   配置文件
      切换到/usr/lcoal/php-fpm/etc 目录下:
    [root@localhost php]# cd /usr/local/php-fpm/etc
      添加php-fpm.conf文件,并加入如下内容:
    [root@localhost 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
    #监听地址,也可以写:listen = 127.0.0.1::9000,本地监听,也可以监听其他IP:port
    #此处格式会影响配置Nginx和PHP结合时Nginx寻址PHP的路径
    listen.mode = 666
    #当监听的为socket文件时该部分才生效,用于指定.sock文件的权限
    user = php-fpm
    group = php-fpm
    #定义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
    #以上部分为进程相关信息
      检测配置文档是否有错误:
    [root@localhost etc]# /usr/local/php-fpm/sbin/php-fpm -t
    [02-Jan-2018 23:18:03] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful

  •   配置启动脚本
      切换到/usr/local/php/目录下
    [root@localhost etc]# cd /usr/local/php/
      将启动脚本添加到系统配置文件中:
    [root@localhost php]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
      更改文件权限:
    [root@localhost php]# chmod 755 /etc/init.d/php-fpm
      设置开机启动
    [root@localhost php]# chkconfig --add php-fpm
    [root@localhost php]# chkconfig php-fpm on
      启动php-fpm服务:
    [root@localhost php]# service php-fpm start
    Starting php-fpm  done
      查看服务是否启动成功:
    [root@localhost etc]# ps aux | grep php

    Nginx介绍

  Nginx("engine x")是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、新浪、网易、腾讯、 淘宝等。



  • Nginx 应用场景:
      web服务器、反向代理、负载均衡






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-650569-1-1.html 上篇帖子: linux的LNMP架构介绍、MySQL安装、PHP安装 下篇帖子: centos7之安装php
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表