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环境搭建实验