20

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

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

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

4

7 回答 7

30

想通了:为#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>
于 2008-11-06T16:42:03.163 回答
12

完成您的需求清单。

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) 单独保留 c:\xampp\apache\conf\httpd.conf 中的 DocumentRoot、Directory 等来完成此操作。作为参考,这些行将是:

  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>
于 2008-11-06T19:51:21.970 回答
2

首先启用: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

于 2012-11-16T13:07:29.573 回答
1

在 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 安装非常有用。我必须添加“要求全部授予”,但除此之外它与上述答案几乎相同。

于 2014-02-05T00:30:22.033 回答
0

NameVirtualHost myproject:80 < VirtualHost myproject:80 >
</Directory >

一定是:

NameVirtualHost myproject:80 < VirtualHost myproject:80 >
</VirtualHost>

问候;)

于 2009-08-11T07:52:41.150 回答
0

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

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>
于 2010-05-21T04:50:29.097 回答
-1

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

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

Alias /projectXYZ "C:/pathtomyproject" Options Indexes FollowSymLinks MultiViews ExecCGI AllowOverride All Order allow,deny Allow from all

Pathtomyproject = 项目的完整路径

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

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

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

于 2013-12-04T10:35:38.400 回答