我想在家里安装一个Apache Web服务器来监听80端口和8080端口。
我已经添加了Listen 8080
到httpd.conf并重新启动了Apache服务,但服务器似乎没有在8080上进行侦听。在http:// localhost:8080中冲出并且不显示我的index.html,而是http :// localhost将显示我的index.html。
我如何让它听80和8080?
一个标准的Debian安装Apache将有以下的configuration片段:
听80 <IfModule mod_ssl.c> #基于SSL名称的虚拟主机尚不支持,因此没有 #NameVirtualHost声明在这里 听443 </ IfModule>configuration
这告诉apache监听端口80,如果configuration了mod_ssl,则监听端口443。 在你的情况下,你会想要:
Listen 80 Listen 8080
您需要确保您运行重新启动,而不是Apache上的重新加载操作,以便注意新的Listen指令。 最安全的做法是停止Apache,确保它已经死了,然后重新启动。
如果此configuration不起作用,请检查日志文件是否有错误消息。 你可以使用“netstat -lep -tcp”来查看端口8080上是否有任何东西在监听。最后,如果一切都不起作用,请尝试在strace下运行apache,看它是否试图绑定到端口并失败,但不logging问题。
这些答案很好,但是他们没有考虑到Owen实际上已经这样做了(“我已经添加了Listen 8080
”)可能意味着它听起来像是什么(即,David所build议的)。
如果您已经完成了这个工作,但是仍然无法正常工作,请确保您已经正确configuration了您可能拥有的每个子域的指令,包括默认的指令(如果已经手动configuration,以便在名称后紧跟80)。
你可能有这样的指令:
<VirtualHost *:80> ServerName michaelsanford.com etc… </VirtualHost>
您需要将其更改为<VirtualHost *:8080>
或<VirtualHost *:*>
。
步骤1
#vi httpd.conf Listen 80 <IfModule mod_ssl.c> # SSL name based virtual hosts are not yet supported, therefore no # NameVirtualHost statement here Listen 443 </IfModule>
httpd(apache)在端口80上侦听,如果configuration了mod_ssl,则侦听端口443。
Listen 80 Listen 8080
第2步
#su - service httpd restart
第3步
$ netstat -lntp
(并不是所有的stream程都可以被识别,非stream量信息不会被显示出来,你必须是root才能看到的。)
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:47027 0.0.0.0:* LISTEN - tcp 0 0 192.168.1.1:80 0.0.0.0:* LISTEN - tcp 0 0 192.168.1.1:8080 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN - tcp 0 0 ::ffff:127.0.0.1:45100 :::* LISTEN 3149/java tcp 0 0 :::111 :::* LISTEN - tcp 0 0 :::80 :::* LISTEN - tcp 0 0 :::57173 :::* LISTEN 3149/java tcp 0 0 :::18197 :::* LISTEN 3149/java tcp 0 0 :::22 :::* LISTEN - tcp 0 0 ::1:631 :::* LISTEN - tcp 0 0 :::40832 :::* LISTEN 3149/java tcp 0 0 ::ffff:127.0.0.1:6880 :::* LISTEN 3149/java
您可能还想检查是否启用了SELinux。 默认的SELinuxconfiguration可能不允许您在非标准端口上运行Apache。 这里有一个网站,显示你是否运行SELinux,以及如何禁用它,如果你不想或使用它的function。 http://www.crypt.gen.nz/selinux/disable_selinux.html
您可能需要为站点configuration一个端口8080才能工作。 阅读Apache虚拟主机的文档。 每个“站点”可以设置为接受特定端口(和IP等)上的连接。 你的http.conf中只有一个configuration为80端口的虚拟主机吗?
此外,您可以使用netstat -nlp
确认服务器正在侦听8080,并在该端口上查找条目。
假设linux以root身份运行netstat -lntp
,您可以看到apache是否正在侦听8080。 这将帮助您确定问题是否是apache不听或者是否有外部因素(例如防火墙,selinux等)到apache使连接超时。