我想知道apache httpd vhost是如何工作的。我使用wampserver进行web开发,一切都很好,但是有一天,httpd vhost似乎因为未知的原因不能工作。我正在使用一些重写规则,但我想知道为什么我写的任何东西都不起作用,即使我重启了所有的东西(wamp,pc,server),以前起作用的任何规则也不起作用。http-vhosts.conf如下:
<VirtualHost 127.0.0.1:8080>
ServerName localhost
ServerAlias localhost
DocumentRoot "c:/wamp64/www"
<Directory "c:/wamp64/www/">
Options -Indexes +Includes -FollowSymLinks -MultiViews
AllowOverride None
Require all denied
</Directory>
</VirtualHost>为了测试它,我将其设置为"Require“并转到我的localhost:8080,但我仍然可以访问我的站点,而不是403禁止。我还尝试了添加和删除像索引这样的选项,但什么都不起作用。由于我不断测试,重新启动wampserver,它将随机地与我的设置“要求所有拒绝”显示403禁止在本地主机,然而,一旦我重新启动我的设置没有遵循。wampserver包含在一个包中(apache、mysql、php),我不确定我是否遗漏了apache的工作原理。我使用的是windows10,wampserver,apache版本2.4,httpd.conf中的"Include conf/extra/httpd-vhosts.conf“没有注释。之前在同一端口上添加了一个新的vhost (但后来被删除了),不确定这是否导致了问题。请帮帮忙
发布于 2019-02-04 20:24:09
看起来你一直在摆弄httpd-vhosts.conf文件,弄得有点乱七八糟。
下面是它开箱即用的样子(WAMPServer V3)
<VirtualHost *:80>
ServerName localhost
ServerAlias localhost
DocumentRoot "${INSTALL_DIR}/www"
<Directory "${INSTALL_DIR}/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>通过设置Require all denied,任何东西都不会到达该域,因为这会告诉Apache拒绝来自任何地方的访问。如果它不拒绝访问,也许您也弄乱了httpd.conf文件。
将AllowOverride None设置为其他值告诉Apache不要查看.htaccess,即使它存在。
我建议您在进行更改之前使用The Apache Manual来检查会发生什么,而不是使用这种散点枪方法。
此外,应该没有理由使用端口8080而不是默认的端口80。使用端口80还可以分解很多东西。
如果其他设备捕获了端口80,则很可能是IIS,如果您没有使用IIS,则可以安全地卸载或禁用它,从而允许您将端口80用于Apache.
发布于 2020-10-16 02:25:30
这是一个老问题,但由于我刚刚遇到了同样的问题,我想我可以通过添加一个响应来帮助解决这个问题。
Windows用户遇到的问题是文件权限和所有权。仅仅因为您有一台服务器(或用于运行Apache的笔记本电脑或PC ),并且您是唯一的用户,这并不意味着一切都是以您的用户身份运行的。事实上,Apache是作为系统进程运行的。因此,如果您在最初的post中创建了路径c:/wamp64/www,作为您的用户,您必须确保运行Apache的系统进程可以读取该目录。我没有在这里的Windows PC上安装Apache -事实上,除了我用于工作的政府笔记本电脑之外,我不认为我有任何Windows PC-但您需要转到服务,找到Apache Web服务,找出运行它的用户,然后转到您的路径,再次使用c:/wamp64/www为例,右键单击www目录文件夹,从上下文菜单中选择‘属性’,转到安全选项卡,检查是否列出了Apache服务用户。如果是,请检查权限选项卡。不要害怕勾选“高级”按钮并查看那里的权限。您的apache用户应该具有读取和执行权限,以允许the服务器在目录链中上下移动。在Linux上,您可以将整个树切换到apache守护进程Run-as用户,或者将组属性更改为守护进程的组,然后更改权限以允许组用户读取和执行文件there.You可能不会影响所有权,但我发现这样做通常会产生更多问题。基本上,chmod -R 755 my/htdocs/root和(chown -R myuser:daemongroup my/htdocs/root或chown -R daemonuser:daemongroup my/htdocs/root)将会工作。
https://stackoverflow.com/questions/54477254
复制相似问题