美文网首页
LNMP的搭建

LNMP的搭建

作者: Linux_淡忘 | 来源:发表于2019-05-05 23:57 被阅读0次

    LNMP就是

     Linux作为服务器的操作系统
     Nginx作为Web服务器
     PHP作为解析动态脚本语言
     MySQL即为数据库
    

    Nginx服务本身不能处理PHP的请求,那么当用户发起PHP动态请求, Nginx又是如何进行处理的。
    有两种方法:
    1.将PHP页面的解析请求转发给Apache处理
    2.将PHP页面的解析请求转发给php-fpm模块
    用户–>http协议–>Nginx–>fastcgi–>php-fpm

    1.用户通过http协议发起请求,请求会先抵达LNMP架构中的Nginx
    2.Nginx会根据用户的请求进行判断,这个判断是有Location进行完成
    3.判断用户请求的是静态页面,Nginx直接进行处理
    4.判断用户请求的是动态页面,Nginx会将该请求交给fastcgi下发
    5.fastgi会将请求交给php-fpm管理进程, php-fpm管理进程接收到后会调用具体的工作线程wrapper
    6.wrapper线程会调用php进行解析,如果只是解析代码php直接返回
    7.如果有查询数据库操作,则由php连接数据库(用户 密码 IP)然后发起查询的操作
    8.最终数据由mysql->php->php-fpm->fastcgi->nginx->http->user

    下面开始实践:
    这里使用的软件版本为:Nginx 1.16 MySQL 5.6 PHP 7.1

    一.N

    首先安装nginx服务

    yum install nginx -y
    

    第二步:设置开机自启

    systemctl start nginx
    systemctl enable nginx
    

    二.M

    1.下载MySQL官方扩展源

    [root@nginx ~]# rpm -ivh http://repo.mysql.com/yum/mysql-5.6-community/el/7/x86_64/mysql-community-release-el7-5.noarch.rpm
    

    2.安装

    yum install mysql-community-server -y
    

    3.启动数据库, 并加入开机自启动

    [root@nginx ~]# systemctl  start mysqld
    [root@nginx ~]# systemctl enable mysqld
    

    4.登录数据库和重置数据库密码

    [root@web01 ~]# mysql -u root
    ……
    mysql> 
    mysql> exit
    ###5.6默认无密码
    ###为了安全,必须给root设置密码
    [root@nginx ~]# mysqladmin -u root password 123456
    如果已经有密码,再次修改
    [root@web01 ~]# mysqladmin -u root -p123456 password 123321
    

    6.使用密码登陆mysql

    [root@web01 ~]# mysql -u root -p123321
    …
    mysql> 
    ###此步为检查密码
    

    三.P

    1.移除旧版php(之前有通过Base或epel库安装过php的,必须执行这个操作)

    yum remove php-mysql-5.4 php php-fpm php-common
    

    2.安装扩展源

    [root@nginx ~]# yum localinstall -y http://mirror.webtatic.com/yum/el7/webtatic-release.rpm                    
     <=====自己做了rpm包,所以yum localinstall安装
    

    3.安装php7.1版本

    [root@nginx ~]# yum -y install php71w php71w-cli php71w-common php71w-devel \
    php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm \
    php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
    yum localinstall -y *.rpm
    进入/etc/yum.repos.d/
    vim webtatic.repo
    

    4.启动php-fpm管理进程, 并加入开机自启

    [root@nginx ~]# systemctl start php-fpm
    [root@nginx ~]# systemctl enable php-fpm
    

    四:组合

    验证Nginx是否能正常解析php动态请求,以及php程序能否正常连接数据库
    1.创建一个测试站点

    [root@nginx /application/nginx/conf/extra]# cat /application/nginx/conf/extraphp.conf 
    server {
            server_name www.oldboy.com;
            listen 80;
            root  html/php;
            index index.php index.html;
    
            location ~ \.php$ {
                    root  html/php;
                    fastcgi_pass   127.0.0.1:9000;
                    fastcgi_index  index.php;
                    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                    include        fastcgi_params;
            }
    }
    ###这里目录都为yum安装后的目录(仅供参考)
    

    2.新增info.php, 测试php解析是否工作正常

    [root@web01 ~]# cat /application/nginx/html/php/index.php
    <?php
            phpinfo();
    ?>
    

    3.测试php是否能连接mysql数据库服务[无论是本地数据库还是远程数据库,测试方式一致

    [root@web01 ~]# cat /code/mysqli.php
    <?php
            $servername = "localhost";
            $username = "*********";                       #####用户名
            $password = "*********";                       #####用户密码
    
            // 创建连接
            $conn = mysqli_connect($servername, $username, $password);
    
            // 检测连接
            if (!$conn) {
                die("Connection failed: " . mysqli_connect_error());
            }
            echo "连接成功";
    ?>
    
    

    五:部署博客(wordpress)

    1.配置Nginx虚拟主机站点,域名为blog.zyl666.com

    [root@web01 conf]# cat blog.conf 
    server {
        listen 80;
        server_name blog.zyl666.com;
        root conf/wordpress;
        index index.php index.html;
    
        location ~ \.php$ {
            root  conf/wordpress;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
    

    2.获得wordpress源码

    wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
    

    3.解压网站源码文件,拷贝至对应站点目录,并授权站点目录

    [root@nginx tools]# tar xf wordpress-4.9.4-zh_CN.tar.gz
    [root@nginx tools]# mv wordpress /application/nginx/conf/
    

    4.重载nginx和php-fpm

    systemctl reload nginx php-fpm
    

    5.由于wordpress产品需要依赖数据库, 所以需要手动建立数据库

    [root@web01 conf]# mysql -u root -p*******  <====这里的密码为自己那会设置的密码
    mysql> create database wordpress;
    Query OK, 1 row affected (0.00 sec)
    mysql> exit
    Bye
    

    wordpress进去后会提示让你创一个文件里面键入内容,直接把提示的内容放进去就可以,如果想上传图片,需要给wordpress底下的目录wp-content提权

    附赠本人结果图片:


    image.png

    相关文章

      网友评论

          本文标题:LNMP的搭建

          本文链接:https://www.haomeiwen.com/subject/tpfkoqtx.html