【问题标题】:Set up apache Virtual Host to serve static files设置 apache 虚拟主机以提供静态文件
【发布时间】:2013-08-22 04:27:28
【问题描述】:

我正在尝试使用 apache 为 javascript Web 应用程序设置开发环境,但我似乎连最简单的事情都做不了,比如设置一个虚拟主机来提供静态 html、js 和其他文件类型。

这是我在 httpd-vhosts.conf 中尝试做的事情:

<VirtualHost *:80>
    ServerAdmin test@localhost
    ServerName www.nonlocal-blight.com
    ServerAlias www.local-blight.com

    DocumentRoot "/Apache24/documents/WebContent"
    <Directory "WebContent">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

</VirtualHost>

我在 WebContent 中有一个 index.html 文件,但无论我尝试访问 www.local-blight.com 还是 www.local-blight.com/index.html,我总是得到“糟糕!Google Chrome 找不到 [whatever]”。我尝试删除 ServerAlias、Document 根目录的不同文件夹、删除行 Options Indexes FollowSymLinks 以及所有内容。

我尝试使用httpd.exe -S 检查我的虚拟主机配置,但就我所见,输出看起来不错:

C:\Apache24\bin>httpd.exe -S
VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server www.nonlocal-blight.com (C:/Apache24/conf/extra/httpd-vh
osts.conf:37)
         port 80 namevhost www.nonlocal-blight.com (C:/Apache24/conf/extra/httpd
-vhosts.conf:37)
                 alias www.local-blight.com
         port 80 namevhost www.nonlocal-blight.com (C:/Apache24/conf/extra/httpd
-vhosts.conf:37)
                 alias www.local-blight.com
*:443                  is a NameVirtualHost
         default server localhost (C:/Apache24/conf/extra/httpd-sni.conf:134)
         port 443 namevhost localhost (C:/Apache24/conf/extra/httpd-sni.conf:134
)
         port 443 namevhost localhost (C:/Apache24/conf/extra/httpd-sni.conf:134
)
         port 443 namevhost serverone.tld (C:/Apache24/conf/extra/httpd-sni.conf
:151)
         port 443 namevhost serverone.tld (C:/Apache24/conf/extra/httpd-sni.conf
:151)
         port 443 namevhost servertwo.tld (C:/Apache24/conf/extra/httpd-sni.conf
:166)
         port 443 namevhost servertwo.tld (C:/Apache24/conf/extra/httpd-sni.conf
:166)
ServerRoot: "C:/Apache24"
Main DocumentRoot: "C:/Apache24/documents"
Main ErrorLog: "C:/Apache24/logs/error.log"
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex ssl-cache: u

sing_defaults
Mutex default: dir="C:/Apache24/logs/" mechanism=default
PidFile: "C:/Apache24/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
Define: SRVROOT=/Apache24

谁能告诉我我在这里做错了什么?

【问题讨论】:

  • 总是首先从 http 服务器日志文件开始。检查“访问”日志文件中实际向服务器发出的请求,并比较“错误”日志文件中报告的错误。
  • 两者都没有。当我尝试转到 www.local-blight.com 时,我没有收到任何访问日志和错误日志。
  • 显然这些请求根本没有针对您的 http 服务器。听起来像一个名称解析问题。或者可能是您正在通过防火墙阻止请求?通过向 http 服务器发出 telnet 请求进行测试:telnet www.nonlocal-blight.com http。它会被拒绝还是连接?
  • 被拒绝:Connecting To www.nonlocal-blight.com...Could not open connection to the host, on port http: Connect failed。我尝试关闭 Windows 防火墙(我使用的唯一防火墙),但这并没有改变结果。
  • 1.) http 服务器是否正在运行?修改配置后重新加载了吗? 2.)使用IP地址而不是名称时可以连接到http服务器吗? 3.) 名称“www.nonlocal-blight.com”在您的系统上实际解析为什么地址?

标签: apache virtualhost


【解决方案1】:

我需要添加一行:

127.0.0.1 www.local-blight.com

%SystemRoot%\system32\drivers\etc\hosts中的我的Windows主机文件。

我还需要关注this answer 以允许我的系统通过浏览器访问文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-26
    • 2017-05-30
    • 2013-07-31
    • 2021-05-10
    • 2012-04-22
    • 1970-01-01
    • 2014-02-26
    • 2017-09-03
    相关资源
    最近更新 更多