如何使用 apache 设置我的新网络服务器?

如何使用 apache 设置我的新网络服务器?

我正在创建一个私人网络服务器,但无法让它运行。

我运行的是 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>

相关内容