无法让 localhost 同时显示 WampServer 索引和动态 url
Posted
技术标签:
【中文标题】无法让 localhost 同时显示 WampServer 索引和动态 url【英文标题】:Cant get localhost to show WampServer index and dynamic urls at same time 【发布时间】:2013-03-17 12:16:35 【问题描述】:我已经安装了 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 出现在“您的项目”下的该索引页面上,这一切都很好,但是当我点击来自 WampServer 的 mysite.local 链接,网址更改为 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 并从“您的项目”列表中访问各个站点。
请帮个忙
【问题讨论】:
为什么使用 wampserver 的“你的项目”列表?只需在浏览器中为各种本地 URL 添加书签即可。另外,可能更适合Serverfault。 谢谢大卫 - 很惊讶我没有任何答案?我只是认为设置它会很好,因为它似乎是有意的。我不知道“更适合 serverfault 是什么意思”。 serverfault.com 【参考方案1】:请参阅下面的合理虚拟主机定义
#
# 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 主页上,您可以单击它们以启动它们。
【讨论】:
【参考方案2】:hosts
文件和httpd.conf
看起来不错。
一些事情要尝试...
<VirtualHost *:80>
用于两个虚拟主机。
确保DocumentRoot
字符串有一个终端/
。
对于根虚拟主机,ServerName localhost:80
。
要通过虚拟主机浏览,请始终从 url 中省略 localhost/
。 “您的项目”链接包括 localhost/
,并以路径从根访问项目,而不是作为独立站点,每个站点都有自己的根(这是虚拟主机为您提供的)。
(WAMP 2) 当其他所有问题都得到修复后...要使根“index.php”页面的“您的虚拟主机”部分活跃起来,请关注these instructions。我只是这样做了,并不后悔。现在我可以单击链接来访问我作为虚拟主机服务的网站 - 耶!正是我一直想要的“你的项目”链接,但没有得到。
顺便说一句,<VirtualHost>...</VirtualHost>
指令将每个主机名绑定到服务器文件系统中的特定路径,因此“E:/wamp/www/”中的子目录不需要“.local”后缀.从目录本身中删除“.local”后,对DocumentRoot
条目进行相应的更改,例如DocumentRoot "E:/wamp/www/mysite/"
。但请务必在“ServerName”条目中保留“.local”,例如。 ServerName mysite.local
,以匹配“主机”文件中的条目。
【讨论】:
真的很抱歉长时间延迟回复。我在没有它正常工作的情况下进行了管理,并且刚刚尝试了您的建议,并且效果很好:-)我现在可以查看带有指向我网站的链接的 wampserver 主页。你是明星。遗憾的是,我需要 15 个声望,所以我不能给你投票? 是的,让这些东西工作起来非常令人满意。如果您强烈希望接受/支持我的回答,那么您可以将页面添加为书签,并在您有更多代表时返回。以上是关于无法让 localhost 同时显示 WampServer 索引和动态 url的主要内容,如果未能解决你的问题,请参考以下文章
无法让 jabber 客户端连接到在 localhost 上运行的 ejabberd