简介
1、LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。
2、LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
3、电子商务网站、论坛、博客、视频等等的动态网站中,都需要一个能够支持动态网站的web环境,LNMP环境是集合了Linux+Nginx+Mysql+PHP,LNMP类似与LAMP环境,不过把Apache替换成了Nginx,在处理高并发时更具优势
特点
Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler 站点开发的,已经在一些俄罗斯的大型网站上运行多年,相当的稳定。
Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。
优点
1、作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。
2、作为负载均衡服务器:Nginx 既可以在内部直接支持Rails和PHP,也可以支持作为 HTTP代理服务器对外进行服务。Nginx 用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。
3、作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。
Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级。
什么是Fast-CGI
Fast-CGI是一个可伸缩的、高速的在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持Fast-CGI,包括Apache、Nginx和lighttpd等。同时,Fast-CGI也被许多脚本语言支持,其中就有PHP。 Fast-CGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后将结果返回给HTTP服务器。这在处理高并发访问时几乎是不可用的。另外传统的CGI接口方式安全性也很差,现在已经很少使用了。 FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给Fast-CGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。
安装环境
准备一台Centos服务器
系统: Centos7.5
内存: 1G
cpu: 1核
IP地址:10.0.0.47
关闭iptables和SELinux
#关闭防火墙
[root@ localhost ~]# systemctl stop firewalld
#关闭selinux安全策略机制
[root@ localhost ~]# setenforce 0
setenforce: SELinux is disabled
lrzsz是一款在linux里可代替ftp上传和下载的程序。
#安装插件
yum -y install lrzsz
#使用rz命令上传Nginx源码包
rz
安装Nginx依赖的库环境
yum -y install gcc gcc-c++ zlib-devel pcre-devel
#解压Nginx源码包
tar zxf nginx-1.12.0.tar.gz -C /usr/local/src/
切换到nginx目录下
cd /usr/local/src/nginx-1.12.0/
#编译并进行安装
./configure && make && make install
#启动Nginx服务
/usr/local/nginx/sbin/nginx
#查看Nginx的端口
[root@ localhost ~]# netstat -anput |grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 31468/nginx: master
#查看Nginx进程
[root@ localhost ~]# ps -ef |grep nginx
root 31468 1 0 20:43 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 31469 31468 0 20:43 ? 00:00:00 nginx: worker process
root 31746 27509 0 20:47 pts/0 00:00:00 grep --color=auto nginx
安装Mysql,启动MySQL服务并将MySQL设置为开机自动启动
#安装mysql服务
yum -y install mariadb mariadb-server
#启动mysql服务,并设置mysql服务为开机自动启动
[root@ localhost conf]# systemctl start mariadb
[root@ localhost conf]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
安装php相关组件,以及php-fpm服务,并将php-fpm服务器设置为开机自动启动
#查看mysql的相关包
[root@ localhost ~]# rpm -qa |grep mariadb
mariadb-5.5.64-1.el7.x86_64
mariadb-server-5.5.64-1.el7.x86_64
mariadb-libs-5.5.64-1.el7.x86_64
#安装php相关组件
yum -y install php php-fpm php-mysql
[root@ localhost ~]# rpm -qa |grep php
php-cli-5.4.16-46.1.el7_7.x86_64
php-fpm-5.4.16-46.1.el7_7.x86_64
php-common-5.4.16-46.1.el7_7.x86_64
php-pdo-5.4.16-46.1.el7_7.x86_64
php-5.4.16-46.1.el7_7.x86_64
php-mysql-5.4.16-46.1.el7_7.x86_64
#启动php,并设置php服务为开机自动启动
[root@ localhost ~]# systemctl start php-fpm
[root@ localhost conf]# 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.
# 测试9000端口监听是否成功
[root@ localhost ~]# netstat -antp |grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 27889/php-fpm: mast
配置Nginx和PHP的整合
#编辑修改nginx的配置文件,修改完后保存退出
vim /usr/local/nginx/conf/nginx.conf
新建php测试页面,浏览器访问测试
vim /usr/local/nginx/html/index.php
#编写如下内容
cat /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
之后重启Mysql数据库、PHP、Nginx服务即可
#重启Nginx服务
/usr/local/nginx/sbin/nginx -s reload
#重启数据库、php服务
systemctl restart mariadb php-fpm