如何获得使用apache的wsgi_mod版本?

Cha*_*ang 22 apache mod-wsgi wsgi

我正在使用ubuntu 12.041并通过apt-get安装了apache.

我不知道我正在使用什么版本的mod_wsgi,虽然我谷歌关于它.我发现你可以使用apachctl重新启动你的apache,你会得到类似"Apache/2.2.2(Unix)mod_wsgi/1.0 Python/2.3配置"的东西.但这并没有发生在我身上.

有什么方法可以知道我使用的是什么版本?谢谢.

P i*_*P i 13

如果重新启动Apache并检查日志:

sudo apachectl -k restart
tail -n 5 /var/log/apache2/error.log
Run Code Online (Sandbox Code Playgroud)

...你应该看到版本:

[星期五05月15日15:13:46.546029 2015] [mpm_prefork:通知] [pid 2245] AH00163:Apache/2.4.7(Ubuntu)PHP/5.5.9-1ubuntu4.9 mod_wsgi/3.4 配置Python/3.4.0 -恢复正常运作

  • 您可以在不重新启动的情况下查看现有日志:`grep mod_wsgi/var/log/apache2/error.log` (3认同)
  • 我相信如果Apache以某种方式配置,那么该行中的信息可能会被部分排除.所以不一定要依赖有关mod_wsgi和Python出现的信息. (2认同)

Gra*_*ton 10

在WSGI应用程序中,查看WSGI environ字典中mod_wsgi.version的值.那个或在mod_wsgi(不是命令行Python)下运行的WSGI应用程序中导入mod_wsgi模块,并从该模块打印出mod_wsgi.version.

  • 一些...代码?还是一个文件夹?或者指向某个使得这个简单的1,2,3过程的东西真的非常有用. (9认同)

bha*_*ral 10

我用这个

dpkg -l | grep wsgi
Run Code Online (Sandbox Code Playgroud)

我不知道它在做什么,但它是一个版本?

作为一个可能不对的旁边,我有的版本 -

libapache2-mod-wsgi  (on ubuntu 10.04)
Run Code Online (Sandbox Code Playgroud)

不是蟒蛇3.X兼容.我怎么知道这是一个谜 - 一些随机的网络论坛.另外,你如何实际计算libapache2版本中的哪个版本超出了我的范围.

但是啊,上面的unix脚本会为你得到版本.水手之后,你就独自一人了.

  • 有关mod_wsgi版本的发行版打包版本的详细信息,我可以运行``apt-cache policy libapache2-mod-wsgi``.Python 3版本的"py3"将作为Ubuntu系统上软件包名称的一部分. (3认同)

小智 5

移至mod_wsgi.so所在的apache modules目录。

运行以下命令。

$ strings mod_wsgi.so | grep -w -A 1 "wsgi_init"
wsgi_init
4.5.7   
Run Code Online (Sandbox Code Playgroud)

请注意,出现之后,可能需要使用-A多于1显示的行wsgi_init。例如,对于mod_wsgi版本2.7.5,您需要-A 2查看版本号:

$ strings mod_wsgi.so | grep -w -A 2 "wsgi_init"
wsgi_init
mod_wsgi/%s
2.7.5
Run Code Online (Sandbox Code Playgroud)