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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/269326/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-09 05:40:56  来源:igfitidea点击:

apache on windows virtual directory config help

windowsapacheconfigurationvirtual-hosts

提问by sprugman

I'm running Apache on Windows XP via Xampplite, and could use help configuring my virtual directory. Here's what I'm hoping to do on my dev box:

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

  1. I want my source files to live outside of the xampp htdocs dir
  2. on my local machine I can access the project at http://myproject
  3. others on my local network can access the project at my.ip.address/myproject
  4. keep localhost pointing to the xampp's htdocs folder so I can easily add other projects.
  1. 我希望我的源文件位于 xampp htdocs 目录之外
  2. 在我的本地机器上,我可以通过http://myproject访问该项目
  3. 我本地网络上的其他人可以通过 my.ip.address/myproject 访问该项目
  4. 保持 localhost 指向 xampp 的 htdocs 文件夹,以便我可以轻松添加其他项目。

I've got 1 & 2 working by editing the windows hosts file, and adding a virtual directory in xampp's apache\conf\extra\httpd-vhosts.conf file. I don't immediately see how to do 3 without messing up 4.

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

回答by sprugman

Figured it out: use Aliasfor #3, instead of VirtualHost, thus:

想通了:#3使用别名,而不是 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>

回答by jeremyasnyder

To accomplish your list of needs.

完成您的需求清单。

1) Make the directory:

1)制作目录:

mkdir c:\xampp\sites\myproject

mkdir c:\xampp\sites\myproject

2) Edit c:\windows\system32\drivers\etc\hosts so it contains this line:

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

127.0.0.1         myproject

127.0.0.1 我的项目

and add the following to c:\xampp\apache\conf\extra\httpd-vhosts.conf:

并将以下内容添加到 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>
  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) Add the following lines to the end of c:\xampp\apache\conf\httpd.conf:

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>
  Alias /myproject/  "/xampp/sites/myproject/"

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

4) Leave DocumentRoot, Directory, etc in c:\xampp\apache\conf\httpd.conf alone to accomplish this. For reference these lines would be:

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>
  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>

回答by Stefan Michev

First enable: LoadModule alias_module modules/mod_alias.so

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

Tested on WAMP 2.2 and its working: http:// localhost/ddd

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

回答by 4pi

In httpd.conf add the following lines, mutatis mutandis:

在 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>

This worked great on my (Windows) XAMPP installation after restarting the Apache server. I had to add the "Require all granted", but otherwise it is pretty much the same as the above answers.

重新启动 Apache 服务器后,这在我的 (Windows) XAMPP 安装上效果很好。我不得不添加“要求全部授予”,但除此之外它与上述答案几乎相同。

回答by 4pi

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

名称VirtualHost myproject:80 < VirtualHost myproject:80 >
</Directory >

Must be:

必须是:

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

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

greets ;)

问候 ;)

回答by Nilanjan

resolved the issue. it was missing the directory tag.

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

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>

回答by Shaikh Salman

Problem resolved in a simplest way and less steps No Need of creating virtual host just change the location of target directory.

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

Here's what i have done for configuration: I've done it by editing the C:/xampp/apache/conf/httpd.conf file Changings that I have done in httpd.conf file Added this script right after ScriptAlias /cgi-bin/ "C:/xampp/apache)/"

这是我为配置所做的工作:我通过编辑 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

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

Pathtomyproject = Complete path of project

Pathtomyproject = 项目的完整路径

And changed the url of Document Root DocumentRoot " C:/pathtomyproject "

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

Now restart the Apache Server by stopping the server. I have stopped Apache server, and then again started the Apache Server.

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

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

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