标签: mod-wsgi

Apache不提供django管理静态文件

让我感谢Stack Overflow社区的各位帮助我解决各种Django和Apache(带有mod_wsgi)错误.到目前为止,我已经询问了5个相关问题,现在我越来越接近在生产网站上获取我的内容了!

所以,我知道有这个很多类似的问题,我已经读了一堆 问题, 关于 服务 的静态 媒体 文件 的Django.

我读到了STATIC_URL,STATIC_ROOT(很快就会过时)ADMIN_MEDIA_PREFIX,并Alias /media/ ...在Apache配置中设置了一个.我试图逐个测试每个解决方案,但我无法正常工作.

这是我的管理网站现在的样子

我也有一个奇怪的情况,任何子域在我的服务器上工作.例如,我试图设置我的服务器,以便http://www.satoshi.example.com/允许我的正常(非Django)内容,而http://django.satoshi.example.com/将允许我的Django内容将被提供.但是目前任何子域名,无论是satoshi.example.com还是blahblahasdas.satoshi.example.com都在为我的Django文件提供服务(我知道因为我可以/admin在两个站点上访问该页面,尽管它们将在不同的会话中).

反正这里是我这是运行在服务器上的文件CentOS(不知道哪个版本)Apache 2.2.15,Python 2.6.6,django 1.3.1,和mod_wsgi 3.2.

我将发布我认为最相关的文件和配置如下:

每次重新启动时,Apache都会抛出这些错误

[Wed Feb 29 01:45:36 2012] [error] Exception KeyError: KeyError(140249420548064,) in <module 'threading' from '/usr/lib64/python2.6/threading.pyc'> ignored
[Wed Feb 29 01:45:36 2012] [error] Exception KeyError: KeyError(140249420548064,) in <module 'threading' from …
Run Code Online (Sandbox Code Playgroud)

python apache django mod-wsgi

44
推荐指数
2
解决办法
4万
查看次数

mod_wsgi,mod_python还是只是cgi?

我一直在玩我自己的网络服务器(Apache + Ubuntu)和python.从我所看到的有三种(?)主要方式:

  1. Apache配置为将.py作为cgi处理
  2. Apache配置为使用现在过时的mod_python(?)
  3. Apache配置为使用mod_wsgi

我记得读过Django更喜欢mod_wsgi,我对学习Django很感兴趣(我听说他们的官方教程非常优秀).

什么是"推荐"设置?我认为没有理由再使用mod_python了,但处理.py作为cgi和mod_wsgi之间的区别是什么?是否有可能同时运行它们(你想要吗?),或者这只是一个荒谬的想法,我应该停止思考这些疯狂的事情?

我想我真的只是在寻找关于Apache + Python的入门知识(链接也很好) - 到目前为止我所遇到的一切都非常有用 - 它们主要是指导方针.

python apache cgi mod-wsgi

43
推荐指数
4
解决办法
2万
查看次数

一个虚拟主机上的多个mod_wsgi应用程序指向错误的应用程序

我正在尝试在同一域下的子目录中设置两个(或更多)Django应用程序,例如:

http://example.com/site1/
http://example.com/site2/
Run Code Online (Sandbox Code Playgroud)

我知道通常这可以通过设置这样的apache虚拟主机来正常工作:

<VirtualHost *:80>
    ...
    WSGIScriptAlias /site1 /path/to/site1.wsgi
    WSGIScriptAlias /site2 /path/to/site2.wsgi
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

现在,我已经确认每个网站都是单独运作的.但是当我尝试并排运行时,apache会将我发送到工作进程首先加载的任何站点.例:

  1. 重启apache配置为服务6个线程
  2. 加载example.com/site1/,获取正确的页面
  3. 加载example.com/site2/,获取正确的页面
  4. 重复2次和3次2次.
  5. 重复刷新example.com/site1/,观察它从站点到站点的循环.

实际上,对于任何给定数量的工作进程,无论WSGIScriptAlias指令如何,它都会循环执行将请求发送到其首先命中的总数.无论我做什么(设置WSGIProcessGroup,守护进程模式与嵌入模式或指令),它都会继续表现出这种行为.

如果有人能指出我在这里做错了什么,那就太惊人了!

python apache mod-wsgi wsgi apache2

43
推荐指数
2
解决办法
2万
查看次数

Apache或Nginx为Django应用程序提供服务?

我想部署一个Django Web应用程序,因此我需要选择一个Web服务器来提供Python文件.

我应该提一下,我的生产站点将位于一台服务器上,该服务器将托管数据库和Web服务器.作为动力选择,我的目标是将数据库移动到专用服务器等.

这是我的问题:

  1. 我应该使用一个或两个Web服务器吗?这个问题的背景是很多人建议使用NginX来提供静态媒体文件,使用Apache来服务Python,这会产生以下问题:
    1. 为什么我们不能只使用一台服务器.我知道Apache有时可能是一个野兽,因此我怀疑人们使用NginX来提供两个静态媒体文件和python文件.
    2. 如果使用一台服务器,那么更好的是Apache或NginX.我在Apache方面经验丰富,但我只听说过NginX的好消息.
  2. 使用FastCGI而不是mod_wsgi有什么好处?

提前谢谢了

apache django mod-wsgi fastcgi nginx

43
推荐指数
2
解决办法
2万
查看次数

无法使用有效的用户名和密码登录django管理页面

我无法登录django管理页面.当我输入有效的用户名和密码时,它只会再次显示登录页面,没有错误消息

这个问题在django常见问题解答中,但我已经在那里找到答案,仍然无法通过初始登录屏幕.

我在ubuntu 12.04上使用django 1.4和apache2以及modwsgi.

我已经确认我在admin.py文件中注册了admin ,确保在添加后确认syncdb INSTALLED_APPS.当我输入了错误的密码我DO得到一个错误,所以我的管理员用户进行认证,只是没有在进行管理页面.

我已经尝试过设置SESSION_COOKIE_DOMAIN机器的IP和无.(确认cookie域显示为Chrome中机器的IP)

另外,检查用户是否通过shell进行身份验证:

>>> from django.contrib.auth import authenticate
>>> u = authenticate(username="user", password="pass")
>>> u.is_staff
True
>>> u.is_superuser
True
>>> u.is_active 
True
Run Code Online (Sandbox Code Playgroud)

尝试使用IE8和chrome canary登录,两者都会导致返回登录屏幕.

还有别的什么我想念????

settings.py

...
MIDDLEWARE_CLASSES = (
    'django.middleware.gzip.GZipMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.middleware.transaction.TransactionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)
AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',)
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.admin',    
    'django.contrib.staticfiles',
    'django.contrib.gis',
    'myapp.main',
)

SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_SAVE_EVERY_REQUEST = True
SESSION_COOKIE_AGE = 86400 # …
Run Code Online (Sandbox Code Playgroud)

python django mod-wsgi login admin

41
推荐指数
3
解决办法
4万
查看次数

500错误apache日志中没有任何内容

我目前正在开发一个基于的应用程序flask.它运行良好,可以手动生成服务器app.run().我已经尝试过mod_wsgi了.奇怪的是,我得到500错误,日志中没有任何内容.我调查了一下,这是我的发现.

  • print >>sys.stderr, "hello"预期的那样插入一行.该消息显示在错误日志中.
  • 在不使用模板的情况下调用方法时,它可以正常工作.没有500错误.
  • 使用简单的模板也可以正常工作.
  • 但是只要我在模板触发数据库访问(例如循环查询),我就会收到错误.

我的直觉告诉我,SQLAlchemy会发出错误,也许某些日志配置会导致日志在应用程序的某个时刻被丢弃.

另外,为了测试,我使用的是SQLite.据我所知,这只能从一个线程访问.因此,如果mod_wsgi生成更多线程,它可能会破坏应用程序.

我有点不知所措,因为它只会打破后面的运行mod_wsgi,这似乎也吞噬了我的错误.我该怎么做才能使错误冒泡到apache error_log中?

作为参考,代码可以在这个github永久链接上看到.

python apache mod-wsgi sqlalchemy flask

40
推荐指数
1
解决办法
1万
查看次数

为什么mod_wsgi无法写入数据?IOError:无法写入数据

可能导致此错误的原因:

$ sudo tail -n 100 /var/log/apache2/error.log'

[Wed Dec 29 15:20:03 2010] [error] [client 220.181.108.181] mod_wsgi (pid=20343): Exception occurred processing WSGI script '/home/username/public_html/idm.wsgi'.  
[Wed Dec 29 15:20:03 2010] [error] [client 220.181.108.181] IOError: failed to write data  
Run Code Online (Sandbox Code Playgroud)

这是WSGI脚本:

$ cat public_html/idm.wsgi 
import os
import sys

sys.path.append('/home/username/public_html/IDM_app/')

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()
Run Code Online (Sandbox Code Playgroud)

为什么Django无法写入数据?

我正在运行Django 1.2.4

django mod-wsgi ioerror

39
推荐指数
3
解决办法
3万
查看次数

如何安装python开发包?

我想去mod_wsgi 3.3上班.当我运行make它告诉我,我错过了Python开发人员包.如何获取和安装Python开发人员包?

我得到的错误如下:

mod_wsgi.c:135:20: error: Python.h: No such file or directory
mod_wsgi.c:138:2: error: #error Sorry, Python developer package does not appear to be installed.
mod_wsgi.c:142:2: error: #error Sorry, mod_wsgi requires at least Python 2.3.0 for Python 2.X.
mod_wsgi.c:150:2: error: #error Sorry, mod_wsgi requires that Python supporting thread.
mod_wsgi.c:153:21: error: compile.h: No such file or directory
mod_wsgi.c:154:18: error: node.h: No such file or directory
mod_wsgi.c:155:20: error: osdefs.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

系统(Amazon EC2实例)

  • Apache 2.2.16(Unix)
  • 亚马逊Linux(Red …

python linux mod-wsgi amazon-ec2

37
推荐指数
3
解决办法
9万
查看次数

ImportError:在apache上安装django mod_wsgi config时没有名为django.core.handlers.wsgi的模块

我试图安装django来使用apache和mod_wsgi但是得到这个错误:

ImportError: No module named django.core.handlers.wsgi,
Run Code Online (Sandbox Code Playgroud)

我读到可能是用户错误...

在控制台(ssh)上,使用root访问权限,访问django.core.handlers.wsgi时没有任何问题,但是当apache要求访问它时,它不能

我的django.wsgi:

import os
import sys

sys.path.append('my/rep/parents/of/my/project')
sys.path.append('/usr/lib/python2.4/site-packages/django')
os.environ['DJANGO_SETTINGS_MODULE'] = 'montest.settings'
os.environ['PYTHON_EGG_CACHE'] = '/tmp'


import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Run Code Online (Sandbox Code Playgroud)

我的vhost.conf:

Alias /media/ my/rep/parents/of/my/projet/montest/media/

<Directory my/rep/parents/of/my/projet/montest/media>
    Order deny,allow
    Allow from all
</Directory>

WSGIScriptAlias /montest my/rep/parents/of/my/projet/django.wsgi

<Directory my/rep/parents/of/my/projet>
    Order deny,allow
    Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

编辑:

好我的ldd mod_wsgi.so的结果

linux-gate.so.1 => (0x0013c000) 
libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0x00663000) 
libpthread.so.0 => /lib/libpthread.so.0 (0x00bff000) 
libdl.so.2 => /lib/libdl.so.2 (0x0023b000) 
libutil.so.1 => /lib/libutil.so.1 (0x00420000) 
libm.so.6 => /lib/libm.so.6 (0x00110000) 
libc.so.6 => /lib/libc.so.6 (0x00240000) /lib/ld-linux.so.2 …
Run Code Online (Sandbox Code Playgroud)

apache django configuration install mod-wsgi

33
推荐指数
2
解决办法
4万
查看次数

无效的命令'WSGIScriptAlias',可能拼写错误或由未包含在服务器配置中的模块定义'configtest'失败

我在配置CKAN DataPusher时遇到了以下错误.

无效的命令'WSGIScriptAlias',可能由服务器中未包含的模块拼写错误或定义.配置'configtest'失败.

我怎样才能解决这个问题?

apache ubuntu mod-wsgi wsgi ckan

32
推荐指数
3
解决办法
3万
查看次数