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 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Debian 8上添加和删除用户

您应该知道如何在新的Linux服务器上执行的最基本任务之一是添加和删除用户。创建新系统时,默认情况下通常只会为您提供root帐户。虽然以root用户身份运行会为...

2003
来自专栏http://www.cnblogs.com

基于CentOS安装FTP服务器

操作系统环境: CentOS Linux release 7.4.1708 (Core) 使用yum安装ftp服务: yum install -y vsftpd...

5149
来自专栏听雨堂

Android新手之旅(1) 开发环境的安装

  大致情况:安装Android开发环境,网上有很多的教程,装eclipse,jdk…别的问题都不大,最麻烦的是装sdk,因为安装是一个在线安装过程,而要安装的...

1747
来自专栏乐沙弥的世界

RPM使用简介

如转载,请注明出处:http://blog.csdn.net/robinson_0612/archive/2009/10/08/4699969.aspx

1023
来自专栏linux系统运维

NFS介绍,NFS服务端安装配置,NFS配置选项

1494
来自专栏Python

linux每日命令(3):ln命令

ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的...

1026
来自专栏linux系统运维

NFS介绍,NFS服务端安装配置,NFS配置选项

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在...

4005
来自专栏MoeLove

Composer 使用技巧简述

上述代码执行完成后, 只是下载到了 composer.phar 文件, 可以通过 php composer.phar 在任意位置执行.

705
来自专栏陈仁松博客

【译】.NET Core和.NET Standard有什么不同

近日,微软发布了.NET Core 2.0,但是开发人员中间仍然存在一些疑惑,就是.NET Core、.NET Standard、Xamarin和.NET Fr...

3956
来自专栏吴伟祥

Linux下软件的安装与管理(四) 原

Linux 下安装软件有自己的一套方式,用户可以根据自己的需要和获得的软件包的不同,选择自己喜欢的安装方式,

882

扫码关注云+社区