我正在创建一个私人网络服务器,但无法让它运行。
我运行的是 CentOS。
我安装了 apache 并验证它正在运行。
我根据在线教程设置了 httpd.conf(主要是这个)我打电话给我的 ISP,他们向我保证他们不会阻止端口 80。(我有 DSL)我将路由器配置为将端口 80 和 443 转发到我的服务器。我从 godaddy.com 购买了一个 URL,并将其设置为转发到路由器的外部 IP(我只需访问http://www.whatismyip.com/)
我只需在路由器中转发端口 22 即可使用 URL ssh 连接到我的服务器。据我所知,我应该已完成所有设置,访问我的网页时应该会收到错误 404 或 403(这很好,这意味着我的服务器正在响应)。
但我的浏览器提示无法连接。就好像我的服务器不存在一样。
显然,我遗漏了一些东西。除了我的 ISP 或路由器之外,还有其他东西可能会阻止端口 80 吗?有没有更好的资源来了解如何配置 Apache?有人能帮我找出问题所在吗?
(注意:我没有静态 IP 地址。但我知道我的 IP 已经有一段时间没有改变了,而且我正在监控它,所以我可以知道它是否真的改变了。我假设我可以建立一个不稳定的网站,在我的 ISP 决定为我分配一个新的 IP 之前,该网站将一直运行。如果我错了,请纠正我。)
我有这样一段话:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
接下来是一条内容:
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
其中“/var/www/html”是我的 DocumentRoot
答案1
好吧,既然您已经启动并运行了服务,那么您可能需要检查几件事,因为您正在运行 centos(我假设是 5 系列)。
确保 iptables 允许 http 流量。如果不允许,请运行:
iptables -I INPUT 5 -m tcp -p tcp --dport 80 -j ACCEPT
和
如果您正在运行 SELinux,则需要启用 http 访问。您可以通过运行以下命令进行验证:
[root@centos ssl]# getsebool -a | grep httpd
allow_httpd_anon_write --> on
allow_httpd_bugzilla_script_anon_write --> on
allow_httpd_cvs_script_anon_write --> on
allow_httpd_mod_auth_pam --> on
allow_httpd_nagios_script_anon_write --> on
allow_httpd_prewikka_script_anon_write --> on
allow_httpd_squid_script_anon_write --> on
allow_httpd_sys_script_anon_write --> on
httpd_builtin_scripting --> on
httpd_can_network_connect --> on
httpd_can_network_connect_db --> on
httpd_can_network_relay --> on
httpd_can_sendmail --> on
httpd_disable_trans --> on
httpd_enable_cgi --> on
httpd_enable_ftp_server --> on
httpd_enable_homedirs --> on
httpd_read_user_content --> on
httpd_rotatelogs_disable_trans --> on
httpd_setrlimit --> on
httpd_ssi_exec --> on
httpd_suexec_disable_trans --> on
httpd_tty_comm --> on
httpd_unified --> on
httpd_use_cifs --> on
httpd_use_nfs --> on
否则,请跟踪 /var/log/httpd/error_log 并查看它告诉您什么。
答案2
我不相信 Apache 具有禁止除 localhost 之外的所有内容的默认规则,但我猜测您正在经历这种情况。
在 httpd.conf 中,有一条指令设置 Apache,以便没有人可以访问它,它看起来像这样:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
这是正常的,您不需要编辑它。只需确保您的 httpd.conf 文件中有另一个指令可以覆盖该指令并允许某些访问,例如:
<Directory "R:/Apache2.2/htdocs/wordpress">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from 127.1
Allow from 10
Allow from 208.32
#Allow from all
</Directory>