单个Apache服务器上的Django和Php站点

单个Apache服务器上的Django和Php站点,php,python,django,apache,amazon-ec2,Php,Python,Django,Apache,Amazon Ec2,我有一个Django站点在apache2上的ec2实例(ubuntu)上运行,使用mod_wsgi。我把它放在/var/www/django_项目中。它已启动并运行,没有任何问题。现在我只想在这个ec2实例上托管另一个站点(php、mysql)。我试图配置我的httpd.conf,并添加了具有适当权限的php目录,但我相信由于mod_wsgi中的别名设置,上面“/”的任何请求都会被django处理 我没有任何域名。我使用机器的IP访问我的Django站点(即w.x.y.z/Django_应用程序

我有一个Django站点在apache2上的ec2实例(ubuntu)上运行,使用mod_wsgi。我把它放在/var/www/django_项目中。它已启动并运行,没有任何问题。现在我只想在这个ec2实例上托管另一个站点(php、mysql)。我试图配置我的httpd.conf,并添加了具有适当权限的php目录,但我相信由于mod_wsgi中的别名设置,上面“/”的任何请求都会被django处理

我没有任何域名。我使用机器的IP访问我的Django站点(即w.x.y.z/Django_应用程序)

如果我错了,请纠正我:因为我没有服务器名,所以我不能让两个站点都使用虚拟主机在端口80上运行

我也不介意在不同的端口上运行它们。请给我建议一种在这台服务器上托管php站点的方法。要配置的文件以及如何配置该文件

我的httpd.conf文件:

Alias /static /var/www/resumerepo/static
<Directory /var/www/resumerepo/static>
order deny,allow
Allow From All
</Directory>

WSGIScriptAlias / /var/www/resumerepo/resumerepo/wsgi.py
WSGIPythonPath  /var/www/resumerepo

<Directory /var/www/resumerepo>
<Files wsgi.py>
Order deny,allow
Allow From All
</Files>

</Directory>
Alias/static/var/www/resumerepo/static
命令拒绝,允许
通融
WSGIScriptAlias//var/www/resumerepo/resumerepo/wsgi.py
WSGIPythonPath/var/www/resumerepo
命令拒绝,允许
通融

它工作正常,我的应用程序可以访问。但是,如果我将它放在一个虚拟主机中,并创建另一个虚拟主机,apache restart会抛出一个错误,说明PythonPath不能位于虚拟主机中。

如果django项目可以通过域的根(或IP)访问,则无法轻松执行此操作,例如:
http://1.2.3.4
->导致您的django项目`

我认为,一种解决方案是将django项目移动到一个子目录,如
http://1.2.3.4/django
,并使您的php项目也可以在子目录中访问,如
http://1.2.3.4/php

或者您可以创建一个新的虚拟主机,例如,为您的php项目监听端口8080。这样:

  • http://1.2.3.4
    引导您的django项目
  • http://1.2.3.4:8080
    引导您的php项目
第二个选项可能更容易设置,因为您不必更改django项目的配置

您的vhost文件可能如下所示:

<VirtualHost *:8080>
    ServerAdmin contact@yourdomain
    DocumentRoot /var/www/php

    <Directory /var/www/php>
        AllowOverride All
        Order allow,deny
        Allow From All
    </Directory>

</VirtualHost>

服务器管理员contact@yourdomain
DocumentRoot/var/www/php
允许超越所有
命令允许,拒绝
通融
也许这行不通:根据Apache文档