Apache挂起了Django Application和Matplotlib

时间:2013-08-06 15:25:50

标签: mysql django apache matplotlib

非常困在这里,我没有太多可以继续下去。我有一个django应用程序启动并运行,我开始玩图形使用NetworkX和Matplotlib来显示海报的一些数据。然后我再次尝试使用该网站并收到错误:

'/ var / www'不是可写的目录;你必须将/var/www/.matplotlib设置为可写的目录。您还可以将环境变量MPLCONFIGDIR设置为您希望存储matplotlib数据的任何可写目录

我通过chmod'ding目录解决了这个问题。该网站的主页然后加载正常,但当我尝试加载任何其他页面,Django渲染apache只是挂起。我将日志级别设置为debug并尾随它但它没有显示任何新的请求或错误或任何东西,它只是挂起直到浏览器放弃。然后我认为它只是一个错误,我刚刚做了一些事情,所以我回到了我的回购中的工作版本,我遇到了同样的问题。 Django的测试服务器仍在运行网站,这使我相信它是apache的问题(整个事情apache是​​我最不熟悉的部分)。

我的httpd.conf看起来像:

ServerName >> my server <<
TraceEnable off
AcceptFilter http none
AcceptFilter https none
EnableMMAP off
EnableSendfile off

<VirtualHost *:80>
    ServerAdmin >> my email <<
    ServerName >> my server <<
    DocumentRoot /Web/public/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    WSGIScriptAlias / /home/$USER/$APP/$APP/wsgi.py
    <Directory /Web/public/static>
        Options -Indexes
    </Directory>
    Alias /static /Web/public/static
    Alias /media /Web/public/media
    ErrorLog /var/log/apache2/error.log
    LogLevel debug
    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>

如果您有任何想法或需要更多信息,请与我们联系。

谢谢!

1 个答案:

答案 0 :(得分:0)

我有同样的问题; Apache / Django不起作用,但manage.py runserver可以正常工作。我尝试将默认目录设为可读,并尝试使用MPLCONFIGDIR更改export MPLCONFIGDIR=/stuff/,但唯一有效的方法是放置

import os
os.environ[ 'MPLCONFIGDIR' ] = '/tmp/'

导入matplotlib之前。在我的情况下,只有一个页面使用MPL,因此我可以接受这个“无处不在”。

取自original solutionsteko