当前位置: 首页 > news >正文

apache和nginx解析php和lnmp和lamp搭建

讲什么

  • apache 处理php请求的2种方式,也就是动态处理资源的方式

  • lamp搭建wordpress

  • lnmp搭建discuss论坛

web服务

1、web服务访问流程

  • 用户通过浏览器访问web服务器发送请求

  • 服务器收到请求后,如果为静态资源的话,从本地进行读取

  • 如果是动态资源的话,则将请求转发给对应的应用程序模块

  • 应用程序模块交给对应的应用程序

  • 最后返回给web,最终返回给浏览器

2、应用程序网关接口

  • fastcgi就是一个web服务器和外部程序进行交互的一个协议或者接口,CGI 的主要作用是允许 Web 服务
    器调用外部程序来处理客户端的请求,并将处理结果返回给客户端

  • FASTCGI:增强版的CGI

    • 传统的 CGI协议每次处理一个请求都会创建一个新的进程,执行动态内容生成器中的脚本,并在处理完成后关闭进程。

    • 这种方式效率低下,因为每个请求都需要创建和销毁进程,会造成很大的系统开销。而 FastCGI 协议则通过一种持久连接的方式解决

  • CGI 的工作流程:

    • 客户端发送请求给 Web 服务器,例如请求一个php的动态网页。

    • Web 服务器收到请求后,根据请求的 URL 找到对应的 CGI的程序,如将请求交给php的后端程序。

    • php程序执行相应的处理。

    • CGI 将php程序处理结果返回给 Web 服务器。

    • Web 服务器将处理结果发送给客户端,客户端在浏览器中显示

apache动态资源配置(php为例)

1、处理的2种模式

  • 第一种:交给web服务器自身的模块来完成,必须是prefork模式下

  • 第二种:交给第三方的服务器完成,php-fpm服务,event模式下

    • 也就是交给了cgi,应用程序的网关接口,就是一个api地址

    • cgi主要就允许web服务器调用外部的来处理客户端的请求,并将结果返回给客户端

2、通过自身模块来实现解析php

1、修改httpd的php的工作模式

[root@node1 conf.modules.d]# pwd
/etc/httpd/conf.modules.d
[root@node1 conf.modules.d]# grep prefork.so 00-mpm.conf 
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

2、在httpd.conf中添加参数

  • 这些参数可以安装php-fpm后,会生成一个php.conf文件,进行拷贝
# phpconfig
AddType text/html .php   # 添加php的文件类型
DirectoryIndex index.php  # php的首页文件,默认去寻找的<FilesMatch \.(php|phar)$>  # 只要是以.php的文件都成为php的类型,SetHandler application/x-httpd-php
</FilesMatch><IfModule prefork.c>  # 加载php模块#LoadModule php7_module modules/libphp.so  LoadModule php_module modules/libphp.so  # 还需要将/etc/httpd/conf.modules.d/15-php.conf  也需要注释掉,不然会报错的# 7这个版本太低了
</IfModule>

3、测试

  • 创建php文件
[root@node1 html]# pwd
/var/www/html
[root@node1 html]# cat test.php 
<?php
phpinfo()
?>
  • 浏览器访问,这个php是8版本的

img

  • 解析php成功了

3、通过第三方软件来实现解析php(php-fpm服务)

  • 将上面的配置注释掉,避免环境影响

img

  • 出现这个表示环境清理成功了,无法解析php

  • 这个php-fpm,安装后,启动服务,就能自动的解析php

  • 这个php-fpm有2种启动的方式

    • 第一种就是下面说的通过套接字运行

    • 第二种通过监听端口来实现

1、安装必要的软件包

  • php
yum -y install php[root@node1 conf.d]# rpm -qc php
/etc/httpd/conf.d/php.conf
/etc/httpd/conf.modules.d/15-php.conf

2、修改php的工作模式

[root@node1 conf.modules.d]# pwd
/etc/httpd/conf.modules.d
vim 00-mpm.conf
LoadModule mpm_event_module modules/mod_mpm_event.so# 重启服务
[root@node1 conf.modules.d]# systemctl restart php-fpm
[root@node1 conf.modules.d]# systemctl restart httpd

3、浏览器访问

img

  • 这样就是实现了解析php了

4、php-fpm启动模式

  • 第一种通过监听套接字
[root@node1 php-fpm.d]# grep www.sock www.conf 
listen = /run/php-fpm/www.sock# php.conf文件中定义了监听套接字来实现
<FilesMatch \.(php|phar)$>SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>
  • 第二种通过监听端口来实现

5、php-fpm通过监听端口来实现

# php.conf 修改<FilesMatch \.(php|phar)$>#SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"SetHandler "proxy:fcgi://127.0.0.1:9000"</FilesMatch># php-fpm配置文件修改
[root@node1 php-fpm.d]# pwd
/etc/php-fpm.dvim www.conf
;listen = /run/php-fpm/www.sock  # 这个文件;表示注释
listen = 9000
  • 启动服务
systemctl restart php-fpm
systemctl restart httpd# 查看端口
[root@node1 php-fpm.d]# netstat -pant|grep 9000
tcp6       0      0 :::9000                 :::*                    LISTEN      3396/php-fpm: maste 
  • 浏览器访问

img

http://www.jsqmd.com/news/41312/

相关文章:

  • hippy字节都在用的前端主流框架
  • springboot多模块报错分析(一) - f
  • 身为大厂前端的你,不能不知道Babel + Polyfill!
  • 跨域问题解决方案汇总
  • Access-Control-Allow-Origin 在企业中的用法
  • VUE_basic - Ref
  • 详细介绍:像素退场,曲线登场:现代响应式 CSS 全家桶 | 领码课堂
  • HTTPS 究竟比 HTTP 好在哪?
  • 小苯的因子查询
  • 详细介绍:MongoDB 自动化脚本安装方案
  • Linux网络--6、网络层 - 详解
  • 原型理解从入门到精通
  • 2025-11-15
  • 2025.11.15博客
  • Pandas - read_html()
  • 实用指南:Linux企业级解决方案架构:字节跳动短视频推荐系统全链路实践
  • 实用指南:PyTorch DataLoader 高级用法
  • 简单做一个舒尔特方格小游戏
  • C语言新手怎么快速掌握
  • RSS and Atom
  • Wi-Fi FTM(Fine Timing Measurement)简介
  • 通用会话控制方案
  • LISTAGG 用于将多行数据聚合为单行字符串(拼接),而与其功能相反的需求是 将单行字符串按指定分隔符拆分为多行数据
  • ESP32 I2S音频总线学习笔记(八):添加按键控制功能 - 详解
  • 2025年8款AI论文写作神器推荐:轻松搞定毕业论文查重
  • 基于python的酒店管理系统_36rhk752(Pycharm Flask Django成品源码LW) - 详解
  • pythontip 从字典中删除一组键
  • Softmax 函数全面而详细的解读,原理、图像、应用 - 详解
  • 中级前端工程师详细技能清单
  • Atcoder FPS 24 记录