#apache #virtualhost #host
#apache #virtualhost #хост
Вопрос:
Я нахожусь на MacOSX 10.9.3, и мой apache запущен:
$ sudo apachectl start
org.apache.httpd: Already loaded
Apache запущен, и внутри моего / etc / hosts у меня есть:
127.0.0.1 qwertyuiopoiuytrewq.mnbvcxzxcvbnm.com
Я могу выполнить пинг qwertyuiopoiuytrewq.mnbvcxzxcvbnm.com но я не могу видеть из своего браузера
http://qwertyuiopoiuytrewq.mnbvcxzxcvbnm.com/
И это мой virtualhost:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /path/to/root
ServerName qwertyuiopoiuytrewq.mnbvcxzxcvbnm.com
ServerAlias qwertyuiopoiuytrewq.mnbvcxzxcvbnm.com
</VirtualHost>
и curl ничего не получил
$ curl http://qwertyuiopoiuytrewq.mnbvcxzxcvbnm.com
curl: (7) Failed connect to qwertyuiopoiuytrewq.mnbvcxzxcvbnm.com:80; Connection refused
Что не так? Может быть, порт, который прослушивает Apache? Как я могу проверить, какой порт используется моей службой apache?
$ lsof -i | grep apache
ничего не отвечает… Я попытался с помощью команды, предложенной коллегой
$ lsof -i :80
Но…
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Google 13069 simonegentili 84u IPv4 0xec5b6b421454cd89 0t0 TCP 192.168.11.46:52061->fa-in-f95.1e100.net:http (ESTABLISHED)
Google 13069 simonegentili 105u IPv4 0xec5b6b421304ed89 0t0 TCP 192.168.11.46:52100->mil02s05-in-f13.1e100.net:http (ESTABLISHED)
Google 13069 simonegentili 125u IPv4 0xec5b6b42172fe5a1 0t0 TCP 192.168.11.46:51372->mil01s16-in-f1.1e100.net:http (ESTABLISHED)
Google 13069 simonegentili 138u IPv4 0xec5b6b42145a7d89 0t0 TCP 192.168.11.46:52070->edge-star-shv-07-fra3.facebook.com:http (ESTABLISHED)
Я попытался проверить, какой порт прослушивает apache:
$ cat /etc/apache2/httpd.conf | grep Listen
Apache должен отвечать на порт 80.
# Listen: Allows you to bind Apache to specific IP addresses and/or
# Change this to Listen on specific IP addresses as shown below to
#Listen 12.34.56.78:80
Listen 80
И, например, я не понимаю этот ответ:
$ sudo apachectl start
org.apache.httpd: Already loaded
$ ps aux | grep httpd
simonegentili 26677 0.0 0.0 2444976 416 s001 U 6:13PM 0:00.00 grep httpd
Комментарии:
1. Действительно ли запущены какие-либо процессы httpd? Похоже, что ваш apachectl имеет некоторые настройки поставщика для использования какого-либо альтернативного сервисного средства (вышестоящие инструменты не сообщают org.apache.httpd:»
2. Нижняя часть журнала ошибок также обычно довольно полезна.
3. Обновил мой ответ. Я «думаю», что apache включен, но я не уверен. Не могли бы вы прочитать нижнюю часть моего вопроса, чтобы понять, почему.
4. Похоже, что ваша проблема связана с управлением службами в вашей системе, поскольку в выходных данных присутствует только ваша команда «grep».
Ответ №1:
Ping проверяет, что хост доступен по сети, и обычно обрабатывается вашим ядром, а не каким-либо программным обеспечением, запущенным сверху. Пингинг подтвердил, что хост там, это не имеет ничего общего с Apache, прослушивающим порт.
Ответ №2:
Очевидно, это может произойти, когда вы нарушили httpd.conf. Вместо того, чтобы сообщить об обычной ошибке синтаксического анализа конфигурации apache с номерами строк и всем прочим, диспетчер служб вводит вас в заблуждение.
Смотрите:
http://neverblog.net/solving-org-apache-httpd-already-loaded-error-on-mac-os-x-snow-leopard/
Проверяя запущенные процессы, я заметил, что apache на самом деле не запущен, что показалось немного странным. К счастью, apachectl предлагает полезную команду для проверки синтаксиса вашей конфигурации, apachectl configtest. Конечно же, оказалось, что я изменил httpd.conf пару недель назад, но так и не перезагрузил Apache. Закомментировав строку-нарушение и запустив Apache, устранили проблему, и я снова запущен.
Тогда, по крайней мере, вам просто нужно отладить обычную ошибку httpd.conf, а не эту загадку.
Комментарии:
1. Большое вам спасибо! «apachectl configtest» сообщает мне, где конфигурация была неправильной. Исправлено. Но, … почему какие-либо ошибки показывают мне это? Я имею в виду, … какие-либо ошибки apache!! Загадка.
Ответ №3:
Вы должны запустить службу apache, используя эту команду /etc/init.d/apache2
start, 127.0.0.1 — это просто сетевой интерфейс с обратной связью.
Комментарии:
1. Я изменил вопрос. Все браузеры ничего не отвечают. Когда apache запущен, а когда нет.