如何让 apache2 监听本地主机和局域网计算机

如何让 apache2 监听本地主机和局域网计算机

我完全搞错了 apache 中的 listen 功能。我现在的问题是。当我让它监听

NameVirtualHost *:80
Listen 127.0.0.1:80
Listen 192.168.1.23:80

可以通过网络访问吗?因为我的互联网连接到 192.168.1.23:80

答案1

检查netstatapache 是否正在监听端口 80。

% sudo netstat -apn|grep :80
tcp        0      0 :::80                       :::*                        LISTEN      1318/httpd          

还要确保没有任何防火墙规则阻止此访问,具体来说,您应该在链上有ACCEPT规则。INPUThttp

% 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_logaccess_log

关于您在启动时遇到的错误,听起来您需要ServerNamehttpd.conf文件中设置变量。

ServerName localhost

这似乎是 Ubuntu 上 apache2 的一个问题。我在其他网站上找到了几个帖子,解决方案是将 ServerName 设置为 localhost。

相关内容