WAMP - 从项目URL中删除localhost

问题描述 投票:10回答:16

我在WAMP中的项目的URL并没有像我期望的那样解决。例如,我希望文件夹c:\ wamp \ www \ project1中的项目具有URL http://project1/,但它实际上具有URL http://localhost/project1/

访问服务器变量时,这可能会导致问题。我该如何解决?

php apache url localhost wamp
16个回答
33
投票

如果您现在使用WAMPServer 3或更高版本,您还可以使用qazxsw poi,只需单击一下即可创建虚拟主机。

实际上,这个改变是WAMPServer开发人员想要的,并且有充分的理由。

使用look at this answer url和默认的WAMPServer DocumentRoot时出现问题,因为它会导致某些框架和WordPress类型环境出现问题,如果您使用的代码依赖于对服务器环境的了解,则会导致您自己的代码。

正确的解决方案是为您的所有项目创建虚拟主机,甚至是存储在localhost/project1样式文件夹中的项目。

当这样做时,DocumentRoot是\wamp\www\project1,这就是造成这些问题的原因。

这些工具期望DocumentRoot成为站点的根,即\wamp\www,这样当他们使用PHP变量时

\wamp\www\project1

他们得到正确的答案,即他们将在托管该网站的真实直播服务器上获得的答案。

所以使用$_SERVER['HTTP_HOST'] $_SERVER['SERVER_NAME'] $_SERVER['DOCUMENT_ROOT'] 样式url意味着这些变量将返回

localhost\project1

什么时候应该回来

$_SERVER['HTTP_HOST'] = localhost
$_SERVER['SERVER_NAME'] = localhost
$_SERVER['DOCUMENT_ROOT'] = C:/wamp/www

那么你应该做些什么来使$_SERVER['HTTP_HOST'] = project1 $_SERVER['SERVER_NAME'] = project1 $_SERVER['DOCUMENT_ROOT'] = C:/wamp/www/project1 菜单工作并减少将网站复制到实时服务器的痛苦是:

在HOSTS文件中为每个项目创建一个条目,并记住创建一个用于通过IPV4(127.0.0.1)访问,一个用于通过IPV6(:: 1)访问: -

My Projects

请记住在对此文件进行任何更改后刷新Windows DNS缓存,如下所示: -

使用127.0.0.1 localhost 127.0.0.1 project1 ::1 localhost ::1 project1 启动命令窗口并运行: -

Run as Administrator

现在您必须创建一个虚拟主机定义,因此编辑net stop Dnscache net start Dnscache 文件(apache版本可能不同)

第一次执行此操作时,请删除默认内容。然后像这样创建您的虚拟主机定义: -

\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhost.conf

现在您还需要一个更改,您必须取消注释# # Use name-based virtual hosting. # This next line is not required if you are using Apache 2.4.x and should be deleted NameVirtualHost *:80 ## should be first so the wamp menu page loads and is the default site ## should also never be changed from only allowing access from the local machine ## for a bit of extra security from casual ip address probing <VirtualHost *:80> DocumentRoot "C:/wamp/www" ServerName localhost ServerAlias localhost <Directory "C:/wamp/www"> AllowOverride All <IfDefine APACHE24> Require local </IfDefine> <IfDefine !APACHE24> Order Deny,Allow Deny from all Allow from 127.0.0.1 localhost ::1 </IfDefine> </Directory> </VirtualHost> <VirtualHost *:80> DocumentRoot "C:/wamp/www/project1" ServerName project1 ServerAlias project1 <Directory "C:/wamp/www/project1"> AllowOverride All <IfDefine APACHE24> Require local </IfDefine> <IfDefine !APACHE24> Order Deny,Allow Deny from all Allow from 127.0.0.1 localhost ::1 </IfDefine> </Directory> </VirtualHost> 中包含我们刚刚更改的上述文件的行。因此,编辑httpd.conf文件,使用wampmanager菜单执行此操作,因为它确保您编辑正确的文件。

找到这一行httpd.conf并从行的开头删除评论#Include conf/extra/httpd-vhosts.conf符号,如下所示: -

#

当然,您需要重新启动Apache,以便它获取配置更改。

如果Apache没有重新启动,你可能在配置中犯了一个错误,找出错误的尝试。

打开命令窗口并将Include conf/extra/httpd-vhosts.conf 打开到CD文件夹中。

然后运行: -

\wamp\bin\apache\apache2.4.9\bin

如果错误在httpd -t httpd.conf文件中,它将告诉您错误并且还为您提供行号以使查找错误变得非常容易。


0
投票
LoadModule rewrite_module modules/mod_rewrite.so

0
投票

为此,您可以使用localhost主页上“工具”菜单下的httpd.conf实用程序创建虚拟主机。 有关如何创建虚拟主机的更多信息,请访问:C:\wamp\www In index.php line 338 ($suppress_localhost ? 'http://' : '') change http:// to http://localhost/


0
投票

我认为最简单快捷的方法是:

在www文件夹中打开index.php >>>更改:$ suppress_localhost为false / no。


0
投票

这本身并不是一个真正的答案。似乎使用WAMP删除虚拟主机的最快方法是先创建一个虚拟主机,或者准备卸载/重新安装它。配置文件的路径是什么来纠正错误的WAMP服务器错误?


-1
投票

在窗口7,64位上安装新的wamp设置后,我也遇到了同样的问题。只是改变行号。 30 $ suppress_localhost = false;它的工作对我来说。


-1
投票

在www文件夹中打开index.php并设置

$ suppress_localhost = True; ===> $ suppress_localhost = false;

那是工作。


-1
投票

您可以将“wamp64 / wampmanager.conf”文件中的“urlAddLocalhost”变量更新为on / off。默认情况下它是“关闭”。 我的wamp版本是3.0.6。

Add a virtual Host

Step by step instructions


13
投票

在您的www文件夹中,在第30行打开index.php更改:$ suppress_localhost为false

这应该看起来:

$ suppress_localhost = false;


12
投票

在你的httpd-vhost.conf文件夹中,在第30行打开www。在这里,将index.php更改为$suppress_localhost。所以,它应该看起来:

false

这对我来说是最快捷,最容易解决的问题。我正在使用64位Wamp。


3
投票

您的wamp似乎被配置为在通常不存在的域helloworld上运行网站。

加:

$suppress_localhost = false;

在这个文件里面: 127.0.0.1 helloworld

确保使用管理员权限启动文本编辑器,以便能够编辑该文件。

这将告诉您的计算机,否则不存在的域qazxsw poi应该被解析为您的回送地址。


3
投票

好的,我有这个问题。所以,我解决了这个问题,并将其追溯到一个实际的解决方案,而不是一个黑客。

解决方案 :

  1. 右键单击WAMP服务器图标
  2. 选择c:\windows\system32\drivers\etc\hosts
  3. 选择(启用)选项helloworld

DONE。剩下的是如何以及为什么的FYI。


注意:localhost / myproject.php或myproject.php。虽然解决方案已被接受,但我看到一些让我感到困惑的帖子。根据OP的具体问题,以及如何影响该单个项目,可接受的解决方案基于不同服务器应用程序的单个项目。但所有其他解决方案都是黑客攻击,并没有真正回答OP问题的解决方案,但确实提出了关于URL的一个好点。因此,根据其他“解决方案”,以下是如何在URL中切换localhost引用。因此我的附加解决方案添加到混合中。


This is a toggle switch.

故障排除流程(不涉及黑客攻击):


我们来看看index.php

WAMP Settings


我们来看看配置文件。注意变量和数组?

Add localhost in URL


这是阵列。先前使用的变量。让我们看看......哦,它告诉我们在哪里以及做什么。

enter image description here


如解决方案中所述:

enter image description here


1
投票

对我而言,最简单的方法是去enter image description here,在wampserver主页上使用enter image description here(工具部分)。有一个很好的简单形式来创建别名没有任何问题(而使用托盘图标创建别名时使用控制台)。没有源编辑,只使用wamp提供的内容。请记住在创建别名后刷新DNS。在Win10上测试,WampServer 3.0.6 64位。


0
投票

创建像RiggsFolly这样的虚拟主机。

并尝试在http://localhost取消注释Add a Virtual Host


0
投票

如果您的“Your Projects”文件夹存在于“wamp / www /”中,并且如果您在正确启动wampserever后可以看到localhost主页,但仍然无法访问您的项目,那么只需转到www文件夹,打开index.php并搜索$ suppress_localhost并将其值设置为false。重启wampserver,转到localhost并尝试访问您的项目。


0
投票

在更改或未更改DocumentRoot的httpd.conf中,HostnameLookups未关闭。在浏览器中测试$ _SERVER ['HTTP_HOST'] $ _SERVER ['SERVER_NAME'] $ _SERVER ['DOCUMENT_ROOT']

© www.soinside.com 2019 - 2024. All rights reserved.