如何在一台服务器上处理一个主站点和多个虚拟主机

Lot*_*her 5 virtualhost apache-2.2

我有一个标准的 Ubuntu 安装。Apache Web 根目录是 /var/www。

我想托管我的“主要”站点和其他一些站点。

通常我会将 mysite.com 的文件放在 Web 根目录中。但是,如果我想托管多个看起来可能会变得混乱的站点。看起来我最终会得到一个类似的结构:

我的“主”站点的文件:

/var/www/index.html
/var/www/images/
/var/www/js/
Run Code Online (Sandbox Code Playgroud)

等等...

然后我的虚拟网站如:

/var/www/somesite/ #somesite's files in here
/var/www/foobar/ #foobar's files in here
Run Code Online (Sandbox Code Playgroud)

我应该如何组织这样的设置?将主站点的文件与虚拟主机站点的目录混合似乎是错误和混乱的。我想将我的“主”站点放在 webroot 中它自己的目录中(例如上面的“somesite”和“foobar”),但是访问我的 IP 地址的人将获得 web 根目录,其中没有任何站点文件。我应该这样做,然后将任何内容重定向到主 IP 到“主”站点的目录?也许用htaccess?也许在某个地方的 apache 配置中?

你会如何处理这个问题?


我最终做了什么(感谢下面的建议,所有这些都是有帮助的)...

这是配置文件 ( /etc/apache2/sites-enabled/default) 最初的内容:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
<Directory /var/www>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

通过将其更改为:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

DocumentRoot /var/www/mysite/public
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
<Directory /var/www/mysite/public>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

我能够访问“mysite.com”(我从目​​录中提供了公共文件,public因此我可以将一些系统文件向上一级而不是网络访问)

然后我通过创建一个新的配置文件在 next.mysite.com 上设置另一个站点,/etc/apache2/sites-enabled/nextconfig如下所示:

<VirtualHost *:80>
DocumentRoot /var/www/next
<Directory "/var/www/next">
allow from all
Options +Indexes
</Directory>
ServerName next.mysite.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Mic*_*ton 2

/var/www将“主”站点也放入 的子目录中,并更改 Apache 配置以反映其新位置。