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

news/2025/11/15 21:48:10/文章来源:https://www.cnblogs.com/qylogs/p/19226329

讲什么

  • 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.mzph.cn/news/966517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录一次Windows复制粘贴不正常的情况

Windows10复制粘贴功能不正常,解决方案如下: win+r打开后输入 cmd.exe /c echo off | clip

一种可以通过人体电磁场感受宇宙空间电磁场的装置

一种可以通过人体电磁场感受宇宙空间电磁场的装置 人体电磁场是按照人体内部的经络分布的。它们是人体神经细胞带电后产生的。这个电磁场可以经过核磁共振放大后。调制到几个函数波形上,发射出去,这几个函数波形是不…

hippy字节都在用的前端主流框架

hippy字节都在用的前端主流框架 漫思

springboot多模块报错分析(一) - f

Lombok 注解与 Jackson 序列化冲突2025-11-13 [http-nio-8089-exec-1] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]- Initializing Spring DispatcherServlet dispatcherServlet 2025-11-…

身为大厂前端的你,不能不知道Babel + Polyfill!

〇、Babel 概述 Babel 的工作原理 = “把代码变树 → 改树 → 再变回代码”。 也就是三个阶段:Parse(解析):ESNext(ES 新语法) → AST 语法树 Transform(转换):插件修改 AST Generate(生成):AST → 旧 JS …

跨域问题解决方案汇总

全文默认讲的是浏览器端发起的 HTTP 请求的“跨域”问题(同源策略导致的受限)。跨域 / 同源策略概述​同源(same-origin)​:协议、域名(host)、端口 三者完全相同称为同源。 例如 https://example.com:443 和 h…

Access-Control-Allow-Origin 在企业中的用法

接上篇文章说道,跨域解决方案中的 CORS 方案,会配置一个 Access-Control-Allow-Origin 的配置项,而且我们一般不直接配置为 *,这样做的原因是什么以及企业中的最佳实践是怎么样的,这篇文章给你答案!简单概括Acce…

VUE_basic - Ref

vue Vue 官方文档: https://vuejs.org/ 1.vue_basic 01_初识Vue <!DOCTYPE html> <html><head><meta charset="UTF-8" /><title>初识Vue</title><!-- 引入Vue --…

详细介绍:像素退场,曲线登场:现代响应式 CSS 全家桶 | 领码课堂

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

HTTPS 究竟比 HTTP 好在哪?

一、HTTP vs HTTPS 概览 HTTPS = HTTP + 加密认证(基于 TLS),能防止被中间人窃听与篡改,并证明服务器身份。非对称(RSA/ECDSA)用于​做身份认证与安全协商密钥​(但慢)。 对称加密速度快,适合实际数据传输。 …

小苯的因子查询

题目链接:https://www.nowcoder.com/practice/6a22a725087b4a11a1aad4fd170d1c6b?channelPut=trackerqcq12 思路解法: 武功秘籍:《阶乘因子心法》 第一层心法:核心洞察(为什么是质因子『2』?) 口诀一: “问奇…

详细介绍:MongoDB 自动化脚本安装方案

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Linux网络--6、网络层 - 详解

Linux网络--6、网络层 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

原型理解从入门到精通

原型这块知识点,其实在我们工作中的使用非常简单。但是俗话说“面试造火箭,工作拧螺丝”,在面试中,面试官不时就会考察一些花里胡哨的问题,所以,我们只有将这个概念和他的相关知识理解透彻,才能以不变应万变。两…

2025-11-15

Problem - 1858B - Codeforces(1500)(贪心) 这题一个是要读题 在不包括cookie seller的区间才算没吃饼干的时间sum += (s[i] - s[i - 1] - 1) / d; 在加上路过cookie seller时吃的饼干数 sum += m - 1; 然后贪心的…

Pandas - read_html()

Pandas - read_html()When I ran below code: df = pd.read_html(https://en.wikipedia.org/wiki/List_of_countries_by_population) I got error: HTTPError: HTTP Error 403: Forbidden I can open that URL in brow…

实用指南:Linux企业级解决方案架构:字节跳动短视频推荐系统全链路实践

实用指南:Linux企业级解决方案架构:字节跳动短视频推荐系统全链路实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: …

实用指南:PyTorch DataLoader 高级用法

实用指南:PyTorch DataLoader 高级用法2025-11-15 20:48 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block …

简单做一个舒尔特方格小游戏

以下是一个 Python 简易舒尔特方格小游戏,基于 tkinter 实现(无需额外安装第三方库),支持自定义方格大小、计时计分、自动生成随机数字,新手可直接复制运行: 舒尔特方格小游戏(Python 代码) `import tkinter a…