【发布时间】:2021-02-19 11:25:20
【问题描述】:
我是 Nginx 新手,在这里遇到了一些麻烦。
我正在使用 Mac OS 和 nginx version: nginx/1.17.7。
我第一次下载 Nginx 是很久以前的事了。那时,一切都运行得很完美。然后当我玩nginx.conf 时,我不知何故搞砸了。所以,当我今天重新开始学习 Nginx 时,我将之前的所有文件都删除了,并通过 homebrew 重新安装了它。然后我希望有人可以帮助我的问题突然出现。
初始化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()
我在网上搜索了这个问题。有很多答案,但要么解决方案适用于 Linux 而不是 Mac,要么就是无法工作。
我找到的最有希望的答案之一是杀死 processes,它们在某种程度上使用了该端口。 顺便说一句,即使我有这个错误,我也可以访问页面localhost:8080,但它是403 Forbidden page。然后我在Terminal上尝试了一个命令:ps ax -o pid,ppid,%cpu,vsz,wchan,command|egrep '(nginx|PID)'(@987654321 @)
这是输出:
PID PPID %CPU VSZ WCHAN COMMAND
21827 1 0.0 4291640 - nginx: master process nginx
21828 21827 0.0 4301348 - nginx: worker process
21831 93689 0.0 4267768 - egrep (nginx|PID)
我不(仍然不)明白这说明了什么,所以我试图通过kill -9 <PID> 杀死所有这些人,即kill -9 21827、kill -9 21828 和kill -9 21831。
然后我得到一个错误:-bash: kill: (21827) - Operation not permitted。我只是想也许sudo 可以解决这个问题,所以我尝试了sudo kill -9 21827。而这一次成功了。我杀死了所有进程,但第三个。当我尝试sudo kill -9 21831 时,我得到了No such process。然后我发现这是因为这个进程的PID 出于某种原因一直在变化,所以如果我没有在那个确切的时刻捕捉到进程的确切 PID,我就无法'杀了它。然后我就这样放在那里了。
然后我尝试在Terminal 上运行nginx。这是输出:
nginx: [emerg] open() "/usr/local/var/run/nginx.pid" failed (13: Permission denied)
这次我没有找到有可能解决这个问题的答案...所以我尝试通过命令sudo nginx -s stop && sudo nginx(source)重启nginx,但这并没有不行。它报告了nginx: [alert] kill(21827, 15) failed (3: No such process)。所以我尝试了同一来源中提供的另一个答案:brew services list,然后是brew services start nginx。
但我还是得到了nginx: [emerg] open() "/usr/local/var/run/nginx.pid" failed (13: Permission denied)。
现在我不知道如何解决这个问题。我也尝试通过自制软件重新安装 nginx。但是之前的进程会像它们一样弹出。
此外,我也尝试了这个命令:ps aux | grep nginx。在我杀死进程之前,这给了我三个进程。毕竟这些,我才得到
apple 22922 0.0 0.0 4267768 832 s003 S+ 3:09AM 0:00.00 grep nginx
不知道这能说明什么。
有什么可以帮忙的吗?或者,您能否分享让 Nginx 运行的正确初始步骤?
【问题讨论】: