我正在运行 Windows 10 的新安装。我需要为PHP创建一个本地测试环境。我之前在Ubuntu Linux上设置和运行NginX / PHP服务器,但从未在Windows上运行。我已经为Windows安装了NginX和PHP二进制文件。
在我启动并登录后,如果我转到C:\nginx
并运行nginx.exe
,Nginx服务器启动并运行正常,我得到了#34;欢迎到NginX"屏幕http://127.0.0.1
。
然后,如果我cd到C:\nginx\php
并运行php-cgi.exe -b 127.0.0.1:9000 -c c:/nginx/php/php.ini
,PHP服务器就会运行,我可以访问http://127.0.0.1/php.info
并获得php_info();
的输出。所以似乎一切都安装好了。
我现在的目标是在启动计算机时让PHP服务器自动启动。我下载了Non-Sucking Service Manager,并在Administraror模式下打开了一个命令提示符,并运行了nssm edit nginx
。我按如下方式填写了屏幕:
然后我为PHP做了同样的事情:
然而,虽然NginX似乎是在启动时启动,但PHP却没有。启动后,无需在命令行手动启动任何内容,我得到NginX欢迎屏幕。但是,如果我尝试查看PHP信息页面,我会收到以下消息:
无法连接
Firefox无法在127.0.0.1建立与服务器的连接。
如何让PHP在启动时自动启动?
这是我的nginx.conf
文件:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type text/html;
sendfile on;
keepalive_timeout 65;
server {
#Uncomment and edit the line below if you want to use a custom domainname
#server_name your.domain.com;
listen 80;
root c:/nginx/html;
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME c:/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}
}
}
答案 0 :(得分:1)
您的nginx.conf
似乎没问题。
......但是,虽然NginX似乎是在启动时开始......
我不相信NGINX欢迎页面,它很可能来自缓存。除非nssm启动了nginx进程,否则我也不信任服务状态Running
。
在我的测试中,nginx和php服务都没有正确启动。
我需要为这两项服务设置AppNoConsole=1
才能使它们正常工作。
According to the author(s)这是Windows 10 Creators Update的已知问题。
2017-04-26:Windows 10 Creators Update的用户应该使用prelease 构建2.2.4-101以避免服务无法启动的问题。如果 由于某种原因,你不能使用你也可以设置的构建 注册表中的AppNoConsole = 1,注意到期望的应用程序 控制台窗口可能会出现意外行为。
您可以通过NSSM Service Editor GUI > Process > Console window
更改此设置。只需清除该复选框,然后单击编辑服务。已经完成了。
也可以使用命令完成相同的操作。
net stop php
net stop nginx
nssm set php AppNoConsole 1
nssm set nginx AppNoConsole 1
net start nginx
net start php