Apache 伺服器:用 Codex 看懂 httpd.conf、htdocs 與 localhost
Apache 伺服器安裝完成後,可以透過 httpd.conf、htdocs 與 localhost 的實際操作,理解瀏覽器如何取得網站內容。本文從資料夾結構出發,搭配 Codex 逐步拆解設定檔,最後比較兩種開啟網址的差異,帶讀者看懂一次完整的請求回應流程。

一、Apache24 資料夾整體結構
贊贊小屋開啟本機磁碟機中的「Apache24」資料夾,路徑列顯示「本機 > 本機磁碟 (C:) > Apache24」,左側清單依序列出「htdocs」「icons」「include」「lib」「logs」「manual」「modules」等資料夾,以及「ABOUT_APACHE.txt」「CHANGES.txt」「INSTALL.txt」「LICENSE.txt」「NOTICE.txt」「README.txt」等說明文件。點開「README.txt」後,右側預覽視窗標題顯示「Apache HTTP Server」,內容說明這是一套完整的 HTTP/1.1 相容網頁伺服器軟體。
Apache 伺服器不是單一支執行檔,而是由執行程式、設定檔、網站檔案、功能模組與日誌記錄共同組成的完整運作環境。先花一點時間看過這份目錄結構,後面每一節碰到的路徑與檔名,才不會只是背下來的名詞。


二、請 Codex 說明資料夾作用
贊贊小屋切換到 Codex 視窗,輸入提示詞「簡要說明「C:\Apache24」這個資料夾的檔案內容及作用。」,Codex 讀取本機資料夾內容後回覆:「C:\Apache24 是 Apache HTTP Server 的 Windows 安裝目錄,主要用途是提供本機或伺服器上的網站服務。這份安裝目前設定為監聽 80 埠,網站根目錄是 C:\Apache24\htdocs。」
這段回覆先把整個安裝環境的定位講清楚:Apache 監聽的埠號與網站根目錄的位置,都在還沒逐一點開子資料夾之前就先掌握。比起自己一個一個資料夾點開摸索,讓 Codex 先讀取環境並給出整體說明,可以省下不少來回確認的時間。


三、Apache24 主要資料夾用途
Codex 接著逐項列出 Apache24 資料夾內的用途:「bin」是 Apache 可執行檔與工具,例如「httpd.exe」「ApacheMonitor.exe」「htpasswd.exe」「ab.exe」等;「conf」是核心設定檔集中的位置,其中最重要的是「httpd.conf」,用來定義監聽埠、網站根目錄、載入模組與日誌位置;「conf\extra」放的是 SSL、虛擬主機、目錄瀏覽等附加設定範本;「htdocs」是網站檔案根目錄,目前只有一個「index.html」,內容是 Apache 預設的「It works!」測試頁;「logs」記錄執行狀況,目前有「access_log」「error_log」「httpd.pid」;「modules」放認證、目錄索引、MIME、日誌等功能模組;「cgi-bin」則是放 CGI 程式的資料夾。
Codex 最後在畫面下方收束整理:「簡單說:真正會常改的是 conf\httpd.conf 和 htdocs;logs 用來看錯誤與存取紀錄;其他多半是 Apache 本身運作需要的程式、模組與支援檔。」對第一次接觸 Apache 資料夾結構的讀者而言,記住這句總結,會比逐一背下每個資料夾名稱來得實用,後面幾節也確實只會反覆用到這兩三個位置。


四、讀取 httpd.conf 主設定檔
贊贊小屋輸入提示詞「讀取httpd.conf內容並簡要說明。」,Codex 讀取「C:\Apache24\conf\httpd.conf」後回覆:「已讀取 C:\Apache24\conf\httpd.conf。這是一份接近預設狀態的 Apache 2.4 主設定檔」,並列出幾項關鍵設定:「ServerRoot」設為「C:/Apache24」,也就是 Apache 的根目錄;「Listen 80」代表 Apache 目前監聽 HTTP 的 80 埠;「DocumentRoot」設為「${SRVROOT}/htdocs」,實際上就是「C:\Apache24\htdocs」,網站檔案會從這裡提供;「DirectoryIndex index.html」則代表使用者只輸入目錄網址時,Apache 會預設尋找「index.html」。
這幾項設定合起來,正好回答了「瀏覽器輸入網址後,Apache 怎麼知道要回傳哪個檔案」這個問題:先看監聽的埠號,再看網站根目錄,最後看預設要找的檔名。httpd.conf 雖然內容不少,但真正需要反覆確認的,其實就是這幾行。


五、找到 htdocs 與預設首頁
贊贊小屋打開「C:\Apache24\htdocs」資料夾,畫面中只有一個「index.html」檔案,右側預覽內容顯示「It works!」。
這個畫面剛好呼應前一節看到的 DocumentRoot 設定:瀏覽器一開始看到的測試頁面,實際上就是這個 index.html 檔案的內容。htdocs 資料夾此刻雖然只有一個檔案,但正是接下來要修改的目標。


六、用 Codex 改寫首頁內容
贊贊小屋輸入提示詞「幫我將「index.html」設計為一個說明頁面,把你剛才提到的Apache那些相關知識,設計成精美的一頁式網站。」Codex 回覆:「我會把目前的預設 It works! 頁改成一頁式說明網站」,並說明會保留 Apache 主題,做成可掃讀的區塊、設定摘要、目錄地圖與安全提示。由於目標檔案位在「C:\Apache24\htdocs」,不在 Codex 預設可直接寫入的工作區,Codex 先確認現有頁面只有 Apache 預設測試文字,接著刪除舊檔案並建立新頁面。
這個過程等於實際示範 Codex 如何修改網站根目錄中的首頁檔案:不是憑空生成一個網頁丟給讀者,而是先讀取原始檔案狀態,再把前面幾節談到的 Apache 知識,直接寫進同一份 index.html 裡,把測試頁轉換成真正有內容的網站首頁。


七、Apache 伺服器回應瀏覽器的流程
Apache 伺服器回應瀏覽器請求的流程,可以從「file://」直接開啟檔案與「http://localhost/」經由 80 埠連線的差異看出來。首頁改寫完成後,贊贊小屋在瀏覽器分頁「Apache24 說明頁」中開啟,網址列顯示「file:///C:/Apache24/htdocs/index.html」,頁面標題文字寫著「這台 Apache 正在提供一個基本 HTTP 網站。」,右側資訊卡列出「HTTP Listener」(:80)、「DocumentRoot」(HTML)、「Logs」(warn)三項狀態。
贊贊小屋接著把網址列改成輸入「localhost」重新載入,畫面顯示與前一張幾乎相同的內容,同樣的標題文字與右側資訊卡。
兩個畫面看起來完全一樣,但背後的傳遞路徑不同:「file://」是瀏覽器直接讀取本機硬碟中的 index.html 檔案,並沒有經過 Apache;「localhost」則是瀏覽器先向 Apache 提出 HTTP 請求,Apache 監聽 80 埠後,再從 htdocs 找到 index.html 並回傳給瀏覽器。前面幾節談到的 Listen 80、DocumentRoot 與 DirectoryIndex,正是在這一刻真正派上用場,也是這整篇文章最後想讓讀者看懂的地方。



從 file:// 到 localhost,才看懂 Apache 在做什麼
寫完這篇之前,贊贊小屋原本以為改完 index.html、瀏覽器能正常顯示,這件事就算完成了。直到把網址列從「file:///C:/Apache24/htdocs/index.html」改成「localhost」,畫面看起來一模一樣,才意識到這兩者根本是兩回事——前者只是瀏覽器在讀自己硬碟裡的一個檔案,跟 Apache 有沒有在跑、有沒有在監聽 80 埠,完全沒有關係。
這也是這篇文章跟第一篇最大的不同。前一篇從 Apache 是什麼 出發,談的是怎麼把 Apache 裝起來、看到「It works!」,比較像是確認工具能用;這篇則是把資料夾、設定檔、網站根目錄這幾個原本各自獨立的名詞,透過 Codex 一步步串起來。httpd.conf 裡的 Listen 80、DocumentRoot、DirectoryIndex,單獨看只是幾行設定,但接上 htdocs 資料夾、接上瀏覽器實際打出去的請求,才會知道這幾行到底在決定什麼。
過程中讓贊贊小屋印象比較深的,反而是 Codex 說明資料夾用途的那段收束——真正常改的只有 conf\httpd.conf 和 htdocs,其他大多是 Apache 運作本身需要的支援檔。這句話某種程度上也是這篇文章的濃縮版:一套看起來龐大的伺服器軟體,真正需要先記住、日後也會反覆用到的,其實就那麼幾個位置。
學會計、學Excel、學習AI工具,歡迎加入贊贊小屋社群。
Claude Code 教學:從安裝到 Excel、PPT 與網頁實戰
Claude Code 教學、ChatGPT怎麼用?、ChatGPT Excel教學、ChatGPT寫ExcelVBA、Gemini是什麼?、Notion教學、AI對會計的影響。
贊贊小屋AI課程:OpenClaw AI 代理、Codex 網站、Claude Code 實戰、ChatGPT課程、AI工具全攻略、Notion課程。


