微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

LNMP基础知识及简单搭建用于个人学习与回顾

一. 什么是LNMP
   首先LNMP是目前主流的网站平台之一
    * L:Linux操作系统
    * N:Nginx网站服务软件
    * M:MysqL、MariaDB数据库
    * P:网站开发语言(PHP、Perl、Python)


二.FastCGI工作原理

  

fastcgi.PNG

  工作流程:

    @H_404_22@

    web 服务端启动时将加载FastCGI进程管理器

    @H_404_22@

    FastCGI进程管理器初始化,启动多个解释器进程

    @H_404_22@

    客户端请求到达服务端时,FastCGI进程管理器选择并连接一个解释器

    @H_404_22@

    FastCGI子进程完成处理后返回结果,将标准输出错误信息同时连接返回服务端

  FastCGI简介:

    FastCGI技术目前支持许多语言:PHP、C/C++、Java、Ruby、Python等。

    FastCGI缺点是因为并发大而导致的内存消耗大。


-----


二. 部署LNMP环境
  2.1 环境需求
    安装部署Nginx、MariaDB、PHP环境
      *  安装部署Nginx、MariaDB、PHPPHP-FPM;
      *  启动Nginx、MariaDB、FPM服务;
      *  并测试LNMP是否工作正常。
 
  2.2 实验使用方案
    在RHEL7系统中,源码安装Nginx,使用RPM包安装MariaDB、            PHPPHP-FPM软件。
    操作过程中需要安装的软件列表如下:
     * Nginx
     * mariadb、mariadb-server、mariadb-devel
     * PHPPHP-fpm、PHP-MysqL
 
  2.3 实验步骤
   步骤一:软件包安装
    1).使用yum安装基础依赖包

   [root@proxy ~]# yum -y install gcc openssl-devel pcre-devel zlib-devel


   2).使用源码安装Nginx

   [root@proxy ~]# useradd -s /sbin/nologin  Nginx
   [root@proxy ~]# tar -xvf Nginx-1.12.2.tar.gz
   [root@proxy ~]# cd Nginx-1.12.2
   [root@proxy Nginx-1.12.2]# ./configure  --user=Nginx   --group=Nginx  --with-http_ssl_module
   [root@proxy ~]# make && make install

  

  3).yum安装MariaDB、PHPPHP-fpm        

   [root@proxy ~]# yum -y install   mariadb   mariadb-server   mariadb-devel
   [root@proxy ~]# yum -y  install  PHP   PHP-MysqL
   [root@proxy ~]# yum -y  install PHP-fpm-5.4.16-42.el7.x86_64.rpm


步骤二:启动服务
  1).启动Nginx服务
     需要注意的是Nginx使用的端口与httpd服务端口相同,所以先要停止httpd服务。 

   [root@proxy ~]# systemctl stop httpd            //如果未开httpd服务则可不用此命令
   [root@proxy ~]# /usr/local/Nginx/sbin/Nginx  
   [root@proxy ~]# netstat -utnlp | grep :80
    tcp    0    0 0.0.0.0:80        0.0.0.0:*        LISTEN        24679/Nginx


   2).启动MysqL服务、PHP-FPM服务

   [root@proxy ~]# systemctl start  mariadb           //启动服务器
   [root@proxy ~]# systemctl status mariadb           //查看服务状态
   [root@proxy ~]# systemctl enable mariadb           //设置开机启动
   [root@proxy ~]# systemctl start PHP-fpm           
   [root@proxy ~]# systemctl status PHP-fpm          
   [root@proxy ~]# systemctl enable PHP-fpm

    3).设置防火墙与SELinux   

   [root@proxy ~]# firewall-cmd --set-default-zone=trusted
   [root@proxy ~]# setenforce 0


至此LNMP所有的安装与基本环境部署均已完成~


三.构建LNMP平台实验

  2.1 环境需求

使用上述实验环境,通过配置Nginx服务端配置,达成LNMP的平台:

    @H_404_22@

    配置Fast-CGI支持PHP网页

    @H_404_22@

    创建PHP测试页面,测试使用PHP连接数据库效果 

  2.2 实验使用方案
      使用2台RHEL7虚拟机,其中一台作为LNMP服务器(192.168.2.5)、另外一台作为测试用的Linux客户机(192.168.2.100)。

    

nginx新.jpg

 

  2.3 实验步骤

      步骤一:启动PHP-fpm配置文件    

   [root@proxy ~]# systemctl start PHP-fpm         //启动服务
   [root@proxy ~]# systemctl status  PHP-fpm

     步骤二:修改Nginx配置文件并启动服务

   [root@proxy ~]# vim /usr/local/Nginx/conf/Nginx.conf
   location / {
            root   html;
   index  index.PHP  index.html   index.htm;
        }
   location  ~  \.PHP$  {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
   fastcgi_index  index.PHP;
            #fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi.conf;
        }
   [root@proxy ~]# /usr/local/Nginx/sbin/Nginx -s reload

    步骤三:创建PHP页面,测试LNMP架构能否解析PHP页面

1)创建PHP测试页面1,测试PHP页面能否访问

[root@proxy ~]# vim /usr/local/Nginx/html/PHPtest1.PHP
<?PHP
$i="hello world";
echo $i;
?>

当此页面可以访问时,则可继续下面操作


2)创建PHP测试页面2(该页面可测试是否连接数据库成功)

[root@proxy ~]# vim /usr/local/Nginx/html/MysqLtest2.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>");
}
?>

3)测试访问页面

[root@client ~]# firefox http://192.168.2.5/MysqLtest2.PHP

lnmp.PNG

当web出现该页面时则表示已经成功连接数据库!!



LNMP常见问题(可用于排错)

     Nginx认访问日志文件/usr/local/Nginx/logs/access.log

     Nginx错误日志文件/usr/local/Nginx/logs/error.log

     PHP错误日志文件/var/log/PHP-fpm/www-error.log

   


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐