我是django初学者。
我在/var/log/apache2/error.log中收到以下消息(apache设置为调试级别)
[Thu Aug 30 16:15:11 2012] [info] mod_wsgi (pid=5616): Initializing Python. [Thu Aug 30 16:15:11 2012] [info] mod_wsgi (pid=5616): Attach interpreter ''. [Thu Aug 30 16:15:15 2012] [error] [client 172.24.113.130] File does not exist: /var/www/netvistra3 [Thu Aug 30 16:15:19 2012] [error] [client 172.24.113.130] File does not exist: /var/www/netvistra3
我的wsgi文件位于/usr/local/django/netvistra3/apache/netvistra3.wsgi
管理网站似乎只能使用django的嵌入式网络服务器。
来自apache2虚拟目录站点的片段:
Alias /static/admin /usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin
WSGIDaemonProcess netvistra3 user=pbensel group=staff threads=5
WSGIScriptAlias /netvistra3 /usr/local/django/netvistra/apache/netvistra3.wsgi
<Directory /usr/local/django/netvistra3>
WSGIScriptReloading On
WSGIProcessGroup netvistra3
WSGIApplicationGroup %{GLOBAL}
Order allow,deny
Allow from all
</Directory>
我非常感谢任何帮助
答案 0 :(得分:0)
Django在它自己的服务器下运行时有一些魔力可以帮助解决这个问题。在Apache等上部署时,您负责设置Apache或您正在使用的任何媒体服务器来提供管理文件。 Django文档在这个主题上相当不错。请参阅Django docs的以下链接。
这是一个非常普遍的问题。所以,不要心疼。如果您需要“deploy django admin”
的更多具体帮助,请使用Google顺便说一句,我对我的项目使用“collectstatic”方法,并从s3存储桶中为它们提供服务。它工作得很好,似乎是一种非常普遍的做法。至少用Django 1.3。
答案 1 :(得分:0)
正如大卫所说,你必须采取正确的步骤来设置静态文件。你有:
Alias /static/admin /usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin
但缺少相应的内容:
<Directory /usr/lib/python2.7/dist-packages/django/contrib/admin/static>
Order allow, deny
Allow from all
</Directory>
没有那个,你会发现静态文件失败并出现禁止错误。
我还会检查您是否已正确设置设置以说明静态媒体可用的URL。
如果静态文件未正确提供,您将丢失管理页面的所有信息,这可能被视为无法正常工作。
另外请看一下collectstatic,因为并不总是像使用Python一样从Python安装中引用静态媒体。