LAMP 配置与应用

2023年 8月 22日 33.4k 0

1.1动态资源与语言

WEB 资源类型:

  • 静态资源:原始形式与响应内容一致,在客户端浏览器执行
  • 动态资源:原始形式通常为程序文件,需要在服务器端执行之后,将执行结果返回给客户端

注意:静态和动态的区别,不在于网页是否能动态变化,而在于服务端的页面文件和客户端得到页面文件是否一致。

2.LAMP 架构的组成

LAM(M)P:

  • L:linux
  • A:apache (httpd)
  • M:mysql, mariadb
  • P:php, perl, python

微信截图_20230822184202.png

LAMP 环境指的是在 Linux 操作系统中分别安装 Apache 网页服务器、MySQL 数据库服务器和 PHP 开发服务器,以及一些对应的扩展软件。AMP也支持win操作系统 (sccm 域升级版)

LAMP 配置与应用-1

apache主要实现如下功能:

  • 第一:处理http的请求、构建响应报文等自身服务;
  • 第二:配置让Apache支持PHP程序的响应(通过PHP模块或FPM);
  • 第三:配置Apache具体处理php程序的方法,如通过反向代理将php程序交给fcgi处理。
  • mysql 主要实现如下功能:

  • 第一:提供PHP程序对数据的存储;
  • 第二:提供PHP程序对数据的读取(通常情况下从性能的角度考虑,尽量实现数据库的读写分离)。
  • php主要实现如下功能:

  • 第一:提供apache的访问接口,即CGI或Fast CGI(FPM);
  • 第二:提供PHP程序的解释器;
  • 第三:提供mysql数据库的连接函数的基本环境。
  • 3.CGI和astcgi

    3.1什么是cgi?

    CGI:Common Gateway Interface 公共网关接口

    CGI 可以让一个客户端,从网页浏览器通过http服务器向执行在网络服务器上的程序传输数据;CGI描述了客户端和服务器程序之间传输的一种标准。

    请求流程:

    Client -- (http协议) --> httpd -- (cgi协议) --> application server (program file) -- (mysql协议) --> mysql

    3.2 什么是fastcgi?

    通用网关接口(FastCGI)是一段程序,运行在服务器上。

    fastcgi的方式是,web服务器收到一个请求时,不会重新fork一个进程(因为这个进程在web服务器启动时就开启了,而且不会退出),web服务器直接把内容传递给这个进程(进程间通信,但fastcgi使用了别的方式,tcp方式通信),这个进程收到请求后进行处理,把结果返回给web服务器,最后自己接着等待下一个请求的到来,而不是退出。

    请求流程:

    Client -- (http协议) --> httpd -- (fastcgi协议) --> fastcgi服务器 -- (mysql协议) --> mysql

    4.CGI和fastcgi比较

    CGI: 兼职, 一次性的过河拆桥式的服务

    FASTCGI: 专职,全周期的,持续式的服务。

    微信截图_20230822185140.png

    5.PHP

    PHP(Hypertext Preprocessor 超文本预处理器)是通用服务器端脚本编程语言,主要用于web开发实现动态web页面,也是最早实现将脚本嵌入HTML源码文档中的服务器端脚本语言之一。

    5.1 Opcode语言

    pcode是一种PHP脚本编译后的中间语言,类似于Java的ByteCode,或者.NET的MSL

    PHP的语言引擎Zend执行PHP脚本代码一般会经过如下4个步骤

    1、Scanning 词法分析,将PHP代码转换为语言片段(Tokens)

    2、Parsing 语义分析,将Tokens转换成简单而有意义的表达式

    3、Compilation 将表达式编译成Opcode

    4、Execution 顺次执行Opcode,每次一条,从而实现PHP脚本的功能

    即:扫描-->分析-->编译-->执行

    5.2 PHP 配置

    php 的配置文件:/etc/php.ini, /etc/php.d/*.ini

    配置文件在php解释器启动时被读取

    对配置文件的修改生效方法

    • Modules:重启httpd服务
    • FastCGI:重启php-fpm服务

    /etc/php.ini配置文件格式:

    [foo]:Section Header
    directive = value
    

    注释符:

    • 以#开头,纯粹的注释信息
    • 以 ; 开头,用于注释可启用的directive

    注:较新的版本中,已经完全使用 “ ; ” 进行注释

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论