首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

Windows 手動搭建 PHP 開發環境 (Apache + PHP + MySQL) 完整圖文教學

     編輯:PHP 相關知識

前言:為什麼不建議用 WAMP/XAMPP?

整合包雖然方便,但版本鎖定、元件耦合、升級困難、安全更新滯後。手動安裝可自由組合版本 (如 PHP 8.3 + MySQL 8.0 + Apache 2.4),且利於理解各元件運作原理。

軟體版本與下載 (2024 建議)

元件建議版本下載來源
Apache2.4.59 (VC15)Apache Lounge (官方不提供 Windows binary)
PHP8.3.10 (NTS, VS16)windows.php.net
MySQL8.0.39 (Community)MySQL 官網
Visual C++ RedistributableVC15 (2015-2022)Microsoft

關鍵:PHP 必須選 NTS (Non Thread Safe) 版,搭配 Apache mod_fcgid 或 mod_proxy_fcgi (FastCGI) 運行,效能與穩定度優於舊式 mod_php (TS)。

安裝步驟

1. 安裝 Visual C++ Redistributable

雙擊執行 vc_redist.x64.exe,缺少會導致 Apache/PHP/MySQL 啟動報 VCRUNTIME140.dll not found。

2. 安裝 Apache

  1. 解壓 httpd-2.4.59-win64-VC15.zip 至 C:\Apache24。
  2. 編輯 C:\Apache24\conf\httpd.conf:
    • Define SRVROOT "C:/Apache24" (確認路徑正確,用正斜線)。
    • ServerName localhost:80 (取消註解)。
    • DocumentRoot "C:/Workspace/PHP" (你的專案根目錄)。
    • <Directory "C:/Workspace/PHP"> 對應修改。
    • 啟用模組 (取消註解):
      LoadModule proxy_module modules/mod_proxy.so
      LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
      LoadModule rewrite_module modules/mod_rewrite.so
      
    • 新增 PHP FastCGI 設定 (檔案末尾):
      # PHP-FPM via mod_proxy_fcgi
      ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/C:/Workspace/PHP/$1
      DirectoryIndex index.php index.html
      
  • 測試:C:\Apache24\bin\httpd.exe -t → Syntax OK。
  • 安裝服務:C:\Apache24\bin\httpd.exe -k install -n "Apache24",啟動服務。
  • 3. 安裝 PHP (NTS)

    1. 解壓 php-8.3.10-nts-Win32-vs16-x64.zip 至 C:\PHP83。
    2. 複製 php.ini-development 為 php.ini。
    3. 編輯 php.ini 關鍵設定:
      extension_dir = "C:/PHP83/ext"
      date.timezone = Asia/Taipei
      
      ; 啟用常用擴充套件
      extension=curl
      extension=gd
      extension=mbstring
      extension=mysqli
      extension=pdo_mysql
      extension=openssl
      extension=fileinfo
      extension=intl
      extension=zip
      
      ; 生產環境建議
      expose_php = Off
      display_errors = Off
      log_errors = On
      error_log = "C:/PHP83/logs/php_error.log"
      upload_max_filesize = 20M
      post_max_size = 20M
      max_execution_time = 60
      memory_limit = 256M
      
    4. 建立日誌目錄:mkdir C:\PHP83\logs。
    5. 註冊 PHP-FPM 服務 (使用 NSSM 或手動啟動):
      C:\PHP83\php-cgi.exe -b 127.0.0.1:9000 -c C:\PHP83\php.ini
    6. 驗證:C:\PHP83\php.exe -v。
    7. 4. 安裝 MySQL

      1. 執行 mysql-8.0.39-winx64.msi,選 Custom 安裝至 C:\MySQL80。
      2. 配置:Standalone Server、Default Auth Plugin caching_sha2_password (PHP 8.3 原生支援)、設定 root 密碼、建立 developer 用戶。
      3. 編輯 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini (隱藏檔案):
        [mysqld]
        default_authentication_plugin=caching_sha2_password
        character-set-server=utf8mb4
        collation-server=utf8mb4_unicode_ci
        max_connections=200
        innodb_buffer_pool_size=1G
        
      4. 啟動服務:net start mysql80。
      5. 驗證整合

        在 C:\Workspace\PHP\index.php 建立:

        <?php
        phpinfo();
        $pdo = new PDO('mysql:host=127.0.0.1;dbname=mysql', 'root', 'your_password');
        echo "PDO MySQL: " . ($pdo ? 'Connected' : 'Failed');
        

        瀏覽 https://localhost/ 應顯示 PHP 資訊頁且 PDO 連線成功。

        常見問題排查

        現象原因解決
        Apache 啟動即閃退端口 80 被佔用 (IIS, Skype)netstat -ano | findstr :80 找 PID 結束,或改 Apache 聽 8080
        PHP-FPM 連線失敗 (502/503)PHP-CGI 未啟動、端口 9000 防火牆、路徑錯誤檢查 tasklist | findstr php-cgi、防火牆開放 9000、ProxyPassMatch 路徑大小寫
        MySQL 連線被拒skip-networking、bind-address、防火牆 3306my.ini 確認 bind-address=0.0.0.0、防火牆開放
        中文亂碼資料庫/表/連線編碼不一致全鏈路 utf8mb4:my.ini、PDO DSN charset=utf8mb4、HTML <meta charset="utf-8">

        開發效率加成工具

        • Composer:php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && php composer-setup.php --install-dir=C:\PHP83 --filename=composer.bat
        • Xdebug:下載 php_xdebug-3.3.1-8.3-nts-vs16-x64.dll 放入 ext,php.ini 加 zend_extension=xdebug、xdebug.mode=debug、xdebug.client_port=9003。
        • VS Code + PHP Intelephense:智能提示、跳轉定義、靜態分析。
        • Git for Windows:版本控制。

        完整自動化安裝 PowerShell 腳本見 GitHub。

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