Apache HTTP Server 專案是一項協作軟體開發工作,目標在於建立一套強健、可供商業用途、具備豐富功能,並免費提供的 HTTP(網站)伺服器原始碼實作。Apache HTTP Server 專案由一群遍布全球的志工共同管理,他們使用網路和網站進行溝通、計畫和開發伺服器及其相關文件。這項專案是 Apache 軟體基金會的一部份。此外,有數百位使用者為本專案提供建議、程式碼和文件。本檔案旨在簡要說明 Apache HTTP Server 的歷史,並感謝許多貢獻者。
在 1995 年 2 月,網路上最受歡迎的伺服器軟體是 Rob McCool 在國家超級電腦應用中心(National Center for Supercomputing Applications,簡稱 NCSA),也就是伊利諾大學香檳分校開發的公共領域 HTTP 伺服器程式。不過,Rob 在 1994 年年中離開 NCSA 之後,那個 httpd 的開發便陷入停滯,許多網站管理員自己開發延伸功能和修正錯誤,因此需要一個共通的散佈方式。少數透過私人電子郵件聯絡的網站管理員,為了協調他們的變更(以「修補程式」的形式),而聚在一起。Brian Behlendorf 和 Cliff Skolnick 建立一份郵件清單、共享資訊空間,讓核心開發人員在加州灣區使用一台機器登入,而需要的頻寬由 HotWired 捐助。在 2 月底,八位核心貢獻者組成了原始 Apache Group 的基礎
另外還有以下人士提供貢獻
在將 NCSA httpd 1.3 作為基礎的同時,我們新增了我們能找到的所有已發布的錯誤修正和有價值的增強功能,在我們的伺服器上測試了結果,並於 1995 年 4 月發布 Apache 伺服器的第一個正式公開版本 (0.6.2)。巧合的是,NCSA 在同期間重新啟動了他們的開發,並且 NCSA 伺服器開發團隊的布蘭登·朗和貝絲·弗蘭克在三月以榮譽成員的身份加入團隊,以便兩個專案能夠分享想法和修正。
早期的 Apache 伺服器非常受歡迎,但我們所有人都知道,程式碼庫需要進行全面修改和重新設計。在 1995 年 5 月至 6 月,羅伯·哈蒂爾和團隊中的其他人專注於實作 0.7.x 的新功能 (例如預分岔子程序) 和支援急速成長的 Apache 使用者社群,同時羅伯特·索設計了一個新的伺服器架構 (代號 Shambhala),其中包含一個模組化結構和 API,以利於更好的延展性、基於池的記憶體配置、以及一個自適應預分岔程序模型。團隊於 7 月切換到這個新的伺服器基礎,並新增了 0.7.x 的功能,於 8 月推出了 Apache 0.8.8 (及其兄弟版本)。
經過廣泛的測試版測試、對於冷門平台的大量移植、一套新的文件 (由大衛·羅賓森撰寫)、以及以我們的標準模組形式新增許多功能後,Apache 1.0 於 1995 年 12 月 1 日發布。
在團隊成立不到一年的時間裡,Apache 伺服器就超越了 NCSA 的 httpd 成為網際網路上排名第一的伺服器,根據 Netcraft 的調查,至今仍保持這個位置。
1999 年,Apache 小組的成員成立了 Apache 軟體基金會,以提供組織、法律和財務支援給 Apache HTTP 伺服器。該基金會已將軟體放在穩固的基礎上進行未來的開發,並大幅擴展了屬於這個基金會範疇的開源軟體專案數量。
如果您只想偶爾提出建議或修正,您只需使用 < https://apache-httpd.dev.org.tw/bug_report.html > 上的錯誤回報表單即可。您也可以訂閱我們的公告郵寄清單 (announce@httpd.apache.org
),我們會在這個清單中廣播關於新版本、錯誤修正和即將發生的事件之資訊。在 < https://apache-httpd.dev.org.tw/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 則訊息會傳遞到清單上,而且通常都以對話的語氣進行討論。我們會討論要新增的新功能、錯誤修正、使用者問題、網路伺服器社群的發展、發行日期等。實際的程式碼開發會在開發人員的本機電腦上進行,變更提案會透過程式碼補丁傳遞(統一的「diff -u oldfile newfile」命令輸出),然後由某個提交人套用到程式碼控制存放庫中。郵寄清單上的任何人都可以針對特定議題投票,但只有積極成員或已知的伺服器特定部分專家所提出的票數才算在提交需求中。否決權必須附上令人信服的技術論據。
新的 Apache HTTP 專案管理委員會成員會在有經常性貢獻者由一位成員提名,並經投票成員一致通過時加入。在多數情況下,這種「新」成員已積極貢獻於小組的工作超過六個月,因此這通常是個容易的決定。
專案準則持續在 PMC 的監督下進化,因為小組的成員會改變,而且我們的開發/合作工具會改善。
Apache 軟體存在是要提供多種軟體的健全且商業等級的參考實作。它必須持續作為一個平台,個人和機構可以在上面建構可靠的系統,無論是實驗目的或任務關鍵目的。我們相信網際網路發布的工具應掌握在所有人手上,而且軟體公司應透過提供附加價值服務(例如專門模組和支援)等方式來賺錢。我們了解對一個公司來說,「擁有」一個市場通常會被視為經濟優勢 - 在軟體產業中,這表示嚴格控管特定管道,這樣所有人都必須付費才能使用。這通常會透過「擁有」公司進行業務的協定來達成,犧牲所有其他公司。在全球資訊網的協定持續沒有被一家公司「擁有」的範圍內,網路將持續成為規模大小不一的公司之間的公平競爭場域。因此,必須避免對協定的「擁有」。為此,提供健全的各項協定和應用程式介面的參考實作,讓所有公司和個人免費取得,這是一件非常棒的事。
此外,Apache 軟體基金會是一個有機種體;那些透過使用而從這套軟體中受惠的人,通常會透過在公開的清單和新聞群組中提供功能性強化、錯誤修正和支援給其他人來回饋。任何特定個人花費的精力通常相當輕微,但產生的產品卻非常強大。這種社群只能發生在自由軟體上 -- 當有人付費買軟體,他們通常不願意免費修正它的錯誤。因此,有人會主張 Apache 的強項在於它是免費的,而且如果它變成「不是免費的」,就會備受影響,即使把那筆錢花在真正的開發團隊上也是一樣。
我們希望看到 Apache 軟體被廣泛使用 -- 由大型企業、小型企業、研究機構、學校、個人在 Intranet 環境,各處使用 -- 即使這表示本來買得起商業軟體,而且會毫不猶豫地付費的公司,可能會透過使用 Apache 而「免費搭便車」。我們甚至很高興看到一些商業軟體公司完全放棄自己的 HTTP 伺服器開發計畫,並以 Apache 為基礎,並按照LICENSE中所述適當地歸因。也就是說,Apache HTTP 伺服器只來自 Apache 軟體基金會,但許多廠商會出貨自己的產品,而且是「建立在 Apache {Project} 上」。不存在「{Vendor} Apache {Product}」,這是濫用 Apache 軟體基金會的標章。