PHP本地实现多域名访问教程之Apache虚拟主机配置方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP本地实现多域名访问教程之Apache虚拟主机配置方法相关的知识,希望对你有一定的参考价值。

参考技术A 方法/步骤
1、首先修改C:\Windows\System32\drivers\etc目录下的
hosts
文件,用记事本打开,加入:
127.0.0.1
www.a.com127.0.0.1
www.b.com记得去掉前面的#
2、打开xampp\apache\conf\httpd.conf文件,搜索
“Include
conf/extra/httpd-vhosts.conf”,确保前面没有
#
注释符,也就是确保引入了
vhosts
虚拟主机配置文件。效果如下:
#
Virtual
hosts
Include
"conf/extra/httpd-vhosts.conf"
开启了httpd-vhosts.conf,默认a的httpd.conf默认配置失效(确保
httpd-vhosts.conf
文件里也开启了虚拟主机配置,见第3条),访问此IP的域名将全部指向
vhosts.conf
中的第一个虚拟主机。
3、在虚拟主机设置文件xampp\apache\conf\extra\httpd-vhosts.conf里设置:取消
NameVirtualHost
*:80
前面的
##,这样就启用了
vhosts.conf
,默认的httpd.conf默认配置失效。虚拟主机配置将只设置在httpd-vhosts.conf里。localhost
的目录默认配置记得也按此设置。
#
#
Use
name-based
virtual
hosting.
#
NameVirtualHost
*:80
#
#
VirtualHost
example:
#
Almost
any
Apache
directive
may
go
into
a
VirtualHost
container.
#
The
first
VirtualHost
section
is
used
for
all
requests
that
do
not
#
match
a
ServerName
or
ServerAlias
in
any
block.
#
ServerAdmin
postmaster@dummy-host.localhost
DocumentRoot
"I:/xampp/htdocs/"
ServerName
localhost
ServerAlias
localhost
ErrorLog
"logs/dummy-host.localhost-error.log"
CustomLog
"logs/dummy-host.localhost-access.log"
combined
ServerAdmin
postmaster@dummy-host1.localhost
DocumentRoot
"I:/xampp/htdocs/a"
ServerName
www.a.com
ServerAlias
www.a.com
ErrorLog
"logs/dummy-host1.localhost-error.log"
CustomLog
"logs/dummy-host1.localhost-access.log"
combined
ServerAdmin
postmaster@dummy-host2.localhost
DocumentRoot
"I:/xampp/htdocs/b/"
ServerName
www.b.com
ServerAlias
www.b.com
ErrorLog
"logs/dummy-host2.localhost-error.log"
CustomLog
"logs/dummy-host2.localhost-access.log"
combined
至此,XAMPP
的虚拟主机设置完毕,现在
访问
localhost
还是原来的
XAMPP
的帮助指南,访问
www.a.com
将指向到绑定的
a
目录,访问
www.b.com
将指向到绑定的
b
目录。

PHP网站从本地主机更改域名不起作用

【中文标题】PHP网站从本地主机更改域名不起作用【英文标题】:Php website change domain name from local host not working 【发布时间】:2021-12-17 15:24:04 【问题描述】:

我有一个在 VM 上运行的 php Web 应用程序。我正在尝试将域名从本地主机更改为自定义名称。我做了以下更改,但仍然无效。请纠正/帮助我做错了什么/在这里遗漏。

    在 etc/hosts 文件中添加网站名称为 127.0.0.1 website-name 在 apache/conf 的 httpd 文件中启用 httpd-vhosts 文件 在 httpd-vhosts.conf 文件中添加了带有所需详细信息的虚拟主机标记 重启 apache 服务器 在此之后,如果我尝试在浏览器中使用提到的域名连接到此应用程序,它会显示页面无法显示。

我尝试了互联网上的类似过程,不知道哪里出错了。这在运行 windows 的虚拟机上。

【问题讨论】:

所以您在虚拟机中编辑了/etc/hosts,但尝试从主机访问该网站?或者您是否编辑了您的 Windows 主机文件?当您尝试访问您的应用时,浏览器中的结果是什么? 感谢您的回复。我在 vm 中编辑了文件并从同一个 vm 访问。浏览器中的结果是“无法访问此站点”。 请对此有任何想法 在虚拟机内部网站工作正常吗?由于您编辑主机文件。您是否已经将您的域指向了 IP,您面临的错误是什么?错误的详细信息会有所帮助。 【参考方案1】:

启用错误和访问日志以查看您无法访问网站的原因。而不是 IP 地址,您可以输入星号(表示任何地址),仅用于测试。 Vhost 示例如下。

<VirtualHost *:80>
    DocumentRoot "/www/example1"
    ServerName www.example.com
    ErrorLog "path/to/error.log"
    CustomLog "path/to/access.log" common
</VirtualHost>

Apache Vhost example、Apache ErrorLog Directive、Apache CustomLog Directive

检查网站文件夹权限。除非一切都在 root 用户下,否则 Web 服务器将无法处理您的文件。 Here is an example of how you can do this.

希望这将有助于调试问题)

【讨论】:

以上是关于PHP本地实现多域名访问教程之Apache虚拟主机配置方法的主要内容,如果未能解决你的问题,请参考以下文章

apache+php+mysql是集成包安装在虚拟机里面的.如何在其他主机也能访问?

百度云BCC配置Apache VirtualHost 实现相同域名不同端口访问不同应用

PHP学习笔记:APACHE配置虚拟目录一个站点使用多域名配置方式

没有域名的Apache虚拟主机

Phpcms安装前后域名默认访问路径

PHP网站从本地主机更改域名不起作用