6

我已经安装了 Wamp,所以我可以运行我构建的一些简单的动态站点。我希望能够拥有三个或四个并学习如何在本地级别做事,然后将改进的文件上传到实时站点,而不必由于不同的位置/路径等而重写部分。

为了让 WampServer 索引页面显示我去 http-vhosts.conf 并添加

<VirtualHost 127.0.0.1>
ServerName localhost
DocumentRoot "E:/wamp/www"
</VirtualHost>

我知道我将标记为 mysite.local 的站点目录放入 E:wamp/www,因此路径变为 E:wamp/www/mysite.local。然后我去 http-vhosts.conf 并添加

<VirtualHost *:80>
ServerName mysite.local
DocumentRoot "E:/wamp/www/mysite.local"
</VirtualHost>

我的主机文件有

127.0.0.1       localhost  
127.0.0.1       mysite.local

我的 httfp.conf 有

# Virtual hosts  
Include conf/extra/httpd-vhosts.conf

所以我完成这一切的问题是,当我在 url 中键入 localhost 时,我的 WampServer 索引显示正常,并且 mysite.local 出现在“你的项目”下的那个索引页面上,这一切都很好,但是当我点击 mysite.local来自 WampServer 的链接,url 更改为 localhost/mysite.local 而不是 mysite.local,然后当我单击来自 localhost/mysite.local 的页面链接时,我得到 localhost/mysite.local/linkedpage 作为 url 和 404 错误。

mysite.local 作为 url 也会打开 WampServer 索引页面

如果我从 http-vhosts.conf 中注释掉 ServerName localhost 并重新启动 apache。当我尝试将 mysite.local 作为 url 时,我得到了我想要的东西 - mysite 有效,所有动态链接都有效。但是 WampServer 索引是一个 404 错误。

我想要做的就是登录 WampServer 并从“您的项目”列表中访问各个站点。

请帮助一个numty

4

2 回答 2

4

hosts文件并httpd.conf看起来不错。

有些事情要尝试...

  • <VirtualHost *:80>对于两个虚拟主机。

  • 确保DocumentRoot字符串有一个终端/

  • 对于根虚拟主机,ServerName localhost:80.

  • localhost/要通过虚拟主机浏览,请始终从 url 中省略。“您的项目”链接包括localhost/和访问项目作为来自根的路径,而不是作为独立站点,每个站点都有自己的根(这是虚拟主机为您提供的)。

  • (WAMP 2)当其他一切都修复后......要使根“index.php”页面的“您的虚拟主机”部分活跃起来,请按照这些说明进行操作。我只是这样做了,并不后悔。现在我可以单击链接来访问我作为虚拟主机服务的网站 - 耶!正是我一直想要的“你的项目”链接,但没有得到。

顺便说一句,<VirtualHost>...</VirtualHost>指令是将每个主机名绑定到服务器文件系统中的特定路径的东西,因此“E:/wamp/www/”中的子目录不需要“.local”后缀。从目录本身中删除“.local”后,对DocumentRoot条目进行相应的更改,例如DocumentRoot "E:/wamp/www/mysite/". 但请务必在“ServerName”条目中保留“.local”,例如。ServerName mysite.local, 以匹配“主机”文件中的条目。

于 2013-03-30T10:57:59.140 回答
2

请参阅下面的合理虚拟主机定义

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80


## must be first so the the wamp menu page loads
<VirtualHost *:80>
    ServerAdmin webmaster@homemail.net
    DocumentRoot "D:/wamp/www"
    ServerName localhost
    ServerAlias localhost
    <Directory  "D:/wamp/www">
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@homemail.net
    DocumentRoot "D:/websrc/www/project1"
    ServerName project1.dev
    ServerAlias project1.dev www.project1.dev
    Options Indexes FollowSymLinks
    <Directory "D:/websrc/www/project1">
        AllowOverride All
        Order Deny,Allow
        Allow from 127.0.0.1
        Allow from 192.168.2
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@homemail.net
    DocumentRoot "D:/websrc/www/project2"
    ServerName project2.dev
    ServerAlias project2.dev www.project2.dev
    Options Indexes FollowSymLinks
    <Directory "D:/websrc/www/project2">
        AllowOverride All
        Order Deny,Allow
        Allow from 127.0.0.1
        Allow from 192.168.2
    </Directory>
</VirtualHost>

您将不得不更改目录名称以适应您的情况。

还要记住将您的虚拟主机名称添加到您的 HOSTS 文件中

c:\windows\system32\drivers\etc\hosts

> 127.0.0.1 project1.dev
> 127.0.0.1 project2.dev

在我看来,虚拟主机最好设置在 /wamp/www 文件夹结构之外的某个地方。在我使用的示例中参见上面 d:\websrc\www\project1

您使用直接键入浏览器地址字段的 project1.dev 运行虚拟主机。

如果您想在 wamp 主页上查看您的虚拟主机,请执行以下操作:

创建一个文件夹 ?:/wamp/vhosts 在该文件夹中创建文件,命名如下: project1.dev.conf project2.dev.conf ...等

它们不需要任何内容​​,只需要正确的名称来匹配您的虚拟主机名称

然后这些将显示在您的虚拟主机标题下的 wamp 主页上,您可以单击它们以启动它们。

于 2013-04-29T22:15:43.230 回答