Apache虚拟主机和本地主机
我在Mac OS X上与XAMPP合作 我正在尝试为客户正确运行一个网站,但我真的不知道Symfony(现在)。我只想安装并启动它 我已通过以下方式更改了我的文件:Apache虚拟主机和本地主机,apache,localhost,virtualhost,Apache,Localhost,Virtualhost,我在Mac OS X上与XAMPP合作 我正在尝试为客户正确运行一个网站,但我真的不知道Symfony(现在)。我只想安装并启动它 我已通过以下方式更改了我的文件: 127.0.0.1 www.mysite.local 以及httpd.conf文件,如下所示: 127.0.0.1 www.mysite.local 服务器名www.mysite.local DocumentRoot/Applications/MAMP/htdocs/mysite/web DirectoryIndex.php
127.0.0.1 www.mysite.local
以及httpd.conf文件,如下所示:
127.0.0.1 www.mysite.local
服务器名www.mysite.local
DocumentRoot/Applications/MAMP/htdocs/mysite/web
DirectoryIndex.php
允许超越所有
通融
别名/sf/Applications/MAMP/htdocs/mysite/lib/vendor/symfony/data/web/sf
允许超越所有
通融
现在,该站点正在运行(耶!),但我无法再访问任何其他本地站点,因为localhost呈现为
我错在哪里?
谢谢大家! 根据本文件: 您可能缺少以下指令:
NameVirtualHost *:80
这是正常的,如果你看到它。由于它是第一个虚拟主机条目,因此将显示本地主机 例如,假设您不希望该页面显示。您只想显示“Apache,it works”页面,因此您可以在mysite.local之前创建一个vhost条目作为本地主机,并将其指向“it works”页面
但这是正常的。我以前有过这个问题,所以别担心
localhost
将始终重定向到127.0.0.1
。您可以通过将其他VirtualHost命名为其他本地回圈地址(如127.0.0.2
)来实现这一点。确保您还更改了相应的主机
文件以实现此功能
例如,我的httpd vhosts.conf
如下所示:
127.0.0.2 intranet.dev
DocumentRoot“D:/6.应用程序数据/XAMPP共享/htdocs/intranet”
ServerName intranet.dev
ServerAlias www.intranet.dev
ErrorLog“logs/intranet.dev error.log”
CustomLog“logs/intranet.dec access.log”组合
选项索引如下SYMLINKS ExecCGI包括
命令允许,拒绝
通融
允许超越所有
要求所有授权
(请注意,在
第一节中键入了127.0.0.2:80
。这意味着VirtualHost的此块将只影响对IP地址127.0.0.2
端口80
的请求,IP地址是HTTP的默认端口
要正确路由名称intranet.dev
,我的hosts
入口行如下所示:
127.0.0.2 intranet.dev
这样,它将阻止您为
localhost
创建另一个VirtualHost块,这是不必要的。您可能需要使用以下方法:
DocumentRoot“somepath\Apache2.2\htdocs”
服务器名本地主机
作为您的第一个虚拟主机(将其放在其他虚拟主机之前)。这对我很有用
运行http://localhost/projectName
服务器管理本地主机
DocumentRoot路径/to/htdocs/
服务器名本地主机
运行http://somewebsite.com
本地
服务器管理员webmaster@example.com
DocumentRoot/path/to/htdocs/somewebsiteFolder
服务器名www.somewebsite.com
服务器别名somewebsite.com
其他网站也一样
服务器管理员webmaster@example.com
DocumentRoot/path/to/htdocs/anotherSiteFolder
服务器名www.anothersite.local
ServerAlias anothersite.com
对于执行此处描述的所有操作但仍无法访问的用户:
带有Apache HTTP Server 2.4的XAMPP:
在文件httpd-vhost.conf中:
DocumentRoot“D:/xampp/htdocs/dir”
ServerName.dev
Require all-grated#apache v 2.4.4仅使用此
这里不需要端口或IP地址。Apache在其自己的文件中配置它。不需要NameVirtualHost*:80;它已被弃用。您可以使用它,但没有任何区别 然后,要编辑主机,您必须以管理员身份运行(如下所述)。如果您在未执行此操作的情况下编辑文件,则您正在编辑一个伪文件,而不是原始文件(是的,它会保存等,但它不是真实的文件) 在Windows中: 找到记事本图标,右键单击,以管理员身份运行,打开文件,转到C:/WINDOWS/system32/driver/etc/hosts,选中“查看所有文件”,然后打开主机。 如果您以前在何处编辑它,可能会看到它不是您以前在未以管理员身份运行时编辑的文件
然后要检查Apache是否正在读取您的httpd vhost.conf,请转到文件夹xampFolder/Apache/bin,按住Shift键并单击鼠标右键,在此处打开一个终端命令,然后打开XAMPP(就像您通常做的那样),启动Apache,然后在命令行上键入
httpd-S
。您将看到虚拟主机的列表。只需检查您的something.dev是否存在。这可能是因为您的web文件夹(如前所述“/Applications/MAMP/htdocs/mysite/web”)为空
我的建议是首先制作项目,然后制作虚拟主机
我遇到了类似的情况。我在httpd vhosts.confiz中使用了DocumentRoot中的一个空文件夹,无法访问我的shahg101.com站点。在使用virtualHost时,我遇到了访问本地主机的相同问题。我通过在virtualHost侦听代码l中添加名称解决了这个问题如下: 在我的hosts文件中,我添加了以下代码(C:\Windows\System32\drivers\etc\hosts)- 在我的httpd.conf中,我添加了以下代码:
<VirtualHost main_live:80>
DocumentRoot H:/wamp/www/raj/main_live/
ServerName main_live
</VirtualHost>
DocumentRoot H:/wamp/www/raj/main\u live/
服务器名主服务器
就是这样。它可以工作,我可以同时使用localhost、phpmyadmin,以及main\u live(我的虚拟项目)。我正在运行(Xenial Xerus)。这就是我的工作原理:
/etc/apache2/站点
你
# Main host
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/xampp/htdocs"
</VirtualHost>
# Additional host
<VirtualHost *:80>
# Over directives there
</VirtualHost>
<VirtualHost site.com:80>
DocumentRoot "C:/Bitnami/apache2/htdocs/site/docroot"
<Directory "C:/Bitnami/apache2/htdocs/site/docroot">
Options Indexes FollowSymLinks
AllowOverride All
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3 >
Require all granted
</IfVersion>
</Directory>
</VirtualHost>