Nginx(讀音 "engine x")以高併發、低記憶體佔用著稱,核心優勢在於反向代理與負載均衡。相比 Apache、IIS,Nginx 事件驅動架構能以更少資源處理更多連接,適合高流量 Web 服務。
| 組件 | 版本/說明 | 下載關鍵字 |
|---|---|---|
| Nginx | nginx/Windows-1.0.4+ | nginx Windows |
| PHP | php-5.2.16-nts-Win32-VC6-x86.zip | Non Thread Safe (nts) 版本 |
| RunHiddenConsole | RunHiddenConsole.zip | 用於後台運行腳本 |
關鍵點:PHP 必須下載 Non Thread Safe (nts) 版本,因為 Nginx 與 PHP 通過 FastCGI 協議通訊。
將 PHP 解壓至 D:\wnmp\php5
; 擴展目錄 extension_dir = "D:/wnmp/php5/ext" ; 啟用常用擴展(移除前面的分號) extension=php_mysql.dll extension=php_mysqli.dll extension=php_gd2.dll extension=php_mbstring.dll extension=php_curl.dll extension=php_xml.dll ; ... 其他按需啟用
cgi.fix_pathinfo=1
此設置對 Nginx + FastCGI 架構至關重要。
將 php5\libmysql.dll 複製至 C:\Windows 或加入系統 PATH 環境變量。
解壓至 D:\wnmp\nginx
# 網站根目錄
location / {
root D:/wnmp/www;
index index.php index.html index.htm;
}
# PHP FastCGI 處理
location ~ \.php$ {
root D:/wnmp/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 錯誤日誌
error_log logs/error.log;
注意:路徑分隔符統一使用正斜線 /,避免 Windows 反斜線轉義問題。
@echo off set PHP_FCGI_MAX_REQUESTS=1000 echo Starting PHP FastCGI... RunHiddenConsole D:/wnmp/php5/php-cgi.exe -b 127.0.0.1:9000 -c D:/wnmp/php5/php.ini echo Starting nginx... RunHiddenConsole D:/wnmp/nginx/nginx.exe -p D:/wnmp/nginx
@echo off echo Stopping nginx... taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI... taskkill /F /IM php-cgi.exe > nul exit
start_nginx.batnginx.exe 進程 + 1 個 php-cgi.exe 進程D:\wnmp\www 建立 phpinfo.php:<?php phpinfo(); ?>https://localhost/phpinfo.php,顯示 PHP 資訊頁即成功原因 1:缺少索引文件
server {
listen 80;
server_name localhost;
index index.php index.html;
root /var/www;
}
確保根目錄存在 index.php 或 index.html
原因 2:權限問題
Linux 下執行:
chown -R nginx_user:nginx_user /htdocs
Windows 下確保 Nginx 進程用戶對網站目錄有讀取權限。