首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Windows 下 Apache + PHP + MySQL + Tomcat + phpMyAdmin 一體化部署全攻略

     編輯:MySQL 資料庫相關知識

背景:Windows 開發/測試環境一鍵搭建

雖然生產環境首選 Linux + 容器化,但 Windows 本地開發、教學演示、小型內網應用仍大量存在。本文記錄 **Apache 2.0 + PHP 5.0 + MySQL 4.0 + Tomcat 5.0 + phpMyAdmin 2.6** 在 Windows 上的整合部署全過程,涵蓋版本選擇、安裝順序、配置文件關鍵點、模組加載、驗證測試,並給出現代版本對應升級建議。

軟件版本清單 (文中歷史版本 → 現代建議版本)

組件文中版本現代建議 (2024+)下載來源
Apache2.0.522.4.58+ (Apache Lounge 編譯版)https://www.apachelounge.com/download/
PHP5.0.28.3.x (Non Thread Safe + Apache 模組) 或 8.3.x (TS + php-fpm)https://windows.php.net/download/
MySQL4.0.228.0.36+ / MariaDB 10.11+https://dev.mysql.com/downloads/mysql/
Tomcat5.0.2910.1.x (Servlet 6.0 / JSP 3.1)https://tomcat.apache.org/download-10.cgi
JDK1.4.121 LTS (Eclipse Temurin / Microsoft Build of OpenJDK)https://adoptium.net/
連接器mod_jk 1.2.6mod_proxy_ajp / mod_proxy_http (原生模組,無需編譯)Apache 內建
JDBC 驅動mm.mysql 2.0.4MySQL Connector/J 8.3+https://dev.mysql.com/downloads/connector/j/
phpMyAdmin2.6.0-pl25.2.1+https://www.phpmyadmin.net/downloads/

部署核心步驟 (以文中版本為例,邏輯通用)

1. Apache 安裝與核心配置 (httpd.conf)


# 安裝路徑假設:D:/usr/apache2
# 關鍵配置項:
ServerRoot "D:/usr/apache2"
ServerAdmin admin@example.com
Listen 80
ServerName localhost:80
DocumentRoot "D:/usr/www"

    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted

DirectoryIndex index.html index.htm index.php index.php3 index.phtml
ScriptAlias /cgi-bin/ "D:/usr/apache2/cgi-bin/"

2. PHP 安裝與 Apache 模組加載


# PHP 解壓至 D:/usr/PHP5
# 1. 複製 php.ini-development → php.ini
# 2. php.ini 關鍵修改:
doc_root = "D:/usr/www"
extension_dir = "D:/usr/PHP5/ext"
include_path = "D:/usr/PHP5/includes"
extension=php_mysql.dll          ; 取消註釋
extension=php_mysqli.dll         ; 現代推薦 mysqli
extension=php_pdo_mysql.dll      ; PDO
; 複製 libmysql.dll 到 Apache bin 目錄或系統 PATH (PHP 5.x 需求,7+ 內建)

# 3. httpd.conf 末尾添加 PHP 模組加載 (Apache 2.0/2.2 風格):
LoadFile "D:/usr/PHP5/php5ts.dll"
LoadModule php5_module "D:/usr/PHP5/php5apache2.dll"
PHPIniDir "D:/usr/PHP5"
AddType application/x-httpd-php .php .php3 .php4 .phtml
AddType application/x-httpd-php-source .phps

# 現代 Apache 2.4 + PHP 8.3 (Handler 模式):
# LoadModule php_module "D:/usr/php/php8apache2_4.dll"
# PHPIniDir "D:/usr/php"
# AddType application/x-httpd-php .php
#  SetHandler application/x-httpd-php 

3. MySQL 安裝與基礎安全初始化

  1. 運行 MSI 安裝包,選「Server only」/「Developer Default」
  2. 配置向導:
    - 端口 3306
    - 字符集 utf8mb4
    - 強密碼策略
    - root 密碼設置
    - Windows 服務名 MySQL80,開機自啟
  3. 安裝後執行 mysql_secure_installation (或向導已含):
    移除匿名用戶、禁用 root 遠程、移除 test 庫、刷新權限
  4. 驗證:mysql -u root -p -e "SELECT VERSION();"

4. Tomcat 安裝與 Apache 反向代理整合 (現代方式)

棄用 mod_jk (編譯困難、版本綁定)**,改用 Apache 原生 mod_proxy_ajp / mod_proxy_http:


# httpd.conf 載入模組 (Apache 2.4 默認已編譯)
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_http_module modules/mod_proxy_http.so

# 虛擬主機/場所代理到 Tomcat (AJP 協議,需 Tomcat server.xml 啟用 8009)

    ProxyPass ajp://localhost:8009/
    ProxyPassReverse ajp://localhost:8009/


# 或 HTTP 代理 (Tomcat 默認 8080)

    ProxyPass https://localhost:8080/
    ProxyPassReverse https://localhost:8080/

Tomcat server.xml 確保:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> (AJP)
<Connector port="8080" protocol="HTTP/1.1" /> (HTTP)

5. phpMyAdmin 部署與安全加固

  1. 解壓至 D:/usr/www/phpmyadmin
  2. 複製 config.sample.inc.php → config.inc.php,關鍵配置:

$cfg['blowfish_secret'] = 'your_32_chars_random_string_here';  // Cookie 加密密鑰
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['auth_type'] = 'cookie';  // 強制 Cookie 認證,不存明文密碼
$cfg['Servers'][$i]['compress'] = true;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
  1. Apache 虛擬目錄映射:
    Alias /phpmyadmin "D:/usr/www/phpmyadmin"
    <Directory "D:/usr/www/phpmyadmin"> Require ip 127.0.0.1 ::1 192.168.1.0/24 </Directory> (僅內網訪問)
  2. 訪問 https://localhost/phpmyadmin 驗證

驗證清單

組件驗證命令/URL成功標誌
Apachehttps://localhost/It works! / index.html 內容
PHPhttps://localhost/test.php ()PHP Version 8.3.x、Loaded Modules 含 apache2handler、MySQLi/PDO 支持
MySQLmysql -u root -p -e "STATUS;"Server version、Protocol、Connection、Uptime 正常
Tomcathttps://localhost:8080/Tomcat 首頁、Manager App 可登錄
Java Apphttps://localhost/java/your-appJSP/Servlet 正常響應
phpMyAdminhttps://localhost/phpmyadmin登錄頁、登錄後可管理庫表

常見坑點與解決

現象原因對策
PHP 提示 Unable to load dynamic library 'php_mysql.dll'缺少 libmysql.dll 或版本不匹配PHP 7+ 內建 mysqlnd,無需外部 dll;PHP 5.x 複製 libmysql.dll 到 Apache bin 目錄
Apache 啟動報錯 Cannot load php5apache2.dllVC++ 運行庫缺失 / PHP 與 Apache 版本/線程模型不匹配 (TS vs NTS)安裝 VC++ Redist (VS2015-2022);確保 PHP 為 Thread Safe 版匹配 Apache
MySQL 連接報錯 Authentication plugin 'caching_sha2_password' not loadedPHP 驅動版本過低不支持 MySQL 8 默認插件升級 PHP/驅動;或 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pwd';
Tomcat 中文亂碼URI 編碼不一致server.xml <Connector ... URIEncoding="UTF-8" />
phpMyAdmin 提示「配置文件權限不正確」Windows 權限檢查誤報確保 config.inc.php 僅 Administrators/SYSTEM 可寫,忽略提示或設置 $cfg['CheckConfigurationPermissions'] = false;

結語

Windows 一體化部署的核心難點在於 **版本兼容性矩陣 (Apache/PHP/VC++/TS-NTS)、模組加載路徑、字符集統一、端口衝突、權限隔離** 掌握「先裝數據庫 → 再裝 Web 服務器 → 最後裝語言運行時/管理工具」的順序,配合現代化組件選型 (mod_proxy 替代 mod_jk、php-fpm 替代 mod_php、utf8mb4 全鏈路),即可構建穩定可用的本地全棧環境。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved