源码编译安装LAMP

目录

一、Apache

1.基本概念

2.功能 

3.特点 

4.重要概念 

5.三个MPM工作模式 

5.1Prefork MPM

5.2Worker MPM

5.3Event MPM

二、LAMP

1.简介

1.1Linux 

1.2Apache 

1.3MySQL 

1.4PHP 

1.5构建平台的顺序 

2.LAMP的优势

3.编译安装的优点

4.LAMP的工作流程

三、扩展

1.Wget工具

2.Curl

3.压力测试工具


一、Apache

1.基本概念

Apache 是一款免费开源的 Web 服务器软件,用来处理 HTTP 请求和相应的网页请求
Apache 由Apache软件基金会开发和维护。在互联网上, Apache 是最广泛使用的 Web 服务器软件之一。它支持多种操作系统,并且可以与多种编程语言进行集成,例如PHP Python Perl 等。它不仅可以用于静态网站,还可以支持动态内容的生成,比如使用CGI 脚本来动态生成网页内容
apache 官网 : www.apache.org

2.功能 

(1)提供 http 协议服务 web
(2)多个虚拟主机: IP Port FQDN 用一台物理服务器搭建多个网站如: 百度、 淘宝
(3)CGI Common Gateway Interface ,通用网关接口, 支持动态程序
(4)反向代理:代理的是 服务端正向代理:代理的是客户端
(5)负载均衡
(6)路径别名
(7)丰富的用户认证机制: basic digest
(8)支持第三方模块

3.特点 

1.跨平台性
Apache 可以运行于 Linux Windows Mac OS 等多种操作系统环境中
2.可扩展性
Apache 支持插件式架构,能够方便地扩展新的功能模块
3.安全性
Apache 通过 access control SSL/TLS 加密等多种手段保障服务器和数据的安全
4.稳定性
Apache 拥有强大的稳定性和健壮性,在高压力下表现良好
5.易用性
Apache 提供了简单易用的配置文件,允许管理员以文本方式编辑
6.速度快
Apache 优化了请求和响应处理机制,能够提高 Web 服务器的性能

4.重要概念 

高度模块化: core + modules
DSO: Dynamic Shared Object     动态加载 / 卸载
MPM: multi-processing module    多路处理模块

5.三个MPM工作模式 

5.1Prefork MPM

Prefork MPM 预派生模式,有一个主控制进程,然后生成多个子进程 , 每个子进程有一个独立的线程响应用户请求,相对比较占用内存,但是比较稳定,可以设置最大和最小进程数,是最古老的一种模式,也是最稳定的模式,适用于访问量不是很大的场景

优缺点
优点:
稳定性:进程间隔离,提高稳定性,即使某个子进程崩溃,不会影响到其他进程
兼容性:适用于线程不安全的第三方模块和库
缺点:
资源开销:每个进程都有独立的内存和资源开销,比多线程模式消耗更多的系统资源
性能:在高并发情况下,性能可能不如`worker'或'event MPM'模式

5.2Worker MPM

worker MPM 是一种多进程和多线程混合的模型,有一个控制进程,启动多个子进程,每个子进程里面包含固定的线程,使用线程程来处理请求,当线程不够使用的时候会再启动一个新的子进程,然后在进程里面再启动线程处理请求,由于其使用了线程处理请求,因此可以承受更高的并发

优缺点
优点:
高并发性能:线程比进程轻量,处理并发请求时效率更高
资源效率:线程共享进程资源,减少内存和CPU开销
缺点:
复杂性:线程之间共享内存,编程和调试较为复杂
线程安全:需要确保使用的所有库和模块都是线程安全的

5.3Event MPM

event MPM Apache 中最新的模式, 2012 年发布的 apache 2.4.X 系列正式支持 event 模型。 属于事件驱动模型(epoll) ,每个进程响应多个请求,在现在版本里的已经是稳定可用的模式。它和 worker 模式很像,最大的区别在于,它解决了keep-alive 场景下,长期被占用的线程的资源浪费问题(某些线程因为被keep-alive ,空挂在那里等待,中间几乎没有请求过来,甚至等到超时)
event MPM 中,会有一个专门的线程来管理这些keep-alive 类型的线程,当有真实请求过来的时候,将请求传递给服务线程,执 行完毕后,又允许它释放。这样增强了高并发场景下的请求处理能力, event 只在有数据发送的时候才开始建立连接,连接请求才会触发工作线程,即使用了TCP 的一个选项,叫做延迟接受连接TCP_DEFER_ACCEPT,加了这个选项后,若客户端只进行 TCP 连接,不发送请求,则不会触发 Accept 操作,也就不会触发工作线程去干活,进行了简单的防攻击(TCP 连接)

优缺点
优点:
高并发性能:通过事件驱动机制和长连接优化,显著提升高并发处理能力
资源效率:线程和进程资源占用更低,提升内存和CPU利用率
响应速度:在处理大量长连接请求时,响应速度更快
缺点:
复杂性:配置和调试相对复杂,需要确保应用和模块是线程安全的
兼容性:部分老旧的第三方模块可能不完全支持event MPM

二、LAMP

1.简介

LAMP是一种用于构建动态网站和Web应用程序的开源软件堆栈组合。是目前成熟的企业网站应用模式之一

LAMP 是一个缩写词,具体包括 Linux 操作系统, Apache 网站服务器, MySQL 数据库服务器, PHP (或perl, Python )网页编程语言

1.1Linux 

Linux是LAMP堆栈的基础,作为操作系统提供了运行其他LAMP组件的环境。它因其稳定些安全性和开源特性被广泛应用于服务器端

1.2Apache 

Apache是一种流行的Web服务器软件,用于处理客户端的HTTP请求,并将网页内容传送到用户的浏览器。它支持模块化配置,允许根据需求加载不同的功能模块

1.3MySQL 

MySQL是一个关系型数据库管理系统,用于存储和管理应用程序中的数据。MariaDB是
MySQL的一个分支,通常作为替代方案。它们支持 SQL查询,提供强大的数据管理功能

1.4PHP 

PHP是一种广泛使用的服务器端脚本语言,用于生成动态网页内容。它可以与数据库交互生成用户请求的动态内容,并将结果返回到Web服务器。LAMP中也可以使用Perl 或Python代替PHP

1.5构建平台的顺序 

在构建 LAMP 平台时,各组件的安装顺序依次为 Linux---- Apache---- MySQL---- PHP
其中 Apache MySQL 的安装并没有严格的顺序要求,而 PHP 环境的安装一般放到最后,负责沟通 web 服务器和数据库系统以协同工作

2.LAMP的优势

开源:所有组件都是开源的,降低了使用成本
广泛支持:由于LAMP的普及性,有大量的文档和社区支持
灵活性:组件可以灵活替换,比如用Nginx替代Apache,或用Python替代PHP

3.编译安装的优点

定制化配置
灵活性:

编译安装允许你根据具体需求配置软件。你可以选择启用或禁用某些功能、优化特定的参数,甚至选择编译时的优化选项(如针对特定CPU架构的优化)
定制模块:

在编译时,你可以选择需要加载的模块或插件,而不是安装整个软件包中的所有组件
最新版本
提前使用新特性:

通过编译源代码,你可以在发布二进制包之前,获取并使用软件的最新版本或特性,尤其是对于快速更新的软件
修复最新的Bug:

编译安装可以让你直接从源码仓库获取最新的修复,避免等待发行版维护者更新软件包
性能优化
针对特定硬件的优化:

通过编译,你可以针对你的硬件架构进行优化,比如使用特定的编译器优化选项,从而提升软件的运行性能
裁剪不必要的功能:

通过选择编译选项,你可以裁剪掉不需要的功能,减少软件占用的资源,提高性能
自主控制
避免依赖问题:

通过编译安装,你可以手动控制软件的依赖项,避免与系统中已有的库版本冲突
安全性:

你可以检查和验证源码,确保没有后门或不安全的代码,并在编译过程中启用特定的安全选项,如启用AddressSanitizer等

4.LAMP的工作流程

客户端请求

用户通过浏览器访问一个网站或Web应用程序
Apache处理请求

Apache Web服务器接收用户的请求,并决定如何处理
PHP脚本执行

如果请求的内容是一个动态网页(如`php`文件),Apache将请求传递给PHP解释器
与数据库交互

PHP脚本可能需要从MySQL数据库中读取或写入数据。PHP通过SQL查询与数据库交互
生成响应

PHP生成动态内容(如 HTML、JSON 数据等),然后将其返回给Apache
客户端显示

Apache将生成的内容传递给客户端浏览器,浏览器解析并显示给用户

三、扩展

1.Wget工具

wget是一个功能强大的下载工具,适用于简单的文件下载以及复杂的批量下载任务
格式
wget [OPTION]... [URL]...
常用选项 
-q: 静默模式
-c: 断点续传
-P /path: 保存在指定目录
-o filename: 保存为指定文件名, filename - 时,发送至标准输出
--limit-rate= 指定传输速率,单位 K M

wget http://example.com/file.zip    #下载文件

wget -o newfilename.zip http://example.com/file.zip    #指定保存文件名
wget -c http://example.com/file.zip    #断点传续
wget --limit-rate=200k http://example.com/file.zip    #限制下载速度

2.Curl

curl 是基于 URL 语法在命令行方式下工作的文件传输工具,它支持 FTP, FTPS, HTTP,HTTPS, GOPHER, TELNET, DICT, FILE及 LDAP 等协议。 curl 支持 HTTPS 认证,并且支持 HTTP POST PUT 等方法, FTP 上传, kerberos 认证, HTTP 上传,代理服务器, cookies ,用户名 / 密码认证, 下载文件断点续传,上载文件断点续传,http 代理服务器管道( proxy tunneling ),还支持 IPv6 socks5 代理服务器,通过 http代理服务器上传文件到FTP 服务器等,功能十分强大

格式

curl [options] [URL...]

常用选项

-A/--user-agent <string> 设置用户代理发送给服务器
-e/--referer <URL> 来源网址
--cacert <file> CA证书 (SSL)
-k/--insecure 允许忽略证书进行 SSL 连接
--compressed 要求返回是压缩的格式
-H/--header "key:value” 自定义首部字段传递给服务器
-i 显示页面内容,包括报文首部信息
-I/--head 只显示响应报文首部信息
-D/--dump-header <file>将url的header信息存放在指定文件中
--basic 使用HTTP基本认证
-u/--user <user[:password]>设置服务器的用户和密码
-L 如果有3xx响应码,重新发请求到新位置
-O 使用URL中默认的文件名保存文件到本地
-o <file> 将网络文件保存为指定的文件中
--limit-rate <rate> 设置传输速度
-0/--http1.0 数字0,使用HTTP 1.0
-v/--verbose 更详细
-C 选项可对文件使用断点续传功能
-c/--cookie-jar <file name> 将url中cookie存放在指定文件中
-x/--proxy <proxyhost[:port]> 指定代理服务器地址
-X/--request <command> 向服务器发送指定请求方法
-U/--proxy-user <user:password> 代理服务器用户和密码
-T 选项可将指定的本地文件上传到FTP服务器上
--data/-d 方式指定使用POST方式传递数据
-s --silent Silent mode
-b name=data 从服务器响应set-cookie得到值,返回给服务器
-w <format> 显示相应的指定的报文信息,如:%{http_code},%{remote_ip}等
-m, --max-time <time> 允许最大传输时间

3.压力测试工具

httpd 的压力测试工具:
ab、webbench、http_load、seige

ab 来自httpd-tools

命令格式
ab [OPTIONS] URL
常用选项
-n:总请求数
-c:模拟的并发数
-k:以持久连接模式测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值