LAMP 出现和工作原理介绍 | 学习笔记

简介: 快速学习LAMP 出现和工作原理介绍

开发者学堂课程【阿里云上搭建 LAMP 环境实战:LAMP 出现和工作原理介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/663/detail/11083


LAMP出现和工作原理介绍

 

内容介绍

一、LAMP 的环境搭建安装手册

二、WEB 服务器工作原理

三、服务器解析语言脚本

四、数据库

五、环境配置的“黄金搭档”

 

一、LAMP的环境搭建安装手册

1.下载位置

打开学习猿地,点击其中的猿工手册

来到开发手册大全,在其中 Linux 运维手册里点击就可以下载,下载到文件位置之后打开就可以点击查看。

image.png


二、WEB 服务器工作原理

在搭建 LAMP 环境的时候应该首先了解什么是 LAMP,而要了解 LAMP 就应该先知道网站的工作环境。

在请求网站时,输入的网址被称作域名,各个浏览器可以兼用,而对应使用的服务器可以是自行购买的放在机房或者本地皆可。此时我们需要使用的为云服务器,是生产环境中应用的环境。因为云服务器的稳定性以及扩展性都十分好。

但不论是云服务器或是自行安装的上面都需要一个操作系统,而操作系统有 Linux,而对 Linux 不熟悉则可以使用 windows。我们想要请求一个网站,网站首先就是由各种 html,css 代码组成的文本文件,而这些文件并非是放在云服务器上或是电脑上就可以访问的,我们使用 WEB 服务器将网站发布出去,常见的WEB服务器有Apache、Negix、Tomcat和#s。

WEB 服务器的原理十分简单就是当你需要哪个文件就原封不动的将哪个文件给你发送过去,同时也可以十分复杂。在请求的时候通过对各种情况的设置达到不同效果,如:对请求压缩,对请求.jsp,.js 和 .php 的文件分别做什么处理等等,都是 web服务器需要过渡的原理。

在之后的课程也有应用。同时 WEB 服务器并非是可以任意访问的,它需要遵循一个协议。

需要访问时,用户会在客户端输入一个url地址,如http://www.lmonke.com/page/index.html,在此使用的协议就是 http,域名即网址就是www.lmonke.com通过DNS将其翻译成网址对应定位到服务器,与此同时http 默认使用了80端口。假设此时的服务器ip为39.100.101.98,当输入网址后根据DNS 域名解析后就可以得到对应的服务器ip39.100.101.98然后去找到这个服务器访问。

image.png

在 linux 中安装了许多服务其中有一个服务 WEB 服务器默认的端口是80,我们就可以根据80端口去找到对应的服务器,同时端口号是可以设置的,再根据 http 网页传输协议去访问80端口的服务器,WEB 服务器就会原封不动的把其中page/index.html 通过80端口给传回到网页去显示内容,以上就是 WEB 服务器的工作原理。

image.png

 

三、服务器解析语言脚本

1.引入

当我们访问的不是 index.html 文件而是 page 目录下的 index.jsp 或者.php,过程与其一致,但因为此时服务器并未安装任何,所以只会在 WEB Server下找到page/index.php 然后通过端口80将 php 文件的原生代码发送到网页上展示,并非如我们所想,我们需要的是将 php 文件能够被网页所执行然后展示出结果再给浏览器而非一串源码。

image.png

处理动态内容,如:处理请求 php,page/index.php?user_id=5表示传入用户id为5,此时 php 文件想要从数据库中查出 user_id=5的数据,但此时 Tomcat,Apache或者 Nginx 服务器都没有去解析 php 文件的能力,所以此时就需要为服务器安装扩展功能,找一个服务器解析语言脚本挂在服务器上实现解析功能,即语言解析器。

各类的语言解析器负责解析各种对应的语言,如 PHP 解析器去解析 php 文件,Python 解析器解析 python 语言。而语言解析器并非存在服务器里的,是被挂载在服务器的,以此成为服务器的扩展模块。而主要功能为在接受对应服务器无法解析的语言后先不着急将其发送给网页,而是先在扩展的解析模块中将其解析出来将其中的代码翻译并且执行之后再交给 Apache,Apache 再交给浏览器。

2.总结

WEB 服务器本身无法解析 jsp,php,python 等语言,所以就需要再服务器上拓展各个语言对应的语言解析器。

image.png

 

四、数据库

1.引入

此时 php 文件想获取数据库中 user_id=5的用户数据就需要到数据库中查找,如今都为动态网站,而衡量是否为动态网站的标准则为:数据是否存储在数据库中,在如今大多数网站都采取存储数据库的做法,不论表单注册和列表数据。

所以还需要安装数据库,常见关系型数据库有 MySQL,Oracle 和 SQLServer,除此外还要非关系型数据库,如:MagoDB。

image.png

2.web 工作原理(完整版)

当要获取 user_id=5的用户数据首先根据端口找到对应的 page/index.php 文件,找到之后就会交给对应的 php 语言解析器将 php 文件解析,而在解析途中发现其中含有数据库内容,就会去到数据库中找到 user_id=5的用户数据之后将结果返回给 php 文件,而 php 整理完就会将用户的结果返回给 Apache,Apache 会将结果的文本内容再返回给页面。

以上就是我们在请求用户 id 为5之后看到的用户信息结果的原理。

image.png

 

五、环境配置的“黄金搭档”

WEB 工作原理需要的基本软件为 Web Server、语言解析器和数据库,但其实这三类的软件种类繁多,是能够任意搭配的,可以选择全装,但在开发时我们常常采用最合适的搭配,俗称“黄金搭档”。

1. 第一种:

LAMP=Linux+Apache+MySQL+PHP(Python)

其中本章讲述的LAMP环境其实就是 Linux+Apache+MySQL+PHP 这种最基础的配置。其中的 p 还可以指代 Python

2. 第二种:

LNMP=Linux+Nginx+MySQL+PHP(Python)

其中 mysql 是最为常用的数据库软件,而 Nginx 最早是由俄罗斯研发的 Web 服务器,最早是 Apache 市场是最大的。

以上两种皆为在日常开发中选择最多的情况,两者任选其一即可。

3. 第三种:

JAVA EE=Linux+Tomcat+Oracle+JSP

JAVA EE  选择的是 Linux 或 Windows 皆可,服务器选择 Tomcat (汤姆猫),数据选择 Oracle,语言选择 JSP,除了 JSP 还可以使用一些java的框架。他们都统称为JAVA EE,又称 JAVA WEB。

4. 第四种:

NET=Windows+IIS+SQLServer+ASP

其中使用的 IIS 和 Windows 都是微软旗下的。以上就是几种服务器环境配置的组合,本章重点介绍的就是第一种,最后除了基本的 Linux+Apache+MySQL+PHP(Python),我们还需要一些周边依赖的软件和需要使用的(最新版)都会进行安装。

相关文章
|
API 数据库 数据安全/隐私保护
利用Django框架构建高效后端API服务
本文将介绍如何利用Django框架构建高效的后端API服务。通过深入分析Django框架的特性和优势,结合实际案例,探讨了如何利用Django提供的强大功能来构建高性能、可扩展的后端服务。同时,还对Django框架在后端开发中的一些常见问题进行了解决方案的探讨,并提出了一些建设性的建议。
466 30
如何做一个供应商自动询报价系统?
本文介绍了一个自动化询报价系统的搭建过程,旨在解决传统采购询价与供应商报价中的信息分散、效率低下和人工比价易出错等问题。系统涵盖需求收集、自动询价、供应商在线报价、智能比价及核价确认五大模块,实现采购流程标准化、数据集中化和操作自动化,提升采购效率与供应商协作质量。
|
Docker 容器
如何提高Docker的下载速度-----配置加速器
在正常情况下,docker默认连接的国外官方镜像,在国外的网友访问该官方镜像自然不成问题,中国的网络访问国外官方镜像网速一向很慢,而且往往还会遭遇断网的窘境。docker pull 国内网络链接失败或很卡慢,一般都需要更换至国内。
16246 1
|
9月前
|
机器学习/深度学习 人工智能 JSON
Resume Matcher:增加面试机会!开源AI简历优化工具,一键解析简历和职位描述并优化
Resume Matcher 是一款开源AI简历优化工具,通过解析简历和职位描述,提取关键词并计算文本相似性,帮助求职者优化简历内容,提升通过自动化筛选系统(ATS)的概率,增加面试机会。
1198 18
Resume Matcher:增加面试机会!开源AI简历优化工具,一键解析简历和职位描述并优化
|
12月前
【HarmonyOS】HMRouter使用详解(四)路由拦截
可以对指定或全局路由跳转时添加拦截器,作用是可以实现在页面切换前做判断是否有进入当前页面的权限。这篇文章将实现登录的全局路由拦截样式。
373 2
【HarmonyOS】HMRouter使用详解(四)路由拦截
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
349 3
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL 5.7 下载安装一步到位
下载步骤 安装准备 安装MySQL 图形化界面推荐
MySQL 5.7 下载安装一步到位
|
开发框架 Dart Java
Flutter的核心:Dart语言基础——语法与特性深度解析
【4月更文挑战第26天】Flutter框架背后的Dart语言,以其简洁的语法和独特特性深受开发者喜爱。本文深入解析Dart的语法与特性,如类型推导、动态静态类型系统、统一的类接口、访问权限控制以及并发编程支持。了解并掌握Dart,能助开发者更高效地利用Flutter构建高性能移动应用。
|
Unix Linux Go
流量回放工具之 Goreplay 安装及初级使用
【6月更文挑战第2天】流量回放工具之 Goreplay 安装及初级使用
1339 3
|
XML 搜索推荐 Java
Android TextView的字体设置
【5月更文挑战第13天】
1049 0