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,带中文控制面板。你可以研究一下。追答恩,已经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-enabled 和 sites-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模块的主要内容,如果未能解决你的问题,请参考以下文章