如何在带mod_python的apache2上共同托管django应用和php5?

0 投票
1 回答
686 浏览
提问于 2025-04-15 13:25

我在Ubuntu服务器/ Linode VPS上安装并运行了django+python+apache2+mod_python。php5也已经安装并配置好了。我们没有像example.com这样的域名,只有一个IP地址。所以我的apache配置文件看起来是这样的:

ServerAdmin webmaster@localhost DocumentRoot /var/www

    <Location "/">
            SetHandler python-program
            PythonHandler django.core.handlers.modpython
            SetEnv DJANGO_SETTINGS_MODULE mysite.settings
            PythonOption django.root /mysite
            PythonPath "['/var/www/djangoprojects',] + sys.path"
            PythonDebug On
    </Location>

我想安装vtiger,所以如果我把我的配置文件改成这样:

<VirtualHost *:80>
    DocumentRoot /var/www/vtigercrm/
    ErrorLog /var/log/apache2/vtiger.error_log
    CustomLog /var/log/apache2/vtiger.access_log combined
    <Directory /var/www/vtigercrm>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

这样vtiger这个基于php的应用就能正常工作了,但django的应用就无法访问了。我该如何让这两个应用在一个文件中共存呢?我不能使用虚拟主机或子域名。不过我可以用不同的端口号。

大家有什么建议吗?

祝好,
安库尔·古普塔

1 个回答

1

我需要测试一下,但这个应该能让你的Django项目在/mysite/这个地址运行:

<VirtualHost *:80>
    DocumentRoot /var/www/vtigercrm/
    ErrorLog /var/log/apache2/vtiger.error_log
    CustomLog /var/log/apache2/vtiger.access_log combined
    <Directory /var/www/vtigercrm>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    <Location "/mysite/">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE mysite.settings
        PythonOption django.root /mysite
        PythonPath "['/var/www/djangoprojects',] + sys.path"
        PythonDebug On
    </Location>
</VirtualHost>

另外,托管Django应用的推荐方式是使用mod_wsgi

撰写回答