平时用的系统都是Windows 10,准备搭建一个Nginx、MariaDB 、PHP的环境用于学习、开发和测试。为了便捷,使用了网上的一键安装包 wnmp,当前的版本是Wnmp-3.2.2.exe。根据安装向导安装完成后,启动。问题来了。php和mariadb的服务都正常启动了,只有nginx 一直无法启动。
点击nginx 右侧的logs选择error.log ,查看nginx 的日志如下:
2018/11/28 01:33:07 [notice] 16500#14232: signal process started
2019/09/10 21:16:49 [emerg] 1352#11432: bind() to 0.0.0.0:443 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
从日志可以分析原因应该是nginx 配置中的443端口被系统某个进程占用了。查看nginx 的配置文件nginx.conf
# Begin HTTPS Server
server {
listen 443 http2 ssl;
server_name localhost; # codebye.com copyright.
…
}
win+R,输入cmd 回车,打开命令行
>netstat -aon | findstr :443
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 5796
可以看出443端口被进程占用,Id是5796
打开任务管理器 -详细信息 Tab 标签,找到5796对应的进程,原因找到。
原因虽然找到了,不过为了不影响VMware的使用。所以将nginx 配置中的443端口换成别的用了。比如444 或其他 未使用的端口。重启nginx服务,运行成功。到此wnmp的所有服务都正常运行了。