我有一个标准的 Ubuntu 安装。Apache Web 根目录是 /var/www。
我想托管我的“主要”站点和一些其他站点。
通常情况下,我会将 mysite.com 的文件直接放在 Web 根目录中。但是,如果我想托管多个网站,这似乎会变得很混乱。我最终会得到如下结构:
我的“主要”站点的文件:
/var/www/index.html
/var/www/images/
/var/www/js/
ETC...
然后我的虚拟网站如下:
/var/www/somesite/ #somesite's files in here
/var/www/foobar/ #foobar's files in here
我应该如何组织这样的设置?将主站点的文件与虚拟主机站点的目录混合在一起似乎不合适,而且很混乱。我考虑过将我的“主”站点放入 webroot 中的自己的目录中(如上面的“somesite”和“foobar”),但访问我的 IP 地址的人将获得没有任何站点文件的 web root。我应该这样做,然后将任何内容重定向到主 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>
将其更改为:
<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>
我能够访问“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>
答案1
将“主”站点也放在子目录中/var/www
,并更改 Apache 配置以反映其新位置。
答案2
你不必混合它。一点也不用。
将虚拟主机目录放在/var/vh1
/var/vh2
等等。不需要全部放在/var/www
一个例子:
Listen 80
# This is the "main" server running on 172.20.30.40
ServerName server.domain.com
DocumentRoot /www/mainserver
# This is the other address
NameVirtualHost 172.20.30.50
<VirtualHost 172.20.30.50>
DocumentRoot /www/example1
ServerName www.example.com
# Other directives here ...
</VirtualHost>
<VirtualHost 172.20.30.50>
DocumentRoot /www/example2
ServerName www.example.org
# Other directives here ...
</VirtualHost>
我从阿帕奇页面本身。因此它相当可靠。
答案3
我个人认为你应该/var/Www/main
为你自己的网站创建一个文件夹。这样更容易跟踪。
只需为您的主站点创建一个虚拟主机并将其指向新文件夹。