我正在尝试在家里的 Windows PC 上设置我的第一个 Apache 服务器,但我真的不知道哪些配置设置应该放在哪。我下载并安装了 XAMPP,它似乎把所有东西都设置好了,而且可以看到一个正常运行的网站http://本地主机。 到目前为止,一切都很好。
当然,这样做的目的是开发一个网站,为了让我的生活更轻松(讽刺吗?),我想让网站根目录指向我的 Eclipse 项目文件夹。所以我打开 httpd-vhosts.conf,取消注释 VirtualHost 块并将其 DocumentRoot 更改为我的本地路径。
现在当我尝试加载http://本地主机我收到 403(拒绝访问)错误。那么我该在哪里配置文件夹的权限?我只需要这样做就可以让我的网站从指定的文件夹运行,还是我必须清除另一个障碍?
更新: 我尝试简化一些事情,所以我重新安装了 XAMPP,然后恢复了正常工作。http://本地主机然后我确认httpd-vhosts.conf包含在httpd.conf中,并对httpd-vhosts.conf做了如下修改:
- 取消注释行 NameVirtualHost *:80
添加了一个如下所示的虚拟主机。重新启动 Apache 后,可以看到预期的页面http://本地主机
<VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/" ServerName localhost ErrorLog "logs/dummy-host2.localhost-error.log" CustomLog "logs/dummy-host2.localhost-access.log" combined </VirtualHost>
然后我创建了一个名为 C:\testweb 的新文件夹,添加了一个 index.html 文件并更改了上面显示的 DocumentRoot 行。无论出于何种目的,我都希望这两个配置是等效的。但是这个设置给了我一个错误 403。
- 尽管 C:\testweb 文件夹已经具有与 C:\xampp\htdocs 文件夹相同的权限,但我还是进一步授予 Everyone 组对 C:\testweb 的完全控制权,并遇到了完全相同的问题。
那么我错过了什么?
答案1
我希望我已经理解了你的问题。但我觉得你把它搞得有点复杂了。
您只想将 DocRoot 设置到另一个文件夹,对吗?
然后转到“C:/xampp/apache/conf/httpd.conf
浏览至第 215 行,我希望它是相同的,我不知道您使用的是哪个版本。有一个包含 MainRoot 的目录。
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "C:/xampp/htdocs">
行上有一个有用的注释。当您将其设置为“C:/testweb/”时,您可以访问http://localhost/index.html并且更改注册表中的值实际上并不是好事。
我希望我正确理解了你的问题。
编辑:
对于新的 VHost,首先需要一个新的域名,转到“C:\windows\system32\drivers\etc\hotsts”在那里设置一个新的域名,例如:
127.0.0.1 new.localhost.com
然后您可以使用您的配置创建 vhost 并将 ServerName 设置为 new.localhost.com 我认为它应该可以工作。
答案2
如果我没记错的话,Apache 有自己的文件夹目录,当您将其加载到您的机器上时,它会创建该目录。从技术上讲,您可以将 Eclipse 项目文件夹指向那里,然后通过这种方式访问它。至于您询问的原始文件夹的共享,您应该能够右键单击该文件夹,转到属性,然后转到共享选项卡,单击共享并将自己添加为具有完全控制权的用户。这也取决于您运行的 Windows 版本,但理想情况下从 XP 到 7 都类似。