我以前在httpd.conf
中添加虚拟主机没有问题。
现在,通过将vhost拆分成不同的文件,有些地方出了问题:我只能在站点中获得第一个vhosts启用了。最后,我找到了一个我不喜欢的解决方案,它可以在我的本地linux机器上工作,但是不能在我的Amazon服务器上工作。(我不喜欢这样做的原因是,我想通过创建单独的文件来做到,就像指南说的那样,如果输入错误,就尽量减少潜在的问题,我希望它能够在本地和远程运行。)
下面是我在本地工作的结果:我在apache2.conf
文件的末尾添加了以下内容(从http://www.techstaty.com复制的想法):
<VirtualHost *:80>
ServerName example1
DocumentRoot /var/www/example1
ErrorLog /var/www/logs/error_log
CustomLog /var/www/logs/custom common
</VirtualHost>
<VirtualHost *:80>
ServerName exampletwo
DocumentRoot /var/www/exampletwo
ErrorLog /var/www/logs/error_log
CustomLog /var/www/logs/custom common
</VirtualHost>
更新/etc/hosts
文件:
127.0.0.1 localhost example1 exampletwo
效果很好。
我不喜欢它的原因是,我不明白为什么不将它们放在sites-available
中的单独文件中,然后将它们放在a2ensite example1
、exampletwo
和a2dissite default
中,然后重新启动服务器,这并不能使我的两个虚拟主机工作。我看到,如果您总是得到第一个字母虚拟服务器,无论您请求哪个主机,服务器都会感到困惑。
那我该怎么测试才能找出出了什么问题?为什么它在我的两个本地ubuntu盒(12.10和12.04)上工作,而在AmazonAWSUbuntu12.04实例上却不起作用?
apache2ctl configtest
说:Syntax OK
。重新启动apache2ctl graceful
没有显示错误。我还检查了访问和错误日志w/o以获得洞察力。
我也尝试过:a2enmod vhosts_alias
,但这并没有什么不同。(我想我的问题是在有人尝试之前:www.ex.而不是: example1.)
发布于 2013-06-23 15:38:08
这在Rackspace上对我有效。将两个域设置为独立的虚拟主机。我将虚拟主机属性修改为
<VirtualHost example1:80>
ServerName example1
DocumentRoot /var/www/example1
ErrorLog /var/www/logs/error_log
CustomLog /var/www/logs/custom common
</VirtualHost>
类似地,我将第二个虚拟主机编辑为示例2:80。
如果这不起作用,您也可以尝试在NameVirtualHosts中添加ports.conf。
https://askubuntu.com/questions/311909
复制