Php apache httpd vhost配置

Php apache httpd vhost配置,php,apache,wampserver,Php,Apache,Wampserver,我想知道apachehttpd vhost是如何工作的。我使用wampserver进行web开发,一切都很好,但有一天,httpd vhost由于未知原因似乎无法工作。我正在制定一些重写规则,但不知道为什么我写的任何东西即使在我重新启动所有东西(wamp、pc、服务器)后仍然不起作用,而且以前工作过的任何规则也停止工作。http-vhosts.conf如下所示: <VirtualHost 127.0.0.1:8080> ServerName localhost Ser

我想知道apachehttpd vhost是如何工作的。我使用wampserver进行web开发,一切都很好,但有一天,httpd vhost由于未知原因似乎无法工作。我正在制定一些重写规则,但不知道为什么我写的任何东西即使在我重新启动所有东西(wamp、pc、服务器)后仍然不起作用,而且以前工作过的任何规则也停止工作。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>

服务器名本地主机
服务器别名本地主机
DocumentRoot“c:/wamp64/www”
选项-索引+包含-跟随符号链接-多视图
不允许超限
要求全部拒绝
为了测试它,我将其设置为“requireall denied”,并转到我的本地主机:8080,但我仍然可以访问我的站点,而不是403。我还尝试添加和删除索引之类的选项,但没有任何效果。 当我继续测试、重新启动wampserver时,它将随机地与我的设置“Require all denied”一起工作,显示403禁止在本地主机上运行,但是,一旦我重新启动,我的设置就不会被遵循。wampserver是一个包(apache、mysql、php),我不确定我是否遗漏了apache的工作原理。 我使用的是windows 10, wampserver,apache版本2.4 httpd.conf中的“Include conf/extra/httpd vhosts.conf”未注释。
以前在同一端口上添加了一个新vhost(但随后被删除),不确定这是否会导致问题。请帮助

看起来您一直在乱搞
httpd vhosts.conf
文件,弄得有点乱

下面是它的开箱即用外观(WAMPServerv3)


服务器名本地主机
服务器别名本地主机
DocumentRoot“${INSTALL_DIR}/www”
选项+索引+包含+跟随符号链接+多视图
允许超越所有
要求本地
通过设置
Require all denied
任何内容都不应该访问该域,因为这会告诉Apache拒绝来自任何地方的访问。如果它不拒绝访问,那么您可能还弄乱了
httpd.conf
文件

设置
AllowOverride None
amount其他东西告诉Apache不要查看
.htaccess
,即使它存在

我可以建议您在进行更改之前,使用来检查进行更改时会发生什么,而不是使用这种散射枪方法

此外,应该没有理由使用端口8080而不是端口80(默认值)。使用端口80还可以对许多事情进行反编译

如果有其他东西捕获了端口80,则很可能是IIS,如果您不使用IIS,则可以安全地卸载或禁用它,从而允许您将端口80用于Apache


这是一个老问题,但由于我刚刚遇到同样的问题,我想我会通过添加一个回答来帮助解决


Windows用户遇到的问题是文件权限和所有权。仅仅因为您有一台服务器(或用于运行Apache的笔记本电脑或PC),您是唯一的用户,这并不意味着一切都以您的用户身份运行。事实上,Apache作为一个系统进程运行。因此,如果您在原始帖子中以用户身份创建了路径c:/wamp64/www,则必须确保运行Apache的系统进程能够读取该目录。我没有在这里的Windows PC上安装Apache-事实上,我不认为我在工作时使用的政府笔记本电脑之外有任何Windows PC-但您需要转到服务,找到Apache Web服务,找到运行它的用户,然后转到您的路径,再次使用c:/wamp64/www作为示例,右键单击www目录文件夹,从上下文菜单中选择“属性”,转到安全选项卡并检查是否列出了Apache服务用户。如果是,请检查“权限”选项卡。不要害怕检查Advanced按钮,并查看那里的权限。您的apache用户应该具有读取和执行权限,以允许Web服务器在目录链中上下移动。在Linux上,您可以将整个树作为用户运行apache守护进程,或者将group属性更改为守护进程的group,然后更改权限以允许group用户在其中读取和执行文件。您可以不考虑所有权,但我发现这通常会产生更多问题。基本上,chmod-R 755 my/htdocs/root和(chown-R myuser:daemongroup my/htdocs/rootchown-R daemonuser:daemongroup my/htdocs/root)可以工作。

您使用的是什么版本的WAMPServer?(双击绿色W图标,它将加载一个dislog,告诉您版本)
<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>