Yin*_*ang 6 nginx mac-osx apache-2.2
我正在尝试使用以下命令在 Mac OS X 上启动 nginx sudo nginx
它失败并出现以下错误
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] still could not bind()
Run Code Online (Sandbox Code Playgroud)
我尝试通过使用停止 Apache 服务 sudo apachectl stop
这给我带来了以下错误
launchctl: Error unloading: org.apache.httpd
Run Code Online (Sandbox Code Playgroud)
根据这个答案,它很可能意味着 Apache 已经没有运行
然后我尝试使用以下方法计算端口 80 上正在运行的内容 sudo lsof -i:80
这输出到这个
Google 441 jaskaran 68u IPv4 0xa3f4d891ed1a8373 0t0 TCP 192.168.1.45:50993->www.google:http (ESTABLISHED)
Google 441 jaskaran 143u IPv4 0xa3f4d891ed054b5b 0t0 TCP 192.168.1.45:51017->www.scorecardresearch.com:http (ESTABLISHED)
Google 441 jaskaran 150u IPv4 0xa3f4d891eb9a1b5b 0t0 TCP 192.168.1.45:51018->www.scorecardresearch.com:http (ESTABLISHED)
Google 441 jaskaran 152u IPv4 0xa3f4d891ed1a4373 0t0 TCP 192.168.1.45:51019->www.scorecardresearch.com:http (ESTABLISHED)
Google 441 jaskaran 156u IPv4 0xa3f4d891ed071b5b 0t0 TCP 192.168.1.45:51020->www.scorecardresearch.com:http (ESTABLISHED)
Run Code Online (Sandbox Code Playgroud)
此命令的输出随时间不断变化。
我如何让 nginx 工作?
在尝试启动之前nginx
,请检查端口“8080”上是否已在运行某些内容,如下所示。我说端口“8080”,因为这是您发布的错误消息中显示的端口号:
$ sudo netstat -nlp | grep ':8080'
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 2355/nginx
tcp6 0 0 :::8080 :::* LISTEN 2355/nginx
就我而言,这显示了一个名为“nginx”的进程,其进程 ID 为 2355,在端口 8080 上运行。
您可以尝试kill -TERM 2355
向相关进程 ID 发出 来停止(假设您不希望它运行),然后使用 进行确认netstat
,如上所示。更改“2355”以匹配您自己的进程 ID。
即使您在尝试开始之前确认该部分上没有任何内容运行,您仍然nginx
可能会收到该错误。在这种情况下,您的 Nginx 可能有关于该端口的冲突条目。在您的 Nginx 配置中搜索8080
. 如果多次提及,请查看相关配置的文档,以确认您没有使用它太多次。
归档时间: |
|
查看次数: |
8779 次 |
最近记录: |