wnmp環境搭建

来源:http://www.cnblogs.com/huangguojin/archive/2016/09/23/5900988.html
-Advertisement-
Play Games

windows下配置nginx+php環境 剛看到nginx這個詞,我很好奇它的讀法(engine x),我的直譯是“引擎x”,一般引“擎代”表了性能,而“x”大多出現是表示“xtras(額外的效果)”,那麼整個詞的意思就是類似“極致效果”,“額外性能”。當然這裡不是要來嘮嗑,以上是題外話。 ngi ...


windows下配置nginx+php環境

  剛看到nginx這個詞,我很好奇它的讀法(engine x),我的直譯是“引擎x”,一般引“擎代”表了性能,而“x”大多出現是表示“xtras(額外的效果)”,那麼整個詞的意思就是類似“極致效果”,“額外性能”。當然這裡不是要來嘮嗑,以上是題外話。

  nginx相較於我們熟悉的apache、IIS的優勢,就我淺入淺出的瞭解,在於“反向代理”和“負載均衡”。因此考慮到能夠為Web伺服器節省資源,它可以代替apache來提供Web服務。那麼上正題了,nginx有這麼多優勢,那在windows下如何來配置nginx+php環境?網上看到還是那麼多轉載來轉載去的文章。這裡就我配置的過程,來介紹一下:

1、首先需要準備的應用程式包。

  nginx:nginx/Windows-1.0.4

  php:php-5.2.16-nts-Win32-VC6-x86.zip (nginx下php是以FastCGI的方式運行,所以我們下載非線程安全也就是nts的php包)

  (還會用到)RunHiddenConsole:RunHiddenConsole.zip

2、安裝與配置。

 1)php的安裝與配置。

  直接解壓下載好的php包,到D盤wnmp目錄(D:\wnmp),這裡把解壓出來的文件夾重命名成php5。進入文件夾修改php.ini-recommended文件為php.ini,並用Editplus或者Notepad++打開來。找到

extension_dir = "./ext"

更改為

extension_dir = "D:/wnmp/php5/ext"
往下看,再找到
;extension=php_mysql.dll
;extension=php_mysqli.dll

前面指定了php的ext路徑後,只要把需要的擴展包前面所對應的“;”去掉,就可以了。這裡打開php_mysql.dll和php_mysqli.dll,讓php支持mysql。當然不要忘掉很重要的一步就是,把php5目錄下的libmysql.dll文件複製到C:\Windows目錄下,也可以在系統變數裡面指定路徑,當然這裡我選擇了更為方便的方法^_^。

到這裡,php已經可以支持mysql了。

  接下來我們來配置php,讓php能夠與nginx結合。找到

 

;cgi.fix_pathinfo=1

我們去掉這裡的封號。

cgi.fix_pathinfo=1
這一步非常重要,這裡是php的CGI的設置。

 2)nginx的安裝與配置。

  把下載好的nginx-1.0.4的包同樣解壓到D盤的wnmp目錄下,並重命名為nginx。接下來,我們來配置nginx,讓它能夠和php協同工作。進入nginx的conf目錄,打開nginx的配置文件nginx.conf,找到

location / {
root html;      #這裡是站點的根目錄
index index  index.html index.htm index.php;
}

將root  html;改為root   D:/wnmp/www;

再往下,找到

 

複製代碼
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
複製代碼

先將前面的“#”去掉,同樣將root  html;改為root   D:/wnmp/www;。再把標記為紅色的/scripts改為“$document_root”,這裡的“$document_root”就是指前面“root”所指的站點路徑,這是改完後的:

複製代碼
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
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;
}
複製代碼

保存配置文件,就可以了。

  nginx+php的環境就初步配置好了,來跑跑看。我們可以輸入命令 

來啟動php,並手動啟動nginx,當然也可以利用腳本來實現。

  首先把下載好的RunHiddenConsole.zip包解壓到nginx目錄內,RunHiddenConsole.exe的作用是在執行完命令行腳本後可以自動關閉腳本,而從腳本中開啟的進程不被關閉。然後來創建腳本,命名為“start_nginx.bat”,我們在Notepad++里來編輯它

複製代碼
@echo off
REM Windows 下無效
REM set PHP_FCGI_CHILDREN=5

REM 每個進程處理的最大請求數,或設置為 Windows 環境變數
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
複製代碼

再另外創建一個名為stop_nginx.bat的腳本用來關閉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.bat看看進程管理器是不是有兩個nginx.exe的進程和一個php-cgi.exe的進程呢?

這樣nginx服務就啟動了,而且php也以fastCGI的方式運行了。

到站點目錄下,新建一個phpinfo.php的文件,在裡面編輯

<?php
phpinfo();
?>

保存後,打開瀏覽器輸入“http://localhost/phpinfo.php”,如果看到

就說明,nginx+php的環境已經配置好了,呵呵~

轉自http://www.cnblogs.com/huayangmeng/archive/2011/06/15/2081337.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 定義類: 訪問修飾符 class 類名{ } 訪問修飾符如:public 、priate是可選的 class是聲明類的關鍵字 按照命名規範,類名首字母大寫 例:創建“人”類,關鍵代碼: public class Person{ } ********************************** ...
  • package com.hp.io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; ...
  • 一、 概述 1. 正則表達式的測試地址: http://tool.chinaz.com/regex/ 二、具體的常用正則表達式 1. 郵箱正則表達式: 1)\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14} 2)\w+([-+.]\w+)*@ ...
  • package com.hp.io; import java.io.FileOutputStream; import java.io.IOException; public class FileOutputStreamTest{ public static void main(String []ar ...
  • 大家好,今天我們來說說機器語言。別擔心 本人仍然是喵 不是冒牌貨。可能有人說這跨度怎麼怎麼這麼大,從iOS一下就到了機器語言。恩恩,我想說 其實瞭解一點電腦基礎的知識對於我們編程開發來說是有好處的 可以幫我們理解設計高級語言的人會從哪些方面去考慮。 好了,說了這麼多題外話,還是來聊聊正題吧。希望大 ...
  • package com.hp.io; import java.io.*; public class BufferedWriterTest{ public static void main(String args[]){ FileWriter fw=null; BufferedWriter bw=nu ...
  • 最近重拾之前半途而廢的C++,恰好看到了《 "C++ 實現銀行排隊服務模擬" 》,但是沒有實驗樓的會員,看不到具體的實現,正好用來作為練習。 模擬的是銀行的排隊叫號系統,所有顧客以先來後到的順序在同一個隊列中等待,當有服務視窗空閑時,則隊首的顧客接受服務,完成後則下一位顧客開始接受服務。 本實現是事 ...
  • Java list與Python list相比較 Java List:有序的,可重覆的。(有序指的是集合中對象的順序與添加順序相同) Python list(列表)是有序的,可變的。 Java List分類: ArrayList:底層使用數組,線程不安全,查找速度快,增刪速度慢 在迭代過程中,對集合 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...