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

Windows 7 建置 Nginx + PHP 開發環境完整手冊

     編輯:更多程式設計知識

架構說明

Nginx 負責靜態資源與反向代理,PHP 透過 php-cgi.exe 以 FastCGI 模式運行(監聽 127.0.0.1:9000)。Nginx 遇到 .php 請求轉發給 FastCGI 處理。

軟體準備

  • Nginx for Windows:nginx-1.5.2(或較新穩定版)
  • PHP for Windows:php-5.4.3 (Non Thread Safe 版本,含 php-cgi.exe)
  • 工具:RunHiddenConsole.exe(讓 FastCGI 背景執行不佔用視窗)

全部解壓至 D:\webServer\ 目錄:

D:\webServer\nginx-1.5.2\
D:\webServer\php-5.4.3\

Nginx 設定 conf/nginx.conf

server {
    listen 80;
    server_name localhost;
    charset utf-8;

    # 靜態資源根目錄
    location / {
        root E:/work/jentian/client;
        index index.html index.htm;
    }

    # PHP 處理
    location ~ \.php$ {
        root E:/work/jentian/server;          # PHP 檔案實體路徑
        fastcgi_param SCRIPT_FILENAME E:/work/jentian/server$fastcgi_script_name;
        fastcgi_index index.php;
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
    }
}

關鍵:fastcgi_param SCRIPT_FILENAME 路徑必須與 root 指向一致,否則 PHP 會找不到腳本檔案。

PHP 設定 php.ini

; 必須啟用
cgi.fix_pathinfo=1
; 擴充模組依專案需求啟用
extension_dir = "ext"
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
; 時區
date.timezone = Asia/Taipei

一鍵啟動批次檔 start_nginx_php.bat

@echo off
set PHP_FCGI_MAX_REQUESTS=1000
echo 啟動 PHP FastCGI...
RunHiddenConsole D:\webServer\php-5.4.3\php-cgi.exe -b 127.0.0.1:9000 -c D:\webServer\php-5.4.3\php.ini

echo 啟動 Nginx...
D:\webServer\nginx-1.5.2\nginx.exe -p D:\webServer\nginx-1.5.2\
cd /d D:\webServer\nginx-1.5.2\
pause

RunHiddenConsole 讓 php-cgi 在背景執行,關閉 CMD 視窗不會終止進程。

停止服務批次檔 stop_nginx_php.bat

@echo off
echo 停止 Nginx...
D:\webServer\nginx-1.5.2\nginx.exe -s quit
echo 停止 PHP FastCGI...
taskkill /f /im php-cgi.exe >nul 2>&1
pause

驗證步驟

  1. 執行 start_nginx_php.bat。
  2. 瀏覽器開啟 https://localhost/ → 應顯示 Nginx 歡迎頁。
  3. 在 E:/work/jentian/server 建立 info.php:<?php phpinfo(); ?>。
  4. 瀏覽 https://localhost/info.php → 應顯示 PHP 資訊頁。

常見問題排查

現象可能原因解決
PHP 頁面顯示原始碼FastCGI 未啟動或 port 錯誤檢查 9000 port、php-cgi 進程、防火牆
404 No input file specifiedSCRIPT_FILENAME 路徑錯誤確認 root 與 fastcgi_param 路徑一致
502 Bad Gatewayphp-cgi 崩潰或超時查 php 錯誤日誌、調大 request_terminate_timeout
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved