我想在Ubuntu 10.04的Apache安装程序中有多个虚拟主机。 我设法设置一个域名和子域名,jivity.net和sonata.jivity.net使用基于名称的虚拟主机在Apache2,它的工作原理。 但是当我尝试像sonata-software.jivity.net这样的东西,它将我redirect到sonata.jivity.net。 它像sonata-software.jivity.net中的连字符不被apache读取。 这里是我的虚拟conf文件sonata-software.jivity.net:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName sonata-software.jivity.net ServerAlias www.sonata-software.jivity.net SetEnv MAGE_RUN_CODE "sonata" SetEnv MAGE_RUN_TYPE "website" DocumentRoot /var/www/websites/jivity/sonata <Directory /> Options FollowSymLinks AllowOverride all </Directory> <Directory /var/www/websites/jivity/sonata> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
sonata.jivity.net vconf文件在/ etc / apache2 / sites-available /
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName sonata.jivity.net ServerAlias www.sonata.jivity.net SetEnv MAGE_RUN_CODE "sonata" SetEnv MAGE_RUN_TYPE "website" DocumentRoot /var/www/websites/jivity/sonata <Directory /> Options FollowSymLinks AllowOverride all </Directory> <Directory /var/www/websites/jivity/sonata> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
我想用sonata-software.jivity.net取代sonata.jivity.net我把这个放在/ etc / apache2 / sites-available文件夹后启用了这个网站,然后重新启动了apache。 我如何解决这个问题,以便我可以让sonata-software.jivity.net也工作? 谢谢。
好,第二次尝试…
我会在这里大胆猜测,想知道你是否有正确的文件根目录sonata-software.jivity.net。
也许你忘了编辑DocRoot目录,当你从现有的sonata.jivity.net conf复制和编辑configuration。
这是从你的configuration正确的?
DocumentRoot /var/www/websites/jivity/sonata
或者应该是更像这样的东西:
DocumentRoot /var/www/websites/jivity/sonata-software
当然,对于<Directory / var / www / websites / jivity / sonata>也是如此。
[后来]
更多关于ServerName和ServerAlias …
如果您希望多个域名指向相同的内容,只需创build一个虚拟主机并根据需要添加尽可能多的ServerAliases即可。 例如
ServerName sonata-software.jivity.net ServerAlias www.sonata-software.jivity.net ServerAlias sonata.jivity.net ServerAlias www.sonata.jivity.net
ServerName是网站的“规范名称”。 configuration站点是很常见的(但不是必须的),这样任何一个别名请求都会自动redirect到官方URL。
你可能在你的apacheconfiguration(/ etc / apache2下)或者DocRoot的.htaccess文件中有这样的redirect。
你有没有将它链接到/ etc / apache2 / sites-enabled /目录?
尝试:
sudo a2ensite sonata-software.jivity.net
如果你尝试删除连字符,只是做sonatasoftware.jivity.net。 确保您的网站可用和网站启用也被修改。 如果它的工作,那么也许它只是连字符,是以某种方式影响阿帕奇服务页面的方式。
尝试禁用sonata-software.jivity.net和sonata.jivity.net
a2dissite sonata.jivity.net a2dissite sonata-software.jivity.net
然后重新启动apache2,然后重新启用sonata-software.jivity.net
a2ensite sonata-software.jivity.net
看看它是否能解决你的问题。
你configuration好你的DNS吗?
检查你的访问日志,你应该阅读发生了什么事情。
将sonata-software重命名为完全不同的东西,重新configurationDNS并重新启动Apache(这可能需要一些时间才能刷新caching)。