Ubuntu 11.10; libapache2-mod-wsgi で Python2.6 の代わりに Python2.7 が必要

Ubuntu 11.10; libapache2-mod-wsgi で Python2.6 の代わりに Python2.7 が必要

Ubuntu 11.10 で Django サーバーを wsgi モードで構成するのに問題があります。問題は次のとおりです。最新の ubuntu 11.10 では、python2.7 がデフォルトになっています。apache2 と libapache2-mod-wsgi をインストールすると、python2.6 で動作することが期待されます。私の構成は以前にテストされ、動作しますが、これらの状況では動作しません。現在、403 Forbidden メッセージが表示されます。どのようなことをお勧めしますか。python2.7 を保持し、python2.7 用に apache wsgi をコンパイルするか、python2.6 をシステムのデフォルトにします (これは良くありません。2.7 の方が私の Django の要件に適しています)。

答え1

仮想環境を利用してみてはいかがでしょうかmkvirtualenvコマンドですか? 仮想環境用に独自のバージョンの Python を選択できます。実際、Ubuntu ではバイナリ パッケージから Python 2.6 および 2.7 をインストールできます。

$ mkvirtualenv name --python=python2.7 --no-site-packages

答え2

Python 2.7 が要件に適している場合は、そのバージョンの Python 用に mod_wsgi をコンパイルすることをお勧めします。

理論的には、libapache2-mod-wsgiPython 2.6 では正常に動作するはずです:

Depends: apache2, apache2.2-common, libc6 (>= 2.4), libpython2.6 (>= 2.6),   
libpython2.7 (>= 2.7), python (>= 2.6), python (<< 2.8)

もう一つの選択肢はuWSGIlibapache2-mod-uwsgi) です。

答え3

Ubuntu 11.10 サーバー上で Python 2.7 を使用して mod_wsgi を設定する方法を調べようとしていたところ、libapache2-mod-wsgi に Python 2.6 と 2.7 の両方のバイナリが付属していることを発見しました。

シンボリックリンクを変更することで、2.6 と 2.7 を選択できます。

root@webserver-01:/etc/apache2/mods-available# ls /usr/lib/apache2/modules/mod_wsgi* -la
lrwxrwxrwx 1 root root     15 2011-06-03 15:01 /usr/lib/apache2/modules/mod_wsgi.so -> mod_wsgi.so-2.7
-rw-r--r-- 1 root root 152064 2011-06-03 15:01 /usr/lib/apache2/modules/mod_wsgi.so-2.6
-rw-r--r-- 1 root root 152064 2011-06-03 15:01 /usr/lib/apache2/modules/mod_wsgi.so-2.7

関連情報