我如何获得Apache 2.2.17的启动?

我在Fedora v14上运行Apache 2.2.17。 我无法从浏览器访问正在运行的Web服务器,并且在设置端口443时也遇到困难。

服务器httpd正在运行:

 [me@host ~]$ sudo ps -U root -u root u | grep httpd root 6592 0.0 3.4 404620 17552 ? Ss 10:50 0:00 /usr/sbin/httpd -k graceful 

然后我停止服务:

 [me@host ~]$ sudo apachectl stop 

然后,我在/etc/httpd/conf/httpd.conf设置Listen指令来侦听端口80和443:

 Listen 1.2.3.4:80 Listen 1.2.3.4:443 https 

(IP不是1.2.3.4而是该主机的实际IP地址。)

我检查了其他Apache conf指令,以确保我有一个文档文件夹,它可以被所有用户访问,并且它会显示文件夹的目录列表,如果我没有指定index.html

当试图启动httpd ,我得到一个configuration错误:

 [me@host conf]$ sudo apachectl graceful (98)Address already in use: make_sock: could not bind to address [::]:443 (98)Address already in use: make_sock: could not bind to address 0.0.0.0:443 no listening sockets available, shutting down Unable to open logs 

TCP端口443(或端口80)上没有其他服务正在运行:

 [me@host conf]$ sudo netstat -tulpn | grep 443 [me@host conf]$ sudo netstat -tulpn | grep 80 

如果我注释掉443 Listen指令并graceful启动httpd服务,它将启动并在进程列表中可见(通过ps ,如上),但是我仍然无法通过Web浏览器访问主机。

有没有什么我在设置Apache时忽略了? 谢谢你的build议。

检查iptables规则:

 iptables -nv -L 

要添加新规则,请编辑/ etc / sysconfig / iptables:

 ... -A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT ... 

重新启动iptables:

 #service iptables restart 

停止iptables:

 #service iptables stop 

对于debugging使用tcpdump:

 # tcpdump -pn host YOU_IP and not port 22 or # tcpdump -pn port 443 and icmp 

我刚刚评论了这一行

 Listen *:80 

现在它正在工作。

在执行此操作之前,请运行命令hostname并将此名称添加到/etc/hosts 。 在httpd.conf我在ServerName行上有相同的名字。

我控制之前,没有服务使用此端口:80在我的情况。