当前位置: 首页 > 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.gsyq.cn/news/50644.html

相关文章:

  • 跨域问题解决方案汇总
  • 详细介绍:像素退场,曲线登场:现代响应式 CSS 全家桶 | 领码课堂
  • HTTPS 究竟比 HTTP 好在哪?
  • 小苯的因子查询
  • Linux网络--6、网络层 - 详解
  • 原型理解从入门到精通
  • 简单做一个舒尔特方格小游戏
  • C语言新手怎么快速掌握
  • Wi-Fi FTM(Fine Timing Measurement)简介
  • LISTAGG 用于将多行数据聚合为单行字符串(拼接),而与其功能相反的需求是 将单行字符串按指定分隔符拆分为多行数据
  • Atcoder FPS 24 记录
  • 扩展单调栈扫描线维护历史信息
  • 酵母单杂交 (Y1H):蛋白质 - DNA 互作研究的 基因解码器
  • ORACLE行记录转字符串用分隔符连接的两个函数:WM_CONCAT、LISTAGG
  • 20232419 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • 第三十天
  • WinDbg 随笔 001 —— HelloWorld + WinDbg
  • C++篇(14)二叉树进阶算法题 - 详解
  • 2025年市场上品质好的羊毛地毯制造企业
  • 【STM32工程开源】基于STM32的人体健康监测环境
  • 实用指南:【C# OOP 入门到精通】从基础概念到 MVC 实战(含 SOLID 原则与完整代码)
  • tailwind自定义class问题小记
  • 2025年主流开源AI智能体框架平台概览 - 实践
  • Tarjan复建
  • 20251115
  • 20232307 2024-2025-1 《网络与系统攻防技术》实验五实验报告
  • EXECUTE IMMEDIATE语句分析
  • 产品更新与重构策略:创新与稳定的平衡之道 - 详解
  • Day39(9)F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01\jdbc-demo+springboot-web-quickstart
  • # Android Compose 实现 左滑删除