У меня что-то не так с прослушиванием в Apache. теперь мой вопрос. когда я заставляю это слушать
NameVirtualHost *:80
Listen 127.0.0.1:80
Listen 192.168.1.23:80
будет ли он доступен через Интернет? потому что мой интернет подключен к 192.168.1.23:80
Проверить с netstat
этот apache прослушивает порт 80.
% sudo netstat -apn|grep :80
tcp 0 0 :::80 :::* LISTEN 1318/httpd
Также убедитесь, что у вас нет правил брандмауэра, блокирующих этот доступ, в частности, у вас должен быть ACCEPT
правила по INPUT
цепь для http
.
% sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Вы можете временно отключить брандмауэр, чтобы подтвердить следующее:
% /etc/init.d/iptables stop
Итак, брандмауэр выглядит так:
% sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Я бы также проверил ошибку Apache и файлы журналов доступа, большинство Linux хранят их в /var/log
возможно /var/log/httpd
. Обычно это 2 файла, error_log
и access_log
.
Что касается ошибки, которую вы получаете при запуске, похоже, вам нужно установить ServerName
переменная в вашем httpd.conf
файл.
ServerName localhost
Похоже, это проблема с apache2 в Ubuntu. Я нашел несколько потоков на других сайтах, где решением было установить для ServerName значение localhost.