首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个主机的wamp vhosts问题

多个主机的wamp vhosts问题
EN

Stack Overflow用户
提问于 2018-09-27 05:12:03
回答 1查看 549关注 0票数 0

我在我的wamp localhost中有两个codeigniter项目,我正在尝试设置多个vhost。

我的目录结构如下:

代码语言:javascript
复制
- www
    - project
    - projectold

我设置了两个vhost:project.lhprojectold.lh

以下是我的httpd-vhosts.conf条目:

代码语言:javascript
复制
<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>

<VirtualHost *:80>
    ServerName project.lh
    DocumentRoot "c:/wamp64/www/project"
    SetEnv CI_ENV development
    <Directory  "c:/wamp64/www/project/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName projectold.lh
    DocumentRoot "c:/wamp64/www/projectold"
    SetEnv CI_ENV development
    <Directory  "c:/wamp64/www/projectold/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

我还在我的httpd.conf文件中取消了这一行的注释:

代码语言:javascript
复制
LoadModule vhost_alias_module modules/mod_vhost_alias.so

编辑:

这是当前在我的hosts文件中的内容:

代码语言:javascript
复制
127.0.0.1 localhost
::1 localhost

127.0.0.1   project.lh
::1 project.lh

127.0.0.1   project.lh
::1 project.lh

127.0.0.1   projectold.lh
::1 projectold.lh

(不确定为什么有2个project.lh条目)

编辑2:这是project.lh目录中的.htaccess文件。没有用于projectold.lh的.htaccess文件。

代码语言:javascript
复制
RewriteEngine on
RewriteBase /
## Hide the application and system directories by redirecting the request to index.php
RewriteRule ^(application|system|\.svn) index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
##RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

我遇到的问题是,当我导航到projectold.lh时,它以某种方式拉入了project.lh的标记。我不明白为什么或者怎么会发生这样的事情。我在想我一定是漏掉了什么。

我尝试在我的vhosts文件中注释掉project.lh条目,但是没有修复它。希望有人以前见过这种情况。

我使用的是Wamp3.1.3。

EN

回答 1

Stack Overflow用户

发布于 2018-09-27 05:19:03

Virendra Chandak在Wampserver中创建多个虚拟主机/网站

要创建多个网站,最好在本地计算机上设置每个网站。使用Wampserver (或者只是Apache),我们可以很容易地配置多个网站。以下是使用Apache的配置创建多个网站的步骤。这使用Apache的“命名虚拟主机”配置。我已经在Windows XP和Windows 7上运行的Wampserver 2.1上测试了这些步骤。

步骤1:设置您的主机名或设置Windows以识别您的本地网站

安装WAMP服务器后,您可以在浏览器中输入http://localhost,它将打开一个页面。默认情况下,Windows将站点本地主机识别为引用其自身。我们需要设置窗口来识别我们的其他本地网站。为此,我们需要编辑hosts文件。该文件位于以下目录下。(访问此目录的另一种方法是,打开运行命令或按Windows键+ R,然后键入“drivers”,按“OK”,然后转到“etc”。)C:/Windows/System32/drivers/etc

转到此目录后,使用您喜欢的文本编辑器(如记事本、Editplus、Notepad++)打开此目录中名为hosts的文件。

注意:您可能无法在Windows Vista或Windows 7中编辑或保存此文件。您需要管理员权限才能编辑此文件。

现在,您将看到文件末尾的一行代码如下:

代码语言:javascript
复制
127.0.0.1   localhost

此代码告诉您的计算机在我们尝试转到

代码语言:javascript
复制
`http://localhost`

现在我们应该将我们的站点添加到这个文件中。假设我们的站点名称是site1。因此,我们将在hosts文件中为其添加一个条目。更新后的文件如下所示:

代码语言:javascript
复制
127.0.0.1   localhost
127.0.0.1   site1

保存此文件并尝试转到http://site1,这将使您转到与http://localhost相同的页面,现在我们的计算机知道http://site1是什么了。

注意:请确保没有为google.com或bing.com等外部站点添加主机条目。如果添加这些条目,则计算机将无法再访问实际的网站。步骤2:为网站创建一个文件夹

Wampserver只有一个文件夹或站点根目录来托管网站。此文件夹通常为C:/wamp/www。我们应该为每个网站创建一个不同的文件夹。我们可以在任何目录或驱动器中创建文件夹。(如果我们在C:/wamp/www之外创建文件夹,我们将需要在Apache中进行一些额外的设置,稍后将对此进行介绍)。

在这个文件夹中添加一些测试文件,比如C:/wamp/www/site1目录中的“index.html”。步骤3:设置Apache为多个站点提供服务

我们将为Apache设置更改文件httpd.conf和httpd-vhosts.conf。通过单击WAMP服务器图标并选择“Apache -> httpd.conf”打开文件httpd.conf。此文件通常位于C:/wamp/bin/apache/Apache2.2.17/conf。

不要在这个文件中添加代码,这不是一种干净和简单的方法。我们只想取消注释此文件中包含vhosts文件的一行。

包括conf/extra/httpd-vhosts.conf

去掉该行前面的#符号,更改后的行应如下所示: Include conf/extra/httpd-vhosts.conf

现在,我们将打开文件“httpd-vhosts.conf”,该文件通常位于额外目录(C:/wamp/bin/apache/Apache2.2.17/conf/ extra )中。

在此文件中,我们将使用以下代码添加虚拟主机:

代码语言:javascript
复制
<VirtualHost *:80>
    ServerAdmin admin@localhost
    DocumentRoot "C:/wamp/www"
    ServerName localhost
    ServerAlias www.localhost.com
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>

在上面的代码中,ServerName和DocumentRoot是必需的,其他选项是可选的。

因此,如果我们想要在本地机器上有3个站点,如下所示

代码语言:javascript
复制
localhost -> C:/wamp/www
site1 -> C:/wamp/www/site1
site2 -> C:/site2

<VirtualHost *:80>
    ServerAdmin admin@localhost
    DocumentRoot "C:/wamp/www"
    ServerName localhost
    ServerAlias www.localhost.com
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/wamp/www/site1"
    ServerName site1
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/site2"
    ServerName site2
    <Directory "C:/site2">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

我没有使用site1和site2的所有选项,但最好使用它们。还要注意的是,site2的代码中有一些额外的目录代码。这是授予服务器对该目录的访问权限所必需的。如果我们不添加这个,服务器将无法访问此目录中的文件,因此站点将无法工作。对于site1,我们不需要这个,因为它内部的C:\wamp\www目录的目录设置是由wampserver中的defult设置的。

现在重启Apache,所有的站点都应该可以正常工作了。确保将site2添加到主机文件中,并在C:/site2下为其创建目录。

注意:对于上述步骤在任何情况下的正常运行,我不承担责任。如果你从我的博客上下载任何文件或程序,请务必保护好你自己。对于您的电脑、网站、博客、应用程序或其他任何东西造成的任何损坏,我概不负责。我不附属于或不认可上述任何网站。

原文:https://www.virendrachandak.com/techtalk/creating-multiple-virtual-websites-in-wampserver/

在过去帮过我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52526090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档