web-dev-qa-db-ja.com

Apacheが使用したwsgi_modのバージョンを取得する方法は?

私はubuntu 12.041を使用していて、apt-getを使用してApacheをインストールしています。

私はそれについてググるが、私が使用しているmod_wsgiのバージョンがわからない。私が見つけたのは、apachctlを使用してApacheを再起動できることだけです。「Apache/2.2.2(Unix)mod_wsgi/1.0 Python/2.3 configured」のようなものが得られます。しかし、これは私には起こりませんでした。

私が使用しているバージョンを知る方法はありますか?ありがとう。

22
Chandler.Huang

WSGIアプリケーションで、WSGI環境ディクショナリのmod_wsgi.versionの値を確認します。または、mod_wsgi(コマンドラインPythonではなく)で実行されているWSGIアプリケーションにmod_wsgiモジュールをインポートし、そのモジュールからmod_wsgi.versionを出力します。

10

Apacheを再起動してログを検査する場合:

Sudo apachectl -k restart
tail -n 5 /var/log/Apache2/error.log

...バージョンが表示されます。

[Fri Jun 05 15:13:46.546029 2015] [mpm_prefork:notice] [pid 2245] AH00163:Apache/2.4.7(Ubuntu)PHP/5.5.9-1ubuntu4.9 mod_wsgi/3.4 Python/3.4.0設定済み-通常の操作を再開します

15
P i

私はこれを使います

dpkg -l | grep wsgi

何をしているのかわかりませんが、バージョンですか?

余談ですが、私が持っているバージョンはおそらく正しくありません-

libapache2-mod-wsgi  (on ubuntu 10.04)

not python 3.x準拠です。これが謎であることがわかります-ランダムなWebフォーラムがあります。また、どのバージョンが実際にあるかを実際に調べる方法libapache2のバージョンはbeyond私のケンです。

しかし、ああ、上記のunixスクリプトはバージョンを取得します。その後、あなたは一人で船乗りです。

10
bharal

mod_wsgi.soがあるApacheモジュールディレクトリに移動します。

次のコマンドを実行します。

$ strings mod_wsgi.so | grep -w -A 1 "wsgi_init"
wsgi_init
4.5.7   

-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
5
weirdFactory

副次的な質問は、mod_wsgiで使用されるPythonのバージョンに関するものでした。そのためには、lddmod_wsgi.soモジュールを調べてください。

➜  / cd usr/lib/Apache2/modules 
➜  modules ldd mod_wsgi.so
        linux-vdso.so.1 =>  (0x00007ffcaabf3000)
        libpython2.7.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 (0x00007f4e29c62000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4e29a45000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4e2967b000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f4e29461000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4e2925d000)
        libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f4e2905a000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4e28d51000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f4e2a423000)
➜  modules 

私の場合は、python2.7で明確にコンパイルされています。

1
Samir Sadek

これは非常に古いですが、私が見つけた答えは表示されません。

yum list installed '*mod_wsgi*'

またはもっと良い

yum list '*mod_wsgi*'

あなたがインストールしたものと利用可能な(おそらく)後のバージョンを見るために。

0
itsalways4am