搭建动态 web 服务器| 学习笔记

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 快速学习搭建动态 web 服务器。

开发者学堂课程【PHP 基础入门课程(上) :搭建动态 web 服务器】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/709/detail/12577


搭建动态 web 服务器

 

内容介绍:

一、本节学习目标及概念

二、搭建动态 web 服务器的原理

三、搭建动态 web 服务器的步骤

四、小结

 

一、本节学习目标及概念

目标:掌握 PHP 与 Apache 的合作机制,并实现 PHP 与 Apache 共建动态 Web 服务器

概念:动态 Web 服务器:指利用静态 Web 服务器 Apache 配合动态脚本编程语言 PHP,实现动态网站。

Apache 是一种静态 Web 服务器,不能解析内容,但是可以接收用户请求; PHP 可以生成动态内容,但是无法直接被用户(浏览器)访问,因此需要将二者结合共同完成动态网站的建设。

即满足使浏览器能够去访问 Apache ,最好也能够让 PHP 同样工作。

 

二、搭建动态 web 服务器的原理

1. Apache 是一种模块化的软件,只需要将某额软件挂靠在 Apache 上, Apapche 就能运用该模块实现某种功能。

2. PHP 对外提供了一个模块,允许其他软件应用该模块。这个模块叫做 php7apache2.4.dll,相当于一个对应的的 so 文件。找找看我们的 PHP 里面到底有没有这个文件,server - php7- Apache ,可以看到存在 php7apache2.4.dll 。

image.png

3. Apache 加载 PHP  ,进行相关授权配置,从而让 Apache 在某种情况下运用 PHP 模块来进行工作。


三、搭建动态 web 服务器的步骤

1. 打开 Apache 的配置文件:D:/server/Apache24/conf/httpd.conf

2. 使用 LoadModule 命令加载 PHP 模块:

LoadModulephp7modulephp 模块所在路径。

LoadModule 就相当于加载一个模块,可以将加载原有的 so 文件。

此时去加载 PHP ,所以我们要给他一个名字叫 php7-model;而且大小写一定要注意。

加载 PHP 模块:LoadModule php7_module并指定对应的一个路径,路径的话,就位于 D 盘 server-PHP7。

取出相关文件的名字,而不是运行;然后放到这个对应位置,这样一来就加载好了。 image.png

3. 模块加载了不会自动工作,需要 Apache 指派工作给 PHP ;当 Apache 发现请求是 PHP 的时候,可以交给 PHP 来处理:

AddType application/x-httpd-phpphphtml (后缀区分,多种后缀可以使用空格来区分)

当我们碰到 .PHP 后缀的文件的时候,或者 .html 的文件的时候,我们都会用应用AddType application/x-httpd-phpphphtml 这个模块,当然也可以用多个。

直接复制了就不去写了,找到即#分配工作 ADDTyped,然后把后缀为 .php的分配给他的;至于 . html 文件是不是要给他,就看个人的一个设置,如果非要给他也可以,加空格就行;还有其他的文件,比如说什么 .htm ,这个也可以给他。之后,同样的再保存一下

image.png

4.此时的 PHP 隶属于 Apache ,但是因为 PHP 是独立模块,如果想要让 Apache 能够更多控制和使用PHP,就需要将 PHP 的配置文件告知  Apache ,从而让 PHP 和 Apache 成为一个整体: PHPIniDirphpini 所在路径。

刷新一下我们的浏览器,, Apache 一旦修改了配置文件,我们都需要重启我们拿吧器才能生效。重启后刷新一下显示被解析了,说明 Apache 跟PHP已经生效了。

我们说PHP虽然隶属于 Apache ,但是要知道PHP本身是不是自己是一个独立的一个软件,只是强拉过来,而且是通过 dll 文件拉过来的。如果说我们想让它变成一个整体,那最好还是要让  Apache 能够去解读 PHP 的配置文件,从而根据PHP的配置文件来选择或者体现PHP的一个功能。

那当中一个叫做: PHPIniDirphpini,然后 PHP.ini 所在的目录就可以了。

那我们来演示一遍:

#加载 PHP 配置文件

PHPIniDirphpini D:/server/php7

把它重启一下,其实重不重启都不影响我们的效果了,只是说后面有一些管理不方便;我们再来看一下这个修改会不会让我们反倒失效,没有,说明这个增加也是可行的。

如果有必要的话,建议大家可以跑到一个 ..cd Apache24\bin>httpd-t ,测试一下语法有没有问题,若没问题,啊明我们加的这三行代码不影响。

5、Apache 的任何配置修改,都需要重启 Apache 才能生效; PHP 的配置文件现在已经隶属于 Apache 的一部分,因此PHP的配置修改,也需要重启 Apache 才能生效。

这就是搭建一个动态让彼此合作,我们用的是浏览器来访问 Apache ,但是 Apache 却用到了 PHP 即把 PHP 代码给解析了,所以他们就形成了一个动态的一个 Web 服务器。

 

四、小结

1. Apache 是一种静态服务器,能够接收浏览器的请求,但是只能读取文件,不能解析文件。

2. PHP 解释器是一个能够解释 PHP 代码的工具,但是不能接收浏览器请求。

3. Apache 可以将PHP添加到自己的模块列表中,从而 Apache 就可以“指使”PHP来进行某些处理。

4. 动态 web 服务器就是能够利用动态脚本语言实现动态数据提供的 Web 服务器。

相关文章
|
23天前
|
计算机视觉 Python
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
这篇文章是关于如何使用Flask框架结合OpenCV库,通过电脑摄像头实现视频流在网页上的实时显示,并提供了单摄像头和多摄像头的实现方法。
69 2
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
|
29天前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
40 3
|
23天前
|
文件存储 Python
Flask学习笔记(一):Flask Web框架
本文介绍了Flask Web框架的基本概念、安装方法、初始化参数、程序编写、静态文件显示和配置信息加载等基础知识。
23 0
|
3月前
|
JavaScript 搜索推荐 前端开发
从零搭建到部署:Angular与Angular Universal手把手教你实现服务器端渲染(SSR),全面解析及实战指南助你提升Web应用性能与SEO优化效果
【8月更文挑战第31天】服务器端渲染(SSR)是现代Web开发的关键技术,能显著提升SEO效果及首屏加载速度,改善用户体验。Angular Universal作为官方SSR解决方案,允许在服务器端生成静态HTML文件。本文通过具体示例详细介绍如何使用Angular Universal实现SSR,并分享最佳实践。首先需安装Node.js和npm。
60 1
|
3月前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
127 0
|
3月前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
38 0
|
3月前
|
Java 数据库 API
JSF与JPA的史诗级联盟:如何编织数据持久化的华丽织锦,重塑Web应用的荣耀
【8月更文挑战第31天】JavaServer Faces (JSF) 和 Java Persistence API (JPA) 分别是构建Java Web应用的用户界面组件框架和持久化标准。结合使用JSF与JPA,能够打造强大的数据驱动Web应用。首先,通过定义实体类(如`User`)和配置`persistence.xml`来设置JPA环境。然后,在JSF中利用Managed Bean(如`UserBean`)管理业务逻辑,通过`EntityManager`执行数据持久化操作。
49 0
|
3月前
|
JavaScript 前端开发 UED
服务器端渲染新浪潮:用Vue.js和Nuxt.js构建高性能Web应用
【8月更文挑战第30天】在现代Web开发中,提升应用性能和SEO友好性是前端开发者面临的挑战。服务器端渲染(SSR)能加快页面加载速度并改善搜索引擎优化。Vue.js结合Nuxt.js提供了一个高效框架来创建SSR应用。通过安装`create-nuxt-app`,可以轻松创建新的Nuxt.js项目,并利用其自动路由功能简化页面管理。Nuxt.js默认采用SSR模式,并支持通过`asyncData`方法预取数据,同时提供了静态站点生成和服务器端渲染的部署选项,显著提升用户体验。
75 0
|
21天前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
81 3
|
3天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
73 44