LNMP介绍

LNMP构架,即 Linux + Nginx + MySQL + PHP 组成的动态网站解决方案。L指代Linux操作系统,不仅可以是RHEL、CentOS等等,还合一是Debian、Ubuntu等系统;Nginx作为Web服务器,负责实现与用户浏览器的交互;PHP是处理网站后端业务逻辑的一种脚本编程语言,是web开发的主流语言之一;MySQL负责存储和管理网站的数据库。这样就组成了一个完整的动态网站的运行环境。

logo

 

 

目的:在CentOS7.x系统上安装Nginx和PHP解释器;搭建Nginx+PHP环境,实现一个基本的动态网站运行环境。

 

 

实验流程


对于Nginx而言,PHP是一个外部程序而不是Nginx内部模块。Nginx需要通过CGI接口程序来实现与PHP程序的交互,进而将php响应的文件交给用户浏览器。这样就实现了动态网站的基本流程。FastCGI就是这样一种接口,通过php-fpm来管理,换句话说php-fpm就是FastCGI的进程管理器。

 

 

搭建Nginx静态服务器

之前有过写一篇文章:https://blog.csdn.net/feit2417/article/details/84982264

完成后通过浏览器可以访问到

 

搭建PHP环境


1.安装php以及相关工具

[root@VM_16_8_centos ~]# yum install php php-fpm php-mysql -y


3.安装完成,查看版本

[root@VM_16_8_centos ~]# php -v
PHP 5.4.16 (cli) (built: Oct 30 2018 19:30:51)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

如果嫌版本太低,这里有一篇php7版本的安装方法:https://blog.csdn.net/feit2417/article/details/85015690


4.启动PHP-FPM进程并加入开机启动项

[root@VM_16_8_centos ~]# systemctl start php-fpm
[root@VM_16_8_centos ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.

5.启动之后,可以使用下面的命令查看 PHP-FPM 进程监听哪个端口 

[root@VM_16_8_centos ~]# netstat -nlpt | grep php-fpm
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      12566/php-fpm: mast

可以看出,这里占用了是本机(127.0.0.1)的9000 tcp端口

 


配置Nginx运行PHP程序

1.编写nginx子配置文件 php.conf

[root@VM_16_8_centos ~]# cd /etc/nginx/conf.d
[root@VM_16_8_centos conf.d]# touch php.conf
[root@VM_16_8_centos conf.d]# vim php.conf
server {
        listen 80;
        server_name www.benmoom.club;
        root html/php;
        index index.html index.php;
        location ~\.php$ {
                fastcgi_pass 127.0.0.1:9000;
                include fastcgi.conf;
        }
}

[root@VM_16_8_centos conf.d]# systemctl restart nginx

从配置文件中,server块表示一个站点。在index指令后面加上了index.php参数表述索引文件,location规则是匹配所有.php结尾的请求。当用户浏览器访问该站点时,产生index.php的请求,然后将请求发送给监听本机(127.0.0.1)9000端口的FastCGI程序(即PHP);fastcgi.conf文件描述了双方通信必要的环境信息。

 


2.创建目标文件编写.php代码

[root@VM_16_8_centos conf.d]# cd /usr/share/nginx/html
[root@VM_16_8_centos conf.d]# mkdir php
[root@VM_16_8_centos html]# cd php
[root@VM_16_8_centos php]# touch index.php
[root@VM_16_8_centos php]# vim index.php
<?php phpinfo(); ?>

当用户请求该php程序时,程序将phpinfo()函数的返回结果响应给用户。


3.查看实验效果

 

 


参考书籍 《Nginx高性能Web服务器实战教程》
参考链接 腾讯云 -- LNMP环境搭建实验