2011-06-25 19 views
3

更新:我原来的问题是在下面,但我发布的问题的代码已被编辑为最终的工作解决方案。Django/mod_wsgi和PHP作为虚拟主机在同一个Apache服务器上使用MAMP

我想在我的MAMP开发服务器上运行多个站点。有些网站是生活在MAMP中的htdocs的WordPress网站,有些网站是django应用程序,它们生活在一个名为djangoprojects的文件夹中。

我一直在努力实现从这些堆栈问题的解决方案:

multiple django sites with apache & mod_wsgi

How do I run Django and PHP together on one Apache server?

,但我都没有成功。我能够使用在第一个VirtualHost托架(从守护进程向前)中看到的代码在apache上运行django站点,但是无法访问任何php站点。

非常感谢帮助。我是新来的,我无法解决这些错误。

这里是我的httpd.conf代码:

UPDATE:以下作品的代码。 Django App和PHP应用程序都存在于本地主机服务器上。与PHP相关的VirtualHost东西从MAMP httpd.conf文件中进一步复制而来。

<VirtualHost *:80> 
    ServerName localhost:80 
    UseCanonicalName Off 
    DocumentRoot "/Applications/MAMP/htdocs" 
    <Directory /> 
     Options Indexes FollowSymLinks 
     AllowOverride None 
    </Directory> 
    <Directory "/Applications/MAMP/htdocs"> 
     Options All 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 

    WSGIDaemonProcess site1 display-name=%{GROUP} 
    WSGIProcessGroup site1 
    Alias /media/ /Users/sequoia/djangoprojects/dynamics/media/ 
    <Directory /Users/sequoia/djangoprojects/dynamics/media> 
     Options ExecCGI 
      Order deny,allow 
     Allow from all 
    </Directory> 
    WSGIScriptAlias /dynamics /Users/sequoia/djangoprojects/dynamics/apache/django.wsgi 
    <Directory /Users/sequoia/djangoprojects/dynamics/apache> 
     Order deny,allow 
     Allow from all 
    </Directory> 
</VirtualHost> 
+0

下面是另一个类似的问题以供参考:http://serverfault.com/questions/226449/how-can-django-wsgi-and-php-share-on-apache –

+0

@mark - 感谢您的链接,我用答案中的第一个链接来制定解决方案,但对这个问题的答案和链接的文档都假设了比我更多的知识。所以我不确定我的解决方案是否符合他们的建议。 – sequoia

+0

您仍然不应在ServerName字符串中使用':80'。 –

回答

1

两个问题入手:

  1. ServerName是故意要指定主机名不是一个URL路径。
  2. 您不应该将DocumentRoot设置为Django站点源代码的位置。
+0

感谢您的指点。我将主机切换到本地主机,用Alias替换了无意的Alias匹配,并切换了虚拟主机的端口,以便为django网站获得可用的虚拟主机。然后,我删除了虚拟主机的PHP网站,因为MAMP设置为处理这些。 **新问题**我想我不明白DocumentRoot,我应该怎么设置? - 你有没有建议如何实现这个结果,而无需调用不同的端口?也许像http://dev2.localhost?谢谢。 – sequoia

+0

从WSGIDaemonProcess指令开始,将所拥有的东西移动到现有的虚拟主机的端口80.这些指令将会看到在子URL上安装的东西,并且不应该干扰已经在那里运行的PHP应用程序。 –

+0

嗯。我想我错过了一些东西......你是否建议我应该有其他虚拟主机?这是我定义的唯一虚拟主机。如果我有另一个用于PHP应用程序的VirtualHost,并且在那里移动WSGI指令,是否意味着我的django项目需要移动到与php应用程序相同的目录中?我想我读过你不应该把你的django项目目录放在public_html文件夹中?也许?拥有两个具有不同DocumentRoot的虚拟主机意味着只有第一个定义的虚拟主机可以工作。 – sequoia