LNMP的搭建

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342