我对Nginx还不熟悉,在这里遇到了一些问题。
我使用的是Mac OS和nginx version: nginx/1.17.7
。
第一次下载Nginx是在一段时间之前,当时一切运行得很完美。但是当我尝试修改nginx.conf
文件时,不知怎么搞就把它弄乱了。因此,今天重新开始学习Nginx时,我将之前的所有文件都删掉了,然后通过homebrew重新安装了Nginx。接着我遇到了一个问题,希望有人可以帮忙解决。
初始化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的解决方案,要么就是无法解决问题。
其中最有希望的一个答案是关闭那些正在使用该端口的进程
。顺便说一句,即使我遇到了这个错误,我仍然可以访问页面localhost:8080
,但显示为403 Forbidden page
。然后我在终端
上尝试了一个命令:ps ax -o pid,ppid,%cpu,vsz,wchan,command|egrep '(nginx|PID)'
(来源)
以下是输出结果:
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
(来源)来重启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)
错误消息。
现在我不知道如何解决这个问题。我也试图通过homebrew重新安装nginx。但是之前的进程仍会像之前那样弹出。
此外,我也尝试了这条命令:ps aux | grep nginx
。 这给了我三个进程,直到我杀掉了进程。最终,我只剩下了
apple 22922 0.0 0.0 4267768 832 s003 S+ 3:09AM 0:00.00 grep nginx
不确定这能说明什么。
有人能帮忙解决这里出了什么问题吗?或者,你能分享一下启动Nginx的正确初始步骤吗?