2011-12-14 22 views
0

我强迫django的网站和一个“常规”网站,即维基在同一台机器上工作,米有点新东西这个东西...在apache的同一台linux机器上运行django网站和维基

我一直在尝试使用VirtualHost设置,但它似乎不工作得很好。换句话说,我可以在同一时间运行django站点(形式为host.com/djangosite)和其他站点(即host.com/othersite1)。一次只能运行一个,它看起来像apache运行它找到的第一个VirtualHost。

在服务器中的结构看起来像这样

/var/www/djangosite 
/var/www/othersite1 
/var/www/othersite2 ... etc 

现在,我尝试了一下,终于结束了在一个文件中有两个VirtualHosts现在启用的站点 - :

<VirtualHost *:80> 
     ServerAdmin [email protected] 
     DocumentRoot /var/www/djangosite 
     ServerName host.com/djangosite 

     Alias /m/ "/var/www/djangosite/forum/skins/" 
     <Directory "/var/www/djangosite/forum/skins"> 
       Order allow,deny 
       Allow from all 
     </Directory> 
     Alias /upfiles/ "/var/www/djangosite/forum/upfiles/" 
     <Directory "/var/www/djangosite/forum/upfiles"> 
       Order deny,allow 
       Allow from all 
     </Directory> 

     WSGIScriptAlias /djangosite /var/www/djangosite/djangosite.wsgi 

     CustomLog /var/log/djangosite.access.log common 
     ErrorLog /var/log/djangosite.error.log 
</VirtualHost> 

<VirtualHost *:80> 
     DocumentRoot /var/www/othersite1 
     ServerName host.com/othersite1 
</VirtualHost> 

在他们自己的VirtualHosts都可以,也就是说,当我把这个文件放在启用了网站的文件中时,djangosite工作正常,第二个没有找到,(文件根目录在文件系统结构中的根目录错误)。如果我把第二个Vhost放在上面,那么djangosite不会。

好的。所以现在真正的问题是在一个linux/apache配置上使用一个NIC和一个主机名来运行djangosite和“常规”站点的配方。

感谢至少阅读:)

回答

0

你不需要两个单独VirtualHosts。只需将它们放在同一个服务器上,ServerName就像“host.com”一样。然后,您可以使用别名 - Django站点的WSGIScriptAlias和wiki的正常别名。

请注意:请不要将您的Django代码放在DocumentRoot中。这很危险 - 它使人们有可能在settings.py中看到你的代码,包括你的密码等。将它移到其他地方,并省略DocumentRoot指令。

+0

谢谢,我会在一会儿尝试一下。 –

+0

好吧它的作品像一个魅力:)谢谢我虽然它应该是简单的东西:) –

相关问题