zoukankan      html  css  js  c++  java
  • 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:selfwww;    //修改成自己网站根目录的绝对路径(自己喜欢)
                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:selfsoftphp-7.2.11/php-cgi.exe -b 127.0.0.1:9001 -c E:selfsoftphp-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:selfsoftphp-7.2.11/php-cgi.exe -b 127.0.0.1:9001 -c E:selfsoftphp-7.2.11/php.ini 
    
    echo Starting nginx...
    
    rem 注意替换成你的nginx目录
    
    E:selfsoft
    ginx-1.14.0/nginx.exe -p E:selfsoft
    ginx-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没有任何作用,别问我怎么知道,我当初就搞了很久,没想到真的是要重启电脑。

  • 相关阅读:
    文言文
    【我回来了】TO DO LIST
    AFO
    [DP]
    [CF1221F]Choose a Square
    关于博主(2)
    自我介绍( 并不?
    老年选手的复健之路
    CSP/NOIP 2019 游记
    CSP前模板复习
  • 原文地址:https://www.cnblogs.com/wwjchina/p/9804576.html
Copyright © 2011-2022 走看看