问题标签 [mod-wsgi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
491 浏览

python - Apache + mod_wsgi 下两个 Trac 实例的奇怪行为

我正在尝试配置两个 Trac 实例,以便通过浏览器访问它们,每个实例都有不同的 url:

第一次访问它们时,Apache 响应很好,我使用 /trac1 获得第一个 Trac,然后在 /trac2 中获得第二个 Trac。但是当我再次访问 /trac1 时,它不断给我第二个 Trac (/trac2) 的内容。如果我触摸第一个的 .wsgi 配置文件(比如 trac1.wsgi),然后使用浏览器再次请求 /trac1,我会再次获得预期的内容。

相反的情况是相同的:访问/trac2,然后是/trac1,然后/trac2 不断给出/trac1 的内容,直到我触摸trac2.wsgi...

所以看起来 Python、mod_wsgi 和/或 Apache 正在缓存结果或其他东西。我不是系统管理员,无法进一步解决这个问题。

Apache 的 .wsgi 文件和 http.conf:

trac1.wsgi

trac2.wsgi

http.conf

如果有人建议替代配置或其他配置,也将受到欢迎。谢谢!

赫克托

0 投票
2 回答
3994 浏览

python - 带有 --enable-shared 的 Python 3.1.1:不会构建任何扩展

摘要:在 RHEL 5.3 64 位上构建 Python 3.1--enable-shared无法编译所有扩展。建立“正常”工作正常,没有任何问题。

请注意,这个问题似乎模糊了编程和系统管理之间的界限。但是,我相信因为它必须直接处理获得语言支持,并且与支持编程过程有很大关系,所以我会在这里交叉发布。也在:https ://serverfault.com/questions/73196/python-3-1-1-with-enable-shared-will-not-build-any-extensions 。谢谢!

问题:

在 RHEL 5.3 64 位上构建 Python 3.1--enable-shared无法编译所有扩展。建立“正常”工作正常,没有任何问题。

我可以很好地构建 python 3.1,但是当构建为共享库时,它会发出许多警告(见下文),并拒绝构建任何c基于模块的模块。尽管失败了,我仍然可以针对它构建 mod_wsgi 3.0c5,并在 apache 下运行它。不用说,Python的功能大大减少了……

有趣的是,Python 3.2a0(来自 svn)使用 --enable-shared 可以很好地编译,而 mod_wsgi 可以很好地针对它进行编译。但是当启动 apache 时,我得到:

Cannot load /etc/httpd/modules/mod_wsgi.so into server: /etc/httpd/modules/mod_wsgi.so: undefined symbol: PyCObject_FromVoidPtr

这是一个长期项目,所以如果需要,我可以使用 alpha 质量软件。以下是有关该问题的更多详细信息。

主持人:

  • 戴尔 PowerEdge
  • 英特尔氙气
  • RHEL 5.3 64 位
  • 没什么特别的”

建造:

  • Python 3.1.1 源代码分发
  • ./configure
  • 不能正常工作./configure --enable-shared

export CFLAGS="-fPIC"已经完成)

输出


gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I./Include -fPIC -DPy_BUILD_CORE -c ./Modules/_weakref.c -o Modules/_weakref.o


building 'bz2' extension gcc -pthread -fPIC -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -I/usr/local/include -IInclude -I/home/build/RPMBUILD/BUILD/Python-3.1.1 -c /home/build/RPMBUILD/BUILD/Python-3.1.1/Modules/bz2module.c -o build/temp.linux-x86_64-3.1/home/build/RPMBUILD/BUILD/Python-3.1.1/Modules/bz2module.o gcc -pthread -shared -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes build/temp.linux-x86_64-3.1/home/build/RPMBUILD/BUILD/Python-3.1.1/Modules/bz2module.o -L/usr/local/lib -L. -lbz2 -lpython3.1 -o build/lib.linux-x86_64-3.1/bz2.so /usr/bin/ld: /usr/local/lib/libpython3.1.a(abstract.o): relocation R_X86_64_32 against 'a local symbol' can not be used when making a shared object; recompile with -fPIC


0 投票
2 回答
53897 浏览

python - 多个带有 apache 和 mod_wsgi 的 django 站点

我想在使用 Debian 5 的同一服务器下托管多个站点,假设我有和site1,并假设我的 ip 是:site2site3155.55.55.1

这是我的 apache 默认值:

这是我的 wsgi 配置site1,位于/opt/django/site1/apache/django.wsgi

如何添加site2site3,它们是基于 Django 的站点,并且将像 一样提供服务site1

0 投票
1 回答
1043 浏览

django - 响应 gzip 压缩请求时 Apache 滞后

对于我正在开发的应用程序,用户提交带有多部分表单数据(内容类型:multipart/form-data)的 gzip 压缩 HTTP POST 请求(内容编码:GZIP)。我使用 mod_deflate 作为输入过滤器进行解压缩,并通过 mod_wsgi 在 Django 中处理 Web 请求。

一般来说,一切都很好。但是对于某些请求(确定性),从请求到响应几乎有一分钟的延迟。调查显示 django 中的处理立即完成,但来自服务器的响应停止。如果请求不是 GZIPed,则一切正常。

请注意,为了处理 mod_wsgi 中的故障,我将 content-length 设置为未压缩的消息大小。

有没有人遇到过这个问题?有没有办法在处理响应时轻松调试 apache?

0 投票
1 回答
830 浏览

apache - mod_wsgi,wsgi 守护进程在_both_ http 和 https 后面可见

我用 SSL 和 mod_wsgi 配置了 apache vhost,它工作正常:

< 虚拟主机 127.0.0.1:443 >

< 位置“/” >

</位置>

</虚拟主机>

但是,我需要允许在没有 ssl 的情况下通过 http 连接到特定的 url。所以基本上我希望 _the_same_ WSGI 守护程序在两个虚拟主机上可见:一个带有 ssl,一个没有。我希望这是同一个守护进程,因为我在内存中使用了一些公共变量。一种解决方法是可能的(例如,将它们存储在数据库中)但很费力。

<虚拟主机 127.0.0.1:80>

</虚拟主机>

我如何配置 wsgi/apache 来做到这一点?可能吗?

0 投票
2 回答
416 浏览

php - 混合 Python Web 平台 PHP,例如 - Mediawiki、Wordpress 等

是否有人开发与 Mediawiki 集成的应用程序 - 使用 Django 或使用 mod_wsgi 的其他 Python Web 开发平台?

很想知道在这个方向上做了什么,也许有一些代码可以重用。(我已经开始在 python 中创建与 MW 数据库一起使用的 wiki 扩展,其输出是通过 Apache 的 include 虚拟指令注入的。它工作正常,但到目前为止有点慢 - 也许我可以优化它)

基本上我想用python准备显示的wiki页面的某些部分。

有没有人在 python 模板中复制了常见的 MW 皮肤?

编辑:发现这个很好的视频展示了 PyCon 网站是如何做到这一点的(虽然不是 MW)——使用自定义模板加载器

http://showmedo.com/videos/video?name=pythonNapleonePyConTech2&fromSeriesID=54

谢谢。

0 投票
2 回答
577 浏览

mod-wsgi - 检测 web.py 中过早关闭的连接

Web.py 中有没有办法在请求处理时检测和处理用户关闭的连接?

我尝试设置 unloadhook 处理程序,但在这种情况下它不会被调用。它仅在请求成功完成后调用:

我在浏览器中打开应用程序,当它在 while 循环中开始旋转时,我中断了请求,但没有抛出异常。

0 投票
4 回答
9650 浏览

python - 如何禁用 Django / mod_WSGI 页面缓存

我通过 mod_wsgi 在 Apache 中运行 Django。我相信 Django 正在服务器端缓存我的页面,这导致某些功能无法正常工作。

我有一个倒计时计时器,它通过获取当前服务器时间、确定剩余倒计时时间并将该数字输出到 HTML 模板来工作。然后一个 javascript 倒计时计时器接管并为用户运行倒计时。

当用户刷新页面或使用倒数计时器导航到不同的页面时,就会出现问题。计时器似乎偶尔跳到不同的时间,通常在每次刷新时一遍又一遍地回到同一时间。

使用 HTTPFox,该页面没有从我的浏览器缓存中加载,因此看起来 Django 或 Apache 正在缓存该页面。有没有办法禁用这个功能?我不会有足够的流量来担心缓存脚本输出。或者我对为什么会发生这种情况完全错误?

[编辑] 从下面的帖子来看,似乎 Django 中禁用了缓存,这意味着它必须在其他地方发生,也许在 Apache 中?

[编辑]我对正在发生的事情有更全面的描述:对于向服务器发出的前 7 个(左右)请求,页面由脚本呈现并返回,尽管这 7 个页面中的每一个似乎都被缓存了稍后出现。在第 8 次请求时,服务器提供第一页。在第 9 次请求时,它会提供第二页,以此类推。这一直持续到我重新启动 apache 时,该过程重新开始。

[编辑] 我已将 mod_wsgi 配置为一次只运行一个进程,这会导致计时器在每种情况下都重置为相同的值。有趣的是,我的页面上有另一个组件在每个请求上显示一个随机图像,使用 order('?'),并且每次都会刷新不同的图像,这表明缓存是在 Django 而不是在 Apache 中发生的。

[编辑] 根据之前的编辑,我回去查看了相关的views.py文件,发现倒计时开始变量是在模块中全局设置的,在视图函数之外。在视图函数中移动该设置解决了这个问题。所以它毕竟不是缓存问题。感谢大家对此的帮助。

0 投票
4 回答
2773 浏览

django - Django + WSGI:令人耳目一新的问题?

我正在开发一个 Django 站点。我正在实时服务器上进行所有更改,只是因为这样更容易。问题是,它似乎时不时地喜欢缓存我正在处理的 *.py 文件之一。有时,如果我经常刷新,它会在旧版本的页面和新版本之间来回切换。

我的设置或多或少类似于 Django 教程中描述的内容:http: //docs.djangoproject.com/en/dev/howto/deployment/modwsgi/#howto-deployment-modwsgi

它这样做是因为它启动了 WSGI 处理程序的多个实例,并且根据 http 请求发送到的处理程序,我可能会收到不同版本的页面。重新启动apache似乎可以解决问题,但这很烦人。

我真的不太了解 WSGI 或“MiddleWare”或任何请求处理的东西。我来自 PHP 背景,一切正常 :)

无论如何,解决这个问题的好方法是什么?运行 WSGI 处理程序是否会以“守护程序模式”缓解问题?如果是这样,我如何让它在守护程序模式下运行?

0 投票
1 回答
3669 浏览

python - Mac OS X Snow Leopard 上的 MOD_WSGI 困难

我今天整天都在尝试让 MOD_WSGI 在我的 Mac OS X Snow Leopard 上通过 XAMPP 在 Apache 上工作,但没有任何成功。我已按照所有说明进行操作,在互联网上搜索解决方案等,但到目前为止还没有运气。以下是我的确切步骤和详细信息。当我运行 localhost 时,我得到的只是一个白屏。wsgi_module modules/mod_wsgi.so当我从 httpd.conf中删除“LoadModule ”时,localhost 会按预期运行。

  1. 下载并安装 Xcode。
  2. XAMPP 已经安装并正在运行。
  3. 我不需要安装 Python,因为 OS X 已经有 64 位模式的 Python 2.6。
  4. 下载并解压 mod_wsgi-2.6.tar.gz 到桌面。
  5. 终端“./configure --with-apxs=/Applications/XAMPP/xamppfiles/bin/apxs --with-python=/System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6”(否错误)
  6. 终端“make”(消息“make:Nothing to be done for `all'.”)
  7. 终端“sudo make install”(没有错误)
  8. 添加到 XAMPP 的 httpd.conf 文件:

LoadModule wsgi_module modules/mod_wsgi.so
AddType text/html .py
WSGIScriptAlias /app-sample "/Applications/xampp/xamppfiles/htdocs/app-sample/main.py"

  1. 通过 XAMPP 重启 Apache