我在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在我的情况。