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

Windows 下 Apache + PHP + MySQL 開發環境搭建與安全加固完整手冊

     編輯:MySQL 資料庫相關知識

前言

在 Windows 搭建 LAMP(WAMP) 開發環境,版本選擇、安裝順序、配置整合、安全加固每一步都藏著坑。本文基於生產級經驗,提供版本清單、逐步安裝、配置文件、安全清單、常見漏洞修復完整流程。

一、軟件版本清單(經驗驗證穩定組合)

組件推薦版本下載來源
Apache2.4.x (Win64)https://www.apachehaus.com/cgi-bin/download.plx
PHP8.2.x (Thread Safe, VS16 x64)https://windows.php.net/download/
MySQL8.0.x (Community, ZIP Archive)https://dev.mysql.com/downloads/mysql/
phpMyAdmin5.2.xhttps://www.phpmyadmin.net/downloads/
工具HeidiSQL / DBeaver / MySQL Workbench官網

原則: 同位元數(64位)、同編譯器(VS16)、避開 RC/Alpha 版、非系統盤安裝(如 D:\Server)。

二、安裝步驟

1. Apache

  • 解壓至 D:\Server\Apache24
  • 編輯 conf/httpd.conf:
    ServerRoot "D:/Server/Apache24"
    Listen 80
    LoadModule php_module "D:/Server/php/php8apache2_4.dll"
    PHPIniDir "D:/Server/php"
    DirectoryIndex index.php index.html
    AddType application/x-httpd-php .php
  • 測試:httpd -t → httpd -k install -n "Apache2.4" → 服務啟動

2. PHP

  • 解壓至 D:\Server\php
  • 複製 php.ini-development → php.ini
  • 關鍵配置:
    extension_dir = "ext"
    extension=mysqli
    extension=pdo_mysql
    date.timezone = Asia/Shanghai
    display_errors = On
    error_log = "D:/Server/logs/php_error.log"
    session.save_path = "D:/Server/tmp/session"
    upload_max_filesize = 50M
    post_max_size = 55M
  • 將 PHP 目錄加入系統 PATH

3. MySQL

  • 解壓至 D:\Server\mysql-8.0
  • 建立 my.ini(放在 MySQL 根目錄或 C:\Windows):
    [mysqld]
    basedir=D:/Server/mysql-8.0
    datadir=D:/Server/mysql-8.0/data
    port=3306
    character_set_server=utf8mb4
    default_authentication_plugin=mysql_native_password
    innodb_buffer_pool_size=1G
    max_connections=500
  • 初始化:mysqld --initialize-insecure --console
  • 安裝服務:mysqld --install MySQL80 → net start MySQL80
  • 修改 root 密碼:mysql -u root -p -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';"

4. 整合驗證

<?php phpinfo(); ?>

瀏覽器訪問 https://localhost/info.php,確認 Apache、PHP、mysqli、pdo_mysql 全部載入正常。

三、安全加固清單(必做)

風險加固措施
PHP CGI 執行漏洞 (CVE-2012-1823 等)禁用 CGI 模式,僅用 mod_php (Handler);Apache 禁用 .php 執行權限於上傳目錄
目錄遍歷/信息洩露Options -Indexes;隱藏 ServerTokens Prod;刪除默認文檔、圖標
MySQL 匿名用戶/測試庫/弱密碼mysql_secure_installation 或手動:DELETE FROM mysql.user WHERE User=''; DROP DATABASE test; 強密碼策略
phpMyAdmin 弱口令/暴力破解改裝訪問別名、IP 白名單、強制 HTTPS、雙因子認證、Fail2ban
上傳文件執行上傳目錄設置 php_flag engine off、禁用腳本執行擴展、文件類型白名單驗證、重命名存儲
OpenSSL/組件版本過舊定期更新 Apache/PHP/MySQL 至安全版本,訂閱 CVE 郵件列表

四、常見漏洞修復案例:PHP CGI 執行任意文件

現象: 攻擊者上傳 shell.gif(內含 PHP 代碼),訪問 /php/php.exe/upload/shell.gif 觸發執行。

根因: PHP CGI 模式下,cgi.fix_pathinfo=1 導致路徑解析異常。

修復:

  1. 棄用 CGI,改用 mod_php (Apache) 或 PHP-FPM (Nginx)。
  2. php.ini 設置 cgi.fix_pathinfo=0。
  3. 上傳目錄 Apache 配置:
    <Directory "D:/Server/www/uploads">
        php_flag engine off
        SetHandler default-handler
        Options -ExecCGI
    </Directory>

五、總結

Windows WAMP 環境搭建看似簡單,實則「版本對齊、配置整合、安全加固」缺一不可。建議:開發環境用 Docker Desktop 運行官方鏡像(一致性、隔離性、可遷移性遠超手工部署);生產環境首選 Linux + 容器編排。本手冊適用於必須在 Windows 裸金屬部署的場景。

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