前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LNMP平台的搭建

LNMP平台的搭建

原创
作者头像
魏豪
修改2017-06-19 19:05:09
2.4K0
修改2017-06-19 19:05:09
举报
文章被收录于专栏:魏豪的专栏

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

  • 安装依赖包
代码语言:javascript
复制
[root@cc]# yum -y insstall gcc gcc-c++ make pcre pcre-devel openssl zlib
代码语言:javascript
复制
[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程序做个软连接,方便执行
代码语言:javascript
复制
[root@cc]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin   //连接

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

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

  • 启动主程序
代码语言:javascript
复制
[root@cc]# nginx
  • 关闭主程序
代码语言:javascript
复制
[root@cc]# nginx -s stop
  • 重载nginx配置
代码语言:javascript
复制
[root@cc]# nginx -s reload

Nginx默认监听本机80端口。

安装Mariadb数据库

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

安装软件包:

代码语言:javascript
复制
[root@cc]# yum -y install mariadb mariadb-server mariadb-devel

重启服务

代码语言:javascript
复制
[root@cc]# systemctl restart mariadb

Mariadb默认监听本机3306端口。

安装php软件

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

代码语言:javascript
复制
[root@cc]# yum –y install php php-mysql
[root@cc]# rpm -ivh php-fpm

php默认监听本机9000端口。

启动服务

  • nginx
代码语言:javascript
复制
[root@cc]# nginx                              //前面已经做好软连接
  • mariadb
代码语言:javascript
复制
[root@cc]# systemctl restart mariadb        
[root@cc]# systemctl enable  mariadb          //开机自启动
  • php
代码语言:javascript
复制
[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主配置文件
代码语言:javascript
复制
[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的代码
代码语言:javascript
复制
[root@cc]# vim /usr/local/nginx/html/test.php   //php初始界面
<?php
phpinfo();
?>

客户端测试:

代码语言:javascript
复制
[root@cc]# firefox http://192.168.4.5/test.php

访问页面如图2:

  • 编写测试php连接Mariadb的代码
代码语言:javascript
复制
[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>");
}
?>
...

客户端测试:

代码语言:javascript
复制
[root@cc]# firefox http://192.168.4.5/testmysql.php

测试结果如图3:

总结

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LNMP平台简介
  • 软件安装
    • 源码安装Nginx
      • 安装Mariadb数据库
        • 安装php软件
        • 启动服务
        • 建立LNMP平台
          • Nginx与php的内在联系
            • php连接Mariadb
            • 测试LNMP平台
              • 测试目标
                • 测试方案
                  • 处理步骤
                  • 总结
                  相关产品与服务
                  数据库
                  云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档