微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

LNMP架构介绍

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

第三部:进行软件直接的结合,NginxPHP结合

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
<?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;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐