问题标签 [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.
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:
如果有人建议替代配置或其他配置,也将受到欢迎。谢谢!
赫克托
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
python - 多个带有 apache 和 mod_wsgi 的 django 站点
我想在使用 Debian 5 的同一服务器下托管多个站点,假设我有和site1
,并假设我的 ip 是:site2
site3
155.55.55.1
这是我的 apache 默认值:
这是我的 wsgi 配置site1
,位于/opt/django/site1/apache/django.wsgi
:
如何添加site2
和site3
,它们是基于 Django 的站点,并且将像 一样提供服务site1
?
django - 响应 gzip 压缩请求时 Apache 滞后
对于我正在开发的应用程序,用户提交带有多部分表单数据(内容类型:multipart/form-data)的 gzip 压缩 HTTP POST 请求(内容编码:GZIP)。我使用 mod_deflate 作为输入过滤器进行解压缩,并通过 mod_wsgi 在 Django 中处理 Web 请求。
一般来说,一切都很好。但是对于某些请求(确定性),从请求到响应几乎有一分钟的延迟。调查显示 django 中的处理立即完成,但来自服务器的响应停止。如果请求不是 GZIPed,则一切正常。
请注意,为了处理 mod_wsgi 中的故障,我将 content-length 设置为未压缩的消息大小。
有没有人遇到过这个问题?有没有办法在处理响应时轻松调试 apache?
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 来做到这一点?可能吗?
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
谢谢。
mod-wsgi - 检测 web.py 中过早关闭的连接
Web.py 中有没有办法在请求处理时检测和处理用户关闭的连接?
我尝试设置 unloadhook 处理程序,但在这种情况下它不会被调用。它仅在请求成功完成后调用:
我在浏览器中打开应用程序,当它在 while 循环中开始旋转时,我中断了请求,但没有抛出异常。
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文件,发现倒计时开始变量是在模块中全局设置的,在视图函数之外。在视图函数中移动该设置解决了这个问题。所以它毕竟不是缓存问题。感谢大家对此的帮助。
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 处理程序是否会以“守护程序模式”缓解问题?如果是这样,我如何让它在守护程序模式下运行?
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 会按预期运行。
- 下载并安装 Xcode。
- XAMPP 已经安装并正在运行。
- 我不需要安装 Python,因为 OS X 已经有 64 位模式的 Python 2.6。
- 下载并解压 mod_wsgi-2.6.tar.gz 到桌面。
- 终端“./configure --with-apxs=/Applications/XAMPP/xamppfiles/bin/apxs --with-python=/System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6”(否错误)
- 终端“make”(消息“make:Nothing to be done for `all'.”)
- 终端“sudo make install”(没有错误)
- 添加到 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"
- 通过 XAMPP 重启 Apache