为什么本地主机说“它有效”?

我已经在“网站”文件夹中configuration了所有我的网站,以便在我的浏览器中进行testing。 当我input一个url例如http://test.dev ,我得到“It Works”。

为什么?

这是默认的Apache HTTP索引页面。 这表示你已经正确安装并启用了httpd。

该页面位于/Library/Webserver/Documents

您需要确保取消注释以下的第二行:

 # User home directories Include /private/etc/apache2/extra/httpd-userdir.conf 

然后该文件将文件包含在/private/etc/apache2/users

应该有你的用户名。

然后你可以去localhost/~username ,这相当于访问Users/username/Sites

这可能意味着您的Web服务器configuration中没有特定的IP地址(如果使用基于IP的虚拟主机)或您试图访问的名称(在您的示例中为test.dev,如果使用基于名称的虚拟主机)。

例如,在Apache中,您可以创build<VirtualHost>部分,指定与IP和/或名称匹配的请求的文档根目录(同样取决于您是在执行基于IP还是基于名称的虚拟)。 如果没有匹配,它将回退到DocumentRoot和在<VirtualHost>条目之外设置的其他设置。

所以,要解决这个问题,你可以为你希望接收这些请求的站点configuration虚拟主机configuration,包括这个名称/ IP,这个名称/ IP目前不匹配(最好),或者让你的一个站点存在于主configuration中,而不是在一个<VirtualHost> (或类似取决于您正在使用的Web服务器)部分。

使用apachectl -S (mac)列出加载的configuration并查看所有加载的虚拟主机。 可能你的项目的.conf文件不在该列表中。