Apache HTTP 服务器项目是一个协作软件开发工作,旨在创建一个健壮、商业级、功能丰富且可免费获得源代码的 HTTP(Web)服务器实现。该项目由分布在世界各地的志愿者团队共同管理,他们使用互联网和 Web 进行沟通、计划和开发服务器及其相关文档。该项目是 Apache 软件基金会的一部分。此外,数百名用户为该项目贡献了想法、代码和文档。本文件旨在简要介绍 Apache HTTP 服务器的历史,并感谢众多贡献者。
1995 年 2 月,Web 上最流行的服务器软件是伊利诺伊大学香槟分校国家超级计算应用中心(NCSA)的 Rob McCool 开发的公共领域 HTTP 守护进程。然而,在 Rob 于 1994 年年中离开 NCSA 后,该 httpd 的开发停滞不前,许多网站管理员开发了自己的扩展和错误修复,这些修复需要一个通用的分发版本。一小群网站管理员通过私人电子邮件联系,聚集在一起协调他们的更改(以“补丁”的形式)。Brian Behlendorf 和 Cliff Skolnick 建立了一个邮件列表、共享信息空间和核心开发人员在加州湾区的机器上的登录权限,带宽由 HotWired 捐赠。到 2 月底,8 名核心贡献者组成了最初的 Apache 小组的基础。
以及来自以下人员的额外贡献
以 NCSA httpd 1.3 为基础,我们添加了所有已发布的错误修复和有价值的增强功能,在我们自己的服务器上测试了结果,并在 1995 年 4 月发布了 Apache 服务器的第一个官方公开版本(0.6.2)。巧合的是,NCSA 在同一时期重新启动了自己的开发,NCSA 服务器开发团队的 Brandon Long 和 Beth Frank 于 3 月加入了邮件列表,成为名誉成员,以便这两个项目可以分享想法和修复。
早期的 Apache 服务器非常受欢迎,但我们都知道代码库需要全面检修和重新设计。在 1995 年 5 月至 6 月期间,Rob Hartill 和小组的其他成员专注于为 0.7.x 实现新功能(如预先派生的子进程)并支持快速增长的 Apache 用户社区,而 Robert Thau 设计了一种新的服务器架构(代号为 Shambhala),其中包括模块化结构和 API,以实现更好的可扩展性、基于池的内存分配和自适应预先派生的进程模型。该小组于 7 月切换到这个新的服务器基础,并添加了 0.7.x 的功能,从而在 8 月产生了 Apache 0.8.8(及其同类产品)。
经过广泛的测试版测试、对模糊平台的许多移植、一套新的文档(由 David Robinson 编写)以及以我们标准模块形式添加了许多功能后,Apache 1.0 于 1995 年 12 月 1 日发布。
在该小组成立不到一年后,Apache 服务器超过了 NCSA 的 httpd,成为互联网上排名第一的服务器,根据 Netcraft 的调查,它至今仍保持着这一地位。
1999 年,Apache 小组的成员成立了 Apache 软件基金会,为 Apache HTTP 服务器提供组织、法律和财务支持。该基金会为该软件的未来发展奠定了坚实的基础,并极大地扩展了该基金会管理下的开源软件项目数量。
如果您只是想偶尔发送建议/修复,那么您可以简单地使用错误报告表单 < https://httpd.apache.org/bug_report.html >。您还可以订阅公告邮件列表 ([email protected]
),我们使用该列表广播有关新版本、错误修复和即将发生的事件的信息。在 < https://httpd.apache.org/dev/ > 中可以找到有关开发过程的大量信息(其中大部分急需更新)。
注意:开发者邮件列表不是用户支持论坛;它是针对积极参与服务器代码开发的人员。还有一个“文档”子项目,适用于积极开发和翻译文档的人员。如果您有用户/配置问题,请订阅 用户列表 或尝试 USENET 新闻组“ news:comp.infosystems.www.servers.unix ”或“ news:comp.infosystems.www.servers.ms-windows ”(根据您使用的平台选择)。
有一个核心贡献者小组,最初由项目创始人组成,并随着时间的推移由其他杰出的贡献者补充。有一些“提交者”,他们被授予访问源代码控制库的权限,以帮助维护项目或文档,以及现在管理项目的核心小组,称为 Apache HTTP 项目管理委员会(简称 PMC)。事实上,每个 Apache 软件基金会项目都有自己的 PMC,以确定提交者、项目方向和整体管理。术语“Apache 小组”或“Apache 核心”不再使用。
该项目是一个精英制度——你做得越多,你被允许做的事情就越多。小组创始人制定了最初的规则,但这些规则可以通过活跃的 PMC 成员投票进行更改。有一群人在我们的服务器上拥有登录权限,可以访问源代码控制库。每个人都可以只读访问这些库。对代码的更改将在邮件列表中提出,通常由活跃成员投票——在发布周期中,需要三个 +1(“是”票)和没有 -1(“否”票或否决票)才能提交代码更改;文档通常先提交,然后根据需要进行更改,冲突通过多数票解决。
我们主要的沟通方式是我们的邮件列表。每天大约有 40 条消息流过邮件列表,通常语气非常随意。我们讨论要添加的新功能、错误修复、用户问题、Web 服务器社区的发展、发布日期等。实际的代码开发是在开发人员的本地机器上进行的,使用补丁(统一“diff -u oldfile newfile”命令的输出)来沟通建议的更改,然后由提交者之一应用到源代码控制库。邮件列表中的任何人都可以对特定问题进行投票,但只有由活跃成员或已知是该服务器部分专家的人员提出的投票才计入提交所需的票数。否决必须附带令人信服的技术理由。
当一位频繁的贡献者被一位成员提名并获得投票成员一致批准时,就会添加 Apache HTTP 项目管理委员会的新成员。在大多数情况下,这个“新”成员已经积极参与该小组的工作超过 6 个月,因此通常是一个简单的决定。
项目指南在 PMC 的监督下不断发展,因为小组成员的变动和我们的开发/协调工具的改进。
Apache 软件的存在是为了提供各种类型软件的健壮且商业级的参考实现。它必须保持为个人和机构可以构建可靠系统的平台,无论是用于实验目的还是用于关键任务目的。我们相信在线出版的工具应该掌握在每个人手中,软件公司应该通过提供增值服务(如专门的模块和支持)等来赚钱。我们认识到,一家公司“拥有”一个市场通常被视为经济优势——在软件行业,这意味着严格控制特定渠道,以便所有其他人必须付费才能使用它。这通常是通过“拥有”公司开展业务的协议来实现的,以牺牲所有其他公司为代价。在一定程度上,只要万维网的协议没有被一家公司“拥有”,万维网将继续成为大小公司公平竞争的平台。因此,必须防止对协议的“拥有”。为此,各种协议和应用程序编程接口的健壮参考实现的存在,对所有公司和个人免费开放,是一件非常好的事情。
此外,Apache 软件基金会是一个有机实体;那些通过使用该软件而从中受益的人,通常通过提供功能增强、错误修复以及在公共列表和新闻组中为他人提供支持来回馈该软件。任何特定个人付出的努力通常相当轻微,但最终的产品却变得非常强大。这些类型的社区只能在免费软件中出现——当有人为软件付费时,他们通常不愿意免费修复其错误。因此,可以说,Apache 的强大之处在于它是免费的,如果它变得“非免费”,即使这笔钱花在了真正的开发团队上,它也会遭受巨大的损失。
我们希望看到 Apache 软件被广泛使用——无论是大型公司、小型公司、研究机构、学校、个人,还是内联网环境,任何地方——即使这意味着一些能够负担得起商业软件的公司,并且愿意毫不犹豫地付费,可能会通过使用 Apache 获得“免费搭乘”。我们甚至很高兴看到一些商业软件公司完全放弃自己的 HTTP 服务器开发计划,并使用 Apache 作为基础,并在 LICENSE 中描述的适当归属下进行使用。也就是说,Apache HTTP 服务器只来自 Apache 软件基金会,但许多供应商会以“基于 Apache {项目}”的名义发布自己的产品。不存在“{供应商} Apache {产品}”,这是对 Apache 软件基金会商标的滥用。