zoukankan      html  css  js  c++  java
  • Windows 搭建 nginx + php web服务器.

    一、准备工作
    1、下载nginx  这里  我下载的是 nginx-1.18.0 这个版本
    2、下载 php    这里  我下载的是 VS16 x64 Thread Safe (2021-Mar-03 00:21:37)  这个版本。下下来文件名 php-8.0.3-nts-Win32-vs16-x64

    3、下载 mysql 5.6   这里

    二、配置nginx。

    配置成功标志:能访问nginx默认配置页
    下载后解压到某个路径下,路径不要有中文!  conf  文件夹中的 nginx.conf  文件 最主要修改以下地方

        server {
            listen       80;
            server_name  localhost;
    
            location / {
                root   E:/xxxx/xxx;    #web 根目录
                index  index.html index.htm index.php;    #web 根目录下默认访问的文件
         }
       }

    点击nginx.exe (最好是通过cmd 输入nginx.exe 来访问,因为如果配置有错误cmd 会回显可以看到)

    最终,通过  浏览器 输入 127.0.0.1 能够 访问到 以下界面则配置ok!

    三、安装 Mysql

    自己新建my.ini 文件,内容如下

    [mysql]
    default-character-set=utf8 
    
    [mysqld]
    port = 3306 
    basedir=E:\Work\mysql-5.6.51-winx64
    datadir=E:\Work\mysql-5.6.51-winx64\data 

    max_connections
    =200
    character-
    set-server=utf8
    default-storage-engine
    =INNODB
    max_connect_errors
    =100
    explicit_defaults_for_timestamp
    =true

    然后 进入mysql的bin目录,执行mysqld  --initialize-insecure ,第一次执行的话,时间会久一些,执行结束后没有输出信息,查看bin的同级目录下会多出一个data文件夹

    如果本来有 mysql的服务  或者安装服务错误 可以使用  mysqld -remove mysql 来移除已经安装的mysql 服务

    重新安装 即:   mysqld --install MySQL --defaults-file="E:\Work\mysql-5.6.51-winx64\my.ini"

    然后在开始 => 运行 => 服务 里选择 MySQL 或者直接cmd   =>  net start MySQL

    修改 root 用户密码

    mysql>use mysql; 
    mysql>update user set password=password('your password') where user='root'; 
    mysql>flush privileges;

    接下来可以尝试 连接。

    参考这里: https://www.cnblogs.com/alan-lin/p/9966917.html

    四、配置php
    成功标志:能访问 phpinfo.php。

    1、修改 php 配置

    解压 以后 复制 一份php.ini-development 修改成 php.ini

    找到  ;cgi.fix_pathinfo=1  这一行 把 前面的 ; 去掉变成   cgi.fix_pathinfo=1  

    找到  ;extension=mysqli  同样去掉 ;  让其支持 mysql 。修改成 extension=php_mysqli.dll

    2、添加环境变量使 php 能够访问到 php扩展的相关dll

    将你 php 安装目录内的 ext 文件夹添加到系统 环境变量,或者把你需要添加的扩展dll 文件拷贝到 system 目录下也可以。 

    3、修改 nginx 配置 让其做 cgi 转发. 修改以下段落  去掉前面的 # 注释。其他做对应修改

    location ~ .php$ {
        root           E:/xxxx/xxx;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    4、web 根目录 创建以下内容的 phpinfo.php 文件。 通过  php-cgi.exe -b 127.0.0.1:9000 -c ./php.ini 启动 php-cgi.exe !

    <?php
    
    // 显示所有信息,默认显示 INFO_ALL
    phpinfo();
    
    // Show just the module information. 仅仅显示PHP模块信息,
    // phpinfo(8) 返回同样的结果。
    phpinfo(INFO_MODULES);
    
    ?>
    php-cgi.exe -b 127.0.0.1:9000 -c ./php.ini

    5、通过 127.0.0.1/phpinfo.php 能够访问以下界面则成功!

    接下来能干些啥呢? 比如下载个 wordpress 搭建本地博客系统啦 等等。。

    四、我遇到的问题

    如果访问不是你预期的,可以查看 nginx 目录下的 log 文件夹,里面有错误日志。

    我一开始访问一直是 500,查看日志一直是这个错误

    [error] 9024#7256: *1023 maximum number of descriptors supported by select() is 1024 while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /phpinfo.php HTTP/1.0", 
    upstream: "http://127.0.0.1:80/phpinfo.php", host: "127.0.0.1"
    3400#2700: *1024 WSARecv() failed (10053: An established connection was aborted by the software in your host machine) while reading response header from upstream,
    client: 127.0.0.1, server: localhost, request: "GET /phpinfo.php HTTP/1.0", upstream: "http://127.0.0.1:80/phpinfo.php", host: "127.0.0.1"

    在网上找的内容都是说 nginx 配置有问题,修改下面这个值。

    events {
        worker_connections  1024;
    }

    实际上不是这个问题,是配置的 cgi 转发有问题,转发成 死循环 了。看到这个答案 才解决我的问题 

    https://stackoverflow.com/questions/28265717/worker-connections-are-not-enough/28269408 

    location ~ .php$ {
        proxy_pass   http://127.0.0.1;
    }

    在前面配置的cgi转发 还有一段这个没注意到。一直报错

  • 相关阅读:
    Python String Methods
    python 文件命名与系统文件同名引起的运行错误
    Python cmd 中文显示乱码
    pyqt4 串口通信 自动化测试
    Python 判断字符串是否包含子字符串
    python time 显示
    pyqt4 UI界面显示乱码
    QtDesigner PyQt4 Python
    FuzzScanner 信息收集小工具
    winrar+目录穿透复现
  • 原文地址:https://www.cnblogs.com/lesten/p/14561688.html
Copyright © 2011-2022 走看看