XAMPP 所有配置均无效的虚拟主机站点
XAMPP virtualhost site with all configs not working
我正在尝试 运行 在 XAMPP 的 apache 服务器上本地访问 my.com。这里我在 httpd-vhosts.conf
文件中的配置在路径 ...\XAMPP\apache\conf\extra
:
<VirtualHost *:80>
DocumentRoot "D:/IDEs/XAMPP/htdocs"
ServerName localhost
<Directory "D:/IDEs/XAMPP/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:/IDEs/Websites/my.com"
ServerName my.com
<Directory "D:/IDEs/Websites/my.com">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
此外,我记得在 hosts
文件中添加两行,位于 C:\Windows\System32\drivers\etc
:
127.0.0.1 localhost
127.0.0.1 my.com
但是,当我通过 link 'my.com' 进入并启用了 apache 服务器时,我只有包含文件夹目录的页面,它们位于 htdocs
XAMPP' s文件夹。
我检查了很多视频和 Whosebug 问题,但没有任何帮助。
如果您能帮我解决这个问题,我将很高兴。
首先你应该在 httpd.conf
上安排目录
示例:
<Directory "C:/SERVER~1/web/site1">
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory "C:/SERVER~1/web/site2">
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
然后vhosts.conf这样排列
示例:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot "C:/SERVER~1/web/site1"
</VirtualHost>
<VirtualHost *:80>
ServerName site1.com
DocumentRoot "C:/SERVER~1/web/site1"
</VirtualHost>
<VirtualHost *:80>
ServerName www.site2.com
DocumentRoot "C:/SERVER~1/web/site2"
</VirtualHost>
<VirtualHost *:80>
ServerName site2.com
DocumentRoot "C:/SERVER~1/web/site2"
</VirtualHost>
经过五天一夜的阅读、搜索、尝试,我终于找到了解决方案,并分几步完成了:
首先,忘掉所有文件,专注于D:\IDEs\XAMPP\apache\conf\extra
.
中的httpd-ssl.conf
第二:
找到已被注释的 "SSL Virtual Host Context" 行。在下方,找到行 <VirtualHost _default_:443>
.or simmilar。然后将其更改为 <VirtualHost *:443>
.
第三,将文档根目录更改为xampp的htdocs的路径,例如"D:/XAMPP/htdocs"。此外,将 ServerName 从 www.example.com:443
或类似名称更改为 localhost。
我们完成了。
最后,在行 </VirtualHost>
之后插入代码
<VirtualHost *:443>
DocumentRoot "D:/IDEs/Websites/my.com"
ServerName my.com
<Directory "D:/IDEs/Websites/my.com">
Require all granted
</Directory>
</VirtualHost>
将 Document Root
和 Directory
路径更改为您的网站位置。和 Servername 到您的服务器名称。
重启 APACHE
对我有用。
我也了解到有些网站在本地主机上使用 SSL 而其他网站则没有。
所以如果你有像 Apache/2.4.37 (Win32) OpenSSL/1.0.2p PHP/7.0.33 Server at my.com Port 443
这样的异常,你应该将你的虚拟主机配置添加到 httpd-ssl.conf
文件中。
如果你喜欢 ... Port 80
将你的虚拟主机配置添加到 httpd-vhosts.conf
我正在尝试 运行 在 XAMPP 的 apache 服务器上本地访问 my.com。这里我在 httpd-vhosts.conf
文件中的配置在路径 ...\XAMPP\apache\conf\extra
:
<VirtualHost *:80>
DocumentRoot "D:/IDEs/XAMPP/htdocs"
ServerName localhost
<Directory "D:/IDEs/XAMPP/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:/IDEs/Websites/my.com"
ServerName my.com
<Directory "D:/IDEs/Websites/my.com">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
此外,我记得在 hosts
文件中添加两行,位于 C:\Windows\System32\drivers\etc
:
127.0.0.1 localhost
127.0.0.1 my.com
但是,当我通过 link 'my.com' 进入并启用了 apache 服务器时,我只有包含文件夹目录的页面,它们位于 htdocs
XAMPP' s文件夹。
我检查了很多视频和 Whosebug 问题,但没有任何帮助。 如果您能帮我解决这个问题,我将很高兴。
首先你应该在 httpd.conf
上安排目录示例:
<Directory "C:/SERVER~1/web/site1">
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory "C:/SERVER~1/web/site2">
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
然后vhosts.conf这样排列
示例:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot "C:/SERVER~1/web/site1"
</VirtualHost>
<VirtualHost *:80>
ServerName site1.com
DocumentRoot "C:/SERVER~1/web/site1"
</VirtualHost>
<VirtualHost *:80>
ServerName www.site2.com
DocumentRoot "C:/SERVER~1/web/site2"
</VirtualHost>
<VirtualHost *:80>
ServerName site2.com
DocumentRoot "C:/SERVER~1/web/site2"
</VirtualHost>
经过五天一夜的阅读、搜索、尝试,我终于找到了解决方案,并分几步完成了:
首先,忘掉所有文件,专注于D:\IDEs\XAMPP\apache\conf\extra
.
httpd-ssl.conf
第二:
找到已被注释的 "SSL Virtual Host Context" 行。在下方,找到行 <VirtualHost _default_:443>
.or simmilar。然后将其更改为 <VirtualHost *:443>
.
第三,将文档根目录更改为xampp的htdocs的路径,例如"D:/XAMPP/htdocs"。此外,将 ServerName 从 www.example.com:443
或类似名称更改为 localhost。
我们完成了。
最后,在行 </VirtualHost>
之后插入代码
<VirtualHost *:443>
DocumentRoot "D:/IDEs/Websites/my.com"
ServerName my.com
<Directory "D:/IDEs/Websites/my.com">
Require all granted
</Directory>
</VirtualHost>
将 Document Root
和 Directory
路径更改为您的网站位置。和 Servername 到您的服务器名称。
重启 APACHE
对我有用。
我也了解到有些网站在本地主机上使用 SSL 而其他网站则没有。
所以如果你有像 Apache/2.4.37 (Win32) OpenSSL/1.0.2p PHP/7.0.33 Server at my.com Port 443
这样的异常,你应该将你的虚拟主机配置添加到 httpd-ssl.conf
文件中。
如果你喜欢 ... Port 80
将你的虚拟主机配置添加到 httpd-vhosts.conf