На картинке выше мой вывод на консоль, который происходит, когда я запускаю
sudo /usr/sbin/apachectl restart
когда я вручную запускаю и останавливаю apache, в консоли нет сообщений о синтаксических ошибках или других сообщениях. Итак, как мне отладить это?
РЕДАКТИРОВАТЬ: список вещей, использующих порты
$ sudo lsof -i:80
Password:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 734 root 5u IPv6 0xf..0 0t0 TCP *:http (LISTEN)
httpd 736 _www 5u IPv6 0xf..0 0t0 TCP *:http (LISTEN)
httpd 774 root 4u IPv4 0xf..0 0t0 TCP *:http (LISTEN)
httpd 777 _www 4u IPv4 0xf..0 0t0 TCP *:http (LISTEN)
httpd 822 _www 4u IPv4 0xf..0 0t0 TCP *:http (LISTEN)
это точно также и для -i: 443. Почему так много httpds? разве не должно быть только одного? (для каждой версии IP, я думаю)
при просмотре IP-адреса моего сервера в (ваш любимый веб-браузер) он просто сообщает «Внутренняя ошибка сервера».
А затем консоль на сервере сообщает "nstat_lookup_entry failed 2" = \
Из вашего снимка экрана кажется, что сбойная операция пытается привязать к IPv6-эквиваленту 0.0.0.0
, т.е. [::]
. Также кажется, что привязка к IPv4 "адресу" 0.0.0.0
удается. Итак, после запуска вашего приложения Rails проверьте вывод netstat -64tulpen
(или соответствующий эквивалент в OS X) и посмотрите, действительно ли он не прослушивает нужные порты. Также попробуйте выяснить, что использует IPv6, привязанный к [::]:80
и [::]:443
, и почему.
Очевидно, на вашем MAC уже запущена другая программа. Лучше всего будет Skype, если у вас не установлен другой сервер. Раньше он использовал эти два порта.
Может быть, проще - попробуйте это на терминале, чтобы увидеть, что слушает:
sudo lsof -n -i4TCP:80 | grep LISTEN