LNMP平台的搭建

LNMP平台简介

LNMP指的是多款软件的集合。L指的是Linux系统,N指的是Nginx网站服务器,M指的是Mariadb数据库软件,P指的是php软件。Linux目前是一款最流行的免费开源的操作系统。Nginx可以做为高性能的HTTP和反向代理服务器,也可以作为IMAP/POP3/SMTP代理服务器。

关于Nginx学习与入门,可参考本人下面这篇文章,详细介绍了Nginx相关知识【https://www.qcloud.com/community/article/593436 】。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

软件安装

源码安装Nginx

  • 安装依赖包
[root@cc]# yum -y insstall gcc gcc-c++ make pcre pcre-devel openssl zlib
[root@cc]# tar -xf  nginx-1.8.0.tar.gz -C /usr/local/    //解包
[root@cc]# cd /usr/local/nginx-1.8.0
[root@cc]# ./configure --with-http_ssl_module            //配置
[root@cc]# make                                          //编译
[root@cc]# make install                                  //安装
  • 将nginx程序做个软连接,方便执行
[root@cc]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin   //连接

Nginx软件包采用的是模块化的设计,模块分为内置模块和第三方模块。

Nginx服务器安装好之后,程序的主目录在/usr/local/nginx下,该目录下分别为conf(主配置文件目录),html(网页根目录),logs(日志文件目录),sbin(主程序目录)。Nginx默认无执行脚本,需要手动输入命令来管理。常用的命令如下:

  • 启动主程序
[root@cc]# nginx
  • 关闭主程序
[root@cc]# nginx -s stop
  • 重载nginx配置
[root@cc]# nginx -s reload

Nginx默认监听本机80端口。

安装Mariadb数据库

Mariadb:多线程,多用户的SQL数据库管理系统。软件包:mariadbmariadb-server;服务:mariadb

安装软件包:

[root@cc]# yum -y install mariadb mariadb-server mariadb-devel

重启服务

[root@cc]# systemctl restart mariadb

Mariadb默认监听本机3306端口。

安装php软件

PHP: 一种编程语言,最初用于设计生产动态网站。与PERL,PYTHON类似。软件包:php php-mysql php-fpm。php-fpm软件用来连接nginx。php-mysql用来连接数据库。

[root@cc]# yum –y install php php-mysql
[root@cc]# rpm -ivh php-fpm

php默认监听本机9000端口。

启动服务

  • nginx
[root@cc]# nginx                              //前面已经做好软连接
  • mariadb
[root@cc]# systemctl restart mariadb        
[root@cc]# systemctl enable  mariadb          //开机自启动
  • php
[root@cc]# systemctl restart php-fpm
[root@cc]# systemctl enable  php-fpm

建立LNMP平台

Nginx与php的内在联系

Nginx只能处理静态的页面请求,php处理动态页面请求。当用户连接Nginx80端口时,首先由Nginx判断请求是静态还是动态,若是静态页面,Nginx直接将请求结果返回给客户机;若是动态页面,则nginx将请求转交给本机的9000端口。php监听本机9000端口,正好由php解释器去处理动态页面。最终将请求结果返回给Nginx,再由Nginx将结果返回给客户端。

php连接Mariadb

php连接Mariadb数据库,进行数据的读取。

测试LNMP平台

测试目标

  • 配置Fast-CGI支持PHP网页
  • 创建PHP测试页面,测试使用PHP连接数据库的效果

测试方案

使用2台RHEL7虚拟机,其中一台作为LNMP服务器(192.168.4.5)、另外一台作为测试用的Linux客户机(192.168.4.100),如图-1所示。

处理步骤

  • 确认所有服务已经启动
  • [root@cc]# netstat -anutp | grep 80 //Nginx [root@cc]# netstat -anutp | grep 3306 //Mariadb [root@cc]# netstat -anutp | grep 9000 //php
  • 修改Nginx主配置文件
[root@cc]# vim /usr/local/nginx/conf/nginx.conf 
location / {
            root   html;
            index  index.php  index.html   index.htm;
           }
 location  ~  \.php$  {                //修改Nginx连接php的配置部分
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include        fastcgi.conf;
        }
  • 编写测试php的代码
[root@cc]# vim /usr/local/nginx/html/test.php   //php初始界面
<?php
phpinfo();
?>

客户端测试:

[root@cc]# firefox http://192.168.4.5/test.php

访问页面如图2:

  • 编写测试php连接Mariadb的代码
[root@cc]# vim /usr/local/nginx/html/testmysql.php
...
vim /usr/local/nginx/html/test3.php
<?php
$mysqli = new mysqli('localhost','root','','mysql');
if (mysqli_connect_errno()){
    die('Unable to connect!'). mysqli_connect_error();
}
$sql = "select * from user";
$result = $mysqli->query($sql);
while($row = $result->fetch_array()){
    printf("Host:%s",$row[0]);
    printf("</br>");
    printf("Name:%s",$row[1]);
    printf("</br>");
}
?>
...

客户端测试:

[root@cc]# firefox http://192.168.4.5/testmysql.php

测试结果如图3:

总结

  1. php-fpm扩展包用来连接Nginx和php,没有它,LNMP平台搭建失败。php-mysql用来连接php和mysql,同样不可或缺少。
  2. 启动Nginx服务时,若服务无法启动,则检查是否本机80端口被某种服务占用。检查是否由语法错误。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.4K7
来自专栏杨龙飞前端

scrollto 到指定位置

2984
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

3025
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

39410
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2787
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2946
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

7306
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

3000
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

3318
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4425

扫码关注云+社区