Windows虚拟目录配置帮助上的apache

Posted

技术标签:

【中文标题】Windows虚拟目录配置帮助上的apache【英文标题】:apache on windows virtual directory config help 【发布时间】:2010-09-21 02:59:30 【问题描述】:

我正在通过 Xampplite 在 Windows XP 上运行 Apache,并且可以使用帮助配置我的虚拟目录。这是我希望在我的开发盒上做的事情:

    我希望我的源文件位于 xampp htdocs 目录之外 在我的本地机器上,我可以通过http://myproject 访问该项目 我本地网络上的其他人可以通过 my.ip.address/myproject 访问该项目 保持 localhost 指向 xampp 的 htdocs 文件夹,以便我可以轻松添加其他项目。

我有 1 和 2 通过编辑 windows 主机文件,并在 xampp 的 apache\conf\extra\httpd-vhosts.conf 文件中添加一个虚拟目录来工作。我不会立即明白如何在不搞砸 4 的情况下完成 3。

【问题讨论】:

【参考方案1】:

想通了:#3 使用 Alias,而不是 VirtualHost,因此:

Alias /myproject "C:/path/to/my/project"
<Directory "C:/path/to/my/project">
  Options Indexes FollowSymLinks MultiViews ExecCGI
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>

【讨论】:

对于任何不确定的人,这可以直接在默认站点根目录的httpd.conf 文件中的&lt;Directory "D:/XAMPP/htdocs"&gt;...stuff...&lt;/Direcory&gt; 之后进行。完美地为我工作。并且不要忘记重新启动 Apache【参考方案2】:

完成您的需求清单。

1) 制作目录:

mkdir c:\xampp\sites\myproject

2) 编辑 c:\windows\system32\drivers\etc\hosts 使其包含这一行:

127.0.0.1        我的项目

并将以下内容添加到 c:\xampp\apache\conf\extra\httpd-vhosts.conf:

  NameVirtualHost myproject:80

  <VirtualHost myproject:80>
  DocumentRoot c:/xampp/sites/myproject
  Options Indexes FollowSymLinks Includes ExecCGI
   AllowOverride All
  Order allow,deny
  Allow from all  
  </Directory>

3) 将以下行添加到 c:\xampp\apache\conf\httpd.conf 的末尾:

  Alias /myproject/  "/xampp/sites/myproject/"

  <Directory "/xampp/sites/myproject">
  AllowOverride None
  Options None
  Order allow,deny
  Allow from all
  </Directory>

4) 将 DocumentRoot、Directory 等留在 c:\xampp\apache\conf\httpd.conf 中单独完成此操作。作为参考,这些行将是:

  DocumentRoot "/xampp/htdocs"

  <Directory />
   Options FollowSymLinks
   AllowOverride None
   Order deny,allow
   Deny from all
  </Directory>

  <Directory "/xampp/htdocs">
   Options Indexes FollowSymLinks Includes ExecCGI
   AllowOverride All
   Order allow,deny
   Allow from all
  </Directory>

【讨论】:

【参考方案3】:

首先启用:LoadModule alias_module modules/mod_alias.so

<IfModule alias_module>
  Alias /ddd "D:/prj/customer/www"

  <Directory "D:/prj/customer/www">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride all
    Order allow,deny
    Allow from all
  </Directory>
</IfModule>

在 WAMP 2.2 上测试及其工作:http://localhost/ddd

【讨论】:

【参考方案4】:

在 httpd.conf 中添加以下行,比照:

<IfModule alias_module>
    Alias /angular-phonecat "C:/DEV/git-workspace/angular-phonecat"
</IfModule>

<Directory "C:/DEV/git-workspace/angular-phonecat">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride all
    Order allow,deny
    Allow from all
    Require all granted
</Directory>

重新启动 Apache 服务器后,这对我的 (Windows) XAMPP 安装非常有效。我必须添加“要求全部授予”,否则它与上述答案几乎相同。

【讨论】:

【参考方案5】:

名称VirtualHost myproject:80 目录>

必须是:

名称VirtualHost myproject:80

问候 ;)

【讨论】:

【参考方案6】:

解决了这个问题。它缺少目录标签。

NameVirtualHost myproject:80
<VirtualHost myproject:80>
    DocumentRoot "D:/Solution"
    <Directory "D:/Solution">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>    
</VirtualHost>

【讨论】:

【参考方案7】:

以最简单的方式和更少的步骤解决问题 无需创建虚拟主机,只需更改目标目录的位置即可。

这是我为配置所做的: 我已经通过编辑 C:/xampp/apache/conf/httpd.conf 文件来完成它 我在 httpd.conf 文件中所做的更改 之后立即添加此脚本 ScriptAlias /cgi-bin/ "C:/xampp/apache)/"

别名 /projectXYZ "C:/pathtomyproject" 选项索引 FollowSymLinks MultiViews ExecCGI 允许覆盖所有 命令允许,拒绝 全部允许

Pathtomyproject = 项目的完整路径

并更改了 Document Root 的 url DocumentRoot "C:/pathtomyproject"

现在通过停止服务器重新启动 Apache 服务器。 我已经停止了 Apache 服务器,然后再次启动了 Apache 服务器。

来源:http://bytespedia.blogspot.com/2013/12/creating-virtual-directory-in-apache.html

【讨论】:

请注意 link-only answers 是不鼓励的,所以答案应该是寻找解决方案的终点(而不是另一个参考中途停留,随着时间的推移往往会变得陈旧)。请考虑在此处添加独立的概要,并保留链接作为参考。 因为我无法附上图片,所以我添加了完整描述的链接。 @kleopatra 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。 @Almo 我已经编辑了我的评论并添加了解决方案/链接的重要部分。

以上是关于Windows虚拟目录配置帮助上的apache的主要内容,如果未能解决你的问题,请参考以下文章

apache 2 修改虚拟目录

apache虚拟目录和多端口多主机名配置

如何在Windows系统中配置Apache虚拟主机

Apache虚拟目录和多端口多主机名配置

Apache虚拟主机配置

Apache虚拟主机配置