Windows 8 以系統管理員權限執行批次檔(.bat/.cmd)時,「目前目錄」會變更為 C:\Windows\System32,導致批次檔內相對路徑失效;加上 80 連接埠被 SYSTEM 佔用,Apache 無法啟動。本文提供雙重解決方案。
在批次檔最開頭加入以下指令,強制將目前目錄切回批次檔所在目錄:
cd /d %~dp0
%~dp0 為批次檔所在完整路徑(含磁碟機代號與反斜線)。/d 參數允許跨磁碟機切換目錄。編輯 Apache\conf\httpd.conf,將 Listen 80 改為 Listen 81 或 8080。
修改登錄停用 HTTP 服務:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Start = 0
重開機後 80 連接埠釋放,Apache 可正常啟動。
@echo off
cd /d %~dp0
:: 啟動 Apache
bin\apache\bin\httpd.exe
:: 啟動 MySQL
bin\mysql\bin\mysqld.exe
pause
新作業系統初期相容性問題多,生產環境建議等待穩定版或使用虛擬機驗證後再升級。