Я пытаюсь запустить nginx на Mac OS X с помощью команды 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()
Я пытаюсь остановить службу Apache, используя sudo apachectl stop
Это вызывает у меня следующую ошибку
launchctl: Error unloading: org.apache.httpd
В соответствии с этот ответ скорее всего, это означает, что 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)
Вывод этой команды продолжает меняться со временем.
Как заставить работать 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» с идентификатором процесса 2355, работающий на порту 8080.
Вы можете попробовать выпустить kill -TERM 2355
к идентификатору связанного процесса, чтобы остановить его (если вы не хотите, чтобы он запускался), а затем подтвердите, нажав netstat
, как показано выше. Измените «2355» на свой собственный идентификатор процесса.
Ты можешь по-прежнему получите сообщение об ошибке, даже если вы подтвердили, что в этой части ничего не запущено, прежде чем пытаться начать nginx
. В этом случае ваш Nginx может иметь конфликтующие записи относительно этого порта. Найдите в своей конфигурации Nginx 8080
. Если есть несколько упоминаний, просмотрите документы для соответствующей конфигурации, чтобы убедиться, что вы не использовали ее слишком много раз.