Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache2是否支持子域的虚拟托管?_Apache2_Subdomain_Virtualhost - Fatal编程技术网

Apache2是否支持子域的虚拟托管?

Apache2是否支持子域的虚拟托管?,apache2,subdomain,virtualhost,Apache2,Subdomain,Virtualhost,目前我的Apache服务器是这样设置的 <VirtualHost *:80> ServerName www.example.com ServerAlias example.com DocumentRoot /var/www </VirtualHost> 因此,userjohn的所有文件都放在/var/www/john/文件夹中,userjane的文件也一样。然后,在关闭符号链接(默认情况下),并且仅从/var/www/user/向下提供访问权限(默认情况下也是如此

目前我的Apache服务器是这样设置的

<VirtualHost *:80>
 ServerName www.example.com
 ServerAlias example.com
 DocumentRoot /var/www
</VirtualHost>
因此,user
john
的所有文件都放在
/var/www/john/
文件夹中,user
jane的文件也一样。然后,在关闭符号链接(默认情况下),并且仅从
/var/www/user/
向下提供访问权限(默认情况下也是如此)的情况下,我不必担心
john的
网页,包括来自
jane的
网页的脚本/图像

仅使用本地度量(
/etc/hosts
而不是DNS),我发现这确实可行

首先,将
/etc/hosts
文件更改为具有所需网站名称()和目标IP地址(192.168.1.1)的映射。我使用了我的本地IP地址

 IPAddress               Hostname                   Alias
-----------     --------------------------    ------------------
192.168.1.1     www.example.com               example.com 
192.168.1.1     www.john.example.com          john.example.com
192.168.1.1     www.jane.example.com          jane.example.com
在查看万维网之前,您的web浏览器将检查您的
/etc/hosts
文件

接下来检查所有Apache配置文件(
httpd.conf
apache2.conf
ports.conf
conf.d/*
),并确保在文件中只发出一个
NameVirtualHost*:80
命令(它不必是port
:80
,但如果它被多次发布,您将获得)。我的是在
/etc/apache2/ports.conf
中发布的,所以如果必须的话,请将您的放在那里。最后,像这样更新您的Apache配置文件(我的位于
/etc/apache2/sites available/default

执行此操作后,
john.example.com
将转到
/var/www/john
。该目录将作为根目录,并且
john
将不再具有
www
的访问权限,因此,将无法访问
/var/www/jane

同样,完成此操作后,
jane.example.com
将转到
/var/www/jane
。该目录将作为根目录,并且
jane
将不再具有
www
的访问权限,因此,无法访问
/var/www/john


在关闭符号链接的情况下——默认情况下——两个目录都不能相互访问

这帮助我记住了我忘记更改主机文件。感谢过去的人。@MeowMix很高兴我至少能帮助一个人命令
a2ensite example.com
从可用的
站点/example.com
创建符号链接de>sites enabled/example.com
,相反的命令是
a2dispate example.com
,这将禁用它。
 IPAddress               Hostname                   Alias
-----------     --------------------------    ------------------
192.168.1.1     www.example.com               example.com 
192.168.1.1     www.john.example.com          john.example.com
192.168.1.1     www.jane.example.com          jane.example.com
<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www
</VirtualHost>

<VirtualHost *:80>
    ServerName www.john.example.com
    ServerAlias john.example.com
    DocumentRoot /var/www/john
</VirtualHost>

<VirtualHost *:80>
    ServerName www.jane.example.com
    ServerAlias jane.example.com
    DocumentRoot /var/www/jane
</VirtualHost>
# a2ensite www.example.com
# a2ensite www.john.example.com
# a2ensite www.jane.example.com