nginx在我本机windows主机上配置加载不了php模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx在我本机windows主机上配置加载不了php模块相关的知识,希望对你有一定的参考价值。

nginx在我本机windows主机上配置加载不了php模块,也就是说配置完毕后,通过本机127的地址可以打开html文件,但是php的文件不能正常浏览,一打开浏览就提示要下载,应该是nginx和php没关联到位,我在cmd里面执行命令了,如下图,但是执行后一直没反应了,求大师解答!

就算能执行,php-cgi跑一会就挂了,缺少php-fpm。你可以试试集成包phpfind或phpstudy,自动配好php+nginx,带中文控制面板。你可以研究一下。追答

参考技术A nginx服务开启了?在服务里确认一下追问

恩,已经start nginx了,但是没用!

nginx Windows:设置站点可用配置

【中文标题】nginx Windows:设置站点可用配置【英文标题】:nginx Windows: setting up sites-available configs 【发布时间】:2012-10-15 18:40:36 【问题描述】:

我正在尝试在我的 Windows 开发环境中设置 Nginx。我找不到如何在 Linux 上创建类似于"sites-enabled" 的东西,Nginx 会在其中寻找(链接到)活动虚拟主机配置。

有没有办法对具有实际配置文件快捷方式的目录和 Nginx 扫描该目录的目录执行类似的操作?或者除了将主机配置复制到nginx.conf之外,还有其他方法可以连接虚拟主机配置吗?

【问题讨论】:

【参考方案1】:

在 Windows 中,您必须提供配置文件所在目录的完整路径。有两个文件需要更新:nginx.conf 告诉 nginx 在哪里可以找到网站,localhost.conf 是网站的配置。

假设nginx安装在C:\nginx。如果安装目录位于另一个路径,则必须相应地更新该路径,无论它出现在以下两个配置文件中的任何位置。

nginx.conf

位置:C:\nginx\conf

worker_processes  1;
events 
    worker_connections  1024;

http 
    include       mime.types;
    default_type  application/octet-stream;
    #to read external configuration.
    include "C:/nginx/conf/sites-enabled/*.conf";

localhost.conf

位置:C:\nginx\conf\sites-enabled

server 
        listen       80;
        server_name  localhost;
        location / 
            root   html;
            index  index.html index.htm;
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html 
            root   html;
        

【讨论】:

【参考方案2】:

一些 nginx 的 Linux 软件包使用的“启用站点”方法利用了 include 指令,它可以理解 shell 通配符,请参阅 http://nginx.org/r/include。您也可以在自己的配置中使用它,例如

http 
    ...
    include /path/to/sites/*.conf;

请注意,尽管这种方法可能会非常令人困惑(特别是,除非您明确使用 default_server,否则很难判断哪个服务器是默认服务器)。

【讨论】:

这些都不适合我:include f:\code\mysite\dev-ops\nginx\dev\mysite.conf;include "f:\code\mysite\dev-ops\nginx\dev\mysite.conf";include f:/code/mysite/dev-ops/nginx/dev/mysite.conf; @Ryan 避开你的反斜杠。 @Greg 感谢您的提示! 我正在尝试包含一个自定义配置,例如:include "C:\\nginx-1.19.6\\conf\\conf.d\*.conf";但它不起作用【参考方案3】:

以下内容对我有用,但仅在我将主要 nginx exe 文件夹从 c:/Program Files (x86)/nginx-1.7.0 移动到 c:/nginx-1.7.0 之后(因为我认为它不能很好地处理文件路径中的空格):

http 
    ...
    include "f:/code/mysite/dev-ops/nginx/dev/mysite.conf";

【讨论】:

【参考方案4】:

在撰写此答案之前(2022 年 1 月 7 日),没有其他答案完全回答了这个问题。 通配符 (include a/*.b) 仅包含无法禁用/启用的虚拟主机列表。 sites-enabledsites-available 是关于能够在不删除相应配置文件的情况下禁用虚拟主机。 Nginx 只有一个配置文件(nginx.conf),其中又包含其他文件。包含文件的能力导致了启用/可用设计。 所以目录结构如下:

conf // or whatever
  nginx.conf
  sites-enabled
    default // symlink to sites-available/default.conf
  sites-available
    default.conf // You can omit the extension but I just like it
    whatever.conf
    some vhost.conf
    another vhost.conf
    disabled vhost.conf
    other config files ...
# nginx.conf
http 
  # ...
  include path/to/sites-enabled/* # include the enabled ones

在 windows (cmd) 中你可以这样做:

mklink Link Target
# for example
mklink default X:/path/to/nginx/conf/sites-available/default.conf

很多人认为 windows 没有符号链接,它确实有 :-)

我使用稍微复杂的配置目录结构,用于开发:

conf/
  nginx.conf
  sites-enabled/
    some-site // sites-available/some-site/env where env is either dev or prod
  sites-available/
    some-site/
      prod.conf
      dev.conf
      dev/
        www.conf // vhost (server ) for the www subdomain (e.g. www.example.com), has 2 server directives, one for http and the other for https, respectively including `snippets/http.conf` and `snippets/https.conf`. You only need to set `server_name` and include http.conf in order to make http redirect to https properly. You may do `proxy_pass` in https but not in http.
        api.conf // same as above but for the api subdomain
        root.conf // vhost for the root domain with (e.g example.com without any subdomain prefix)
      prod/
        www.conf // Same as dev/ but mostly without `proxy_pass` since you're mostly delivering static files
        api.conf
        root.conf
      snippets/
        http.conf  // listen on ipv4 80/ipv6 80 and redirect http to https
        https.conf // listen on ipv4 443 ssl/ipv6 443 ssl and `include`s ssl.conf
        ssl.conf  // ssl config, pay attention to permission

【讨论】:

【参考方案5】:

您可以在 nginx.config 中包含带有相对路径的配置(相对路径只是配置文件本身的路径,与日志路径相反):

http 
  include       mime.types;
  default_type  application/octet-stream;
  include       ../sites-enabled/*.conf;
  ...

【讨论】:

以上是关于nginx在我本机windows主机上配置加载不了php模块的主要内容,如果未能解决你的问题,请参考以下文章

02 VM下仅本机模式下与宿主机的网络配置

gdb我在我本机上p不了,在别人机子上可以

gdb我在我本机上p不了,在别人机子上可以

nginx 无法访问图片问题

小白 windows 部署 Nginx 并虚拟主机配置 和 mySQL 的部署

如何在Windows上配置并运行Nginx