windows下搭建nginx+php開發環境


windows下搭建nginx+php開發環境

1.前言

  windows下大多我們都是下載使用集成環境,但是本地已經存在一個集成環境,但不適合項目的需求。因此准備再自己搭建一個環境。

 

2.准備

  工具:

    下載 nginx1.14.0(版本根據自己需要下載,本教程使用1.14.0版本)

  

     下載 PHP7.2.11(版本根據自己需要下載,本教程使用7.2.11版本)

     下載 RunHiddenConsole 鏈接:https://pan.baidu.com/s/1gHDrQBqDUFZH4uESNV9aXQ 密碼:oq9a

3.安裝

  (1)解壓安裝phpnginx

    解壓安裝在指定文件夾。
    

  (2)配置php

    進入php文件夾,找到php.ini-development配置文件並copy一份重命名為php.ini

    雙擊打開php.ini配置文件

    搜索extension_dir找到配置項,把該配置項設置成php目錄下ext的絕對路徑(最好是絕對路徑,也可以是相對路  徑"./ext"),如圖:

    

    ps:左邊的;號要刪除,該分號作用是注釋,即分號后面的內容不參與執行,僅僅是備注。

    

    搜索cgi.fix_pathinfo找到配置項,取消注釋並把該配置項設置成1

     

    cgi.fix_pathinfo是用來設置在cgi模式下PHP是否提供PATH_INFO信息。

    因為nginx默認不會設置PATH_INFO的值,所以需要通過上面的方法來提供。

   

    ps:暫時開啟這兩個就可以執行了,其他配置項根據自己需求開啟,不一一說明

 

  (3)配置nginx

    打開nginx文件夾,conf里面的nginx.conf配置文件

    主要修改以下地方:

    

server {
        listen       81;         //端口號(默認80,因已存在一個集成環境造成沖突,改成81),根據自己需要修改
        server_name  test.com;   //喜歡什么寫什么(記得在host文件上加上該域名)

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   E:\self\www;    //修改成自己網站根目錄的絕對路徑(自己喜歡)
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        # 把這幾個前面的注釋#符號刪掉
     location ~ \.php$ { 

       #網站根目錄(跟上面那個一樣)

         root E:/self/www; 

        #php-cgi監聽端口號(默認9000,根據實際情況自己修改)     

        fastcgi_pass 127.0.0.1:9001;   
        fastcgi_index index.php;

        #下面這里要改看清楚原本是/script$fastcgi_script_name,改成$document_root$fastcgi_script_name;  

        #$document_root其實就是上面的root,可以直接改成絕對路徑E:/self/www$fastcgi_script_name這樣子,你喜歡

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
        include fastcgi_params;
      }

  ps:如果你直接復制上面的請把 我寫的注釋刪掉,怕影響了代碼。以下是我的配置圖:

  

  (4)開啟nginx和php-cgi

    開啟nginx:打開cmd命令提示符輸入命令,start nginx。(自己配置全局變量)

         或者進入到nginx目錄下,輸入命令 nginx.exe,開啟nginx

          nginx.exe -s reload  重啟

          nginx.exe -s quit   關閉

    開啟php-cgi.exe

    E:\self\soft\php-7.2.11/php-cgi.exe -b 127.0.0.1:9001 -c E:\self\soft\php-7.2.11/php.ini 

    就是php目錄下的 php-cgi.exephp-ini文件,加上絕對路徑,端口號要跟nginx的對上!

    

    這樣子就是正常滴,別人為它傻了,怎么沒反應。

 

  (5)測試

     在你的網站根目錄下創建一個phpinfo.php文件,里面編寫  

    <?php 
      phpinfo();

     然后保存。

     瀏覽器上輸入你的域名和端口號(端口號80的話不需要填寫,其他的一定要在域名后加上),加上PHP文件就能訪問成功啦~

    

 

 4.批處理文件

  

  這個窗口是不能關的,一旦管理,php-cgi就會關閉,就不能解析php文件。

  是不是很麻煩不能最小化,我們現在就來教你怎么解決。

  為了節省時間可以用批處理來打開/關閉Nginx和php-cgi, 

  這里用到RunHiddenConsole(用來隱藏CMD命令窗),網上一搜大把,本文開頭也給出了下載地址,下載后把RunHiddenConsole.exe和批處理文件放在同一級目錄就行啦,是不用雙擊打開安裝什么滴,別辣么傻,我傻就行了。

  編寫批處理文件(.bat就是批處理文件,有興趣學的可以學些)

  啟動nginx和php-cgi批處理文件start.bat(文件名自己喜歡)

  start.bat

@echo off

set PHP_FCGI_MAX_REQUESTS = 1000

echo Starting PHP FastCGI...

rem 下面這里的分別替換成你的php-cgi.exe和php.ini的路徑 ,后面的-b,-c等參數必須保留且注意前后空格

RunHiddenConsole E:\self\soft\php-7.2.11/php-cgi.exe -b 127.0.0.1:9001 -c E:\self\soft\php-7.2.11/php.ini 

echo Starting nginx...

rem 注意替換成你的nginx目錄

E:\self\soft\nginx-1.14.0/nginx.exe -p E:\self\soft\nginx-1.14.0/

cd D:/webServer/nginx-1.5.2/

pause

      關閉批處理文件 stop.bat  

@echo off
echo Stopping nginx...  
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit

  批處理文件雙擊就能運行。

 

       如果有人發現,端口號對上了,但是瀏覽器訪問php文件,只下載並沒有解析,為什么會這樣,明明百度了那么多教程,配置怎么看都沒有問題?

  其實很簡單,重啟電腦!是的,就是重啟電腦。重啟nginx沒有任何作用,別問我怎么知道,我當初就搞了很久,沒想到真的是要重啟電腦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM