BLOGサブスレッドの日常

2022.02.21

yumでインストールしたmod_wsgiをpipで再度インストールしてみた

yoshida

再インストールすることになったきっかけ

Djangoで容量が大きいファイルをアップロードした際にmod_wsgi側でエラーとなりアップロードに失敗する現象がありました。

https://github.com/GrahamDumpleton/mod_wsgi/issues/544

mod_wsgiのバージョンを更新することで容量が大きいファイルをアップロードができるようになります。
mod_wsgiの更新をする際、yumでインストールしていたmod_wsgiをpipからインストールしたバージョンに切り替えました。

やったこと

mod_wsigをビルドするために必要なhttpd-develをインストールする

sudo yum install httpd24-devel

pythonの仮想環境を有効にする

source ./virtualenv/bin/activate

pip からmod_wsgiモジュールをインストール

pip install mod_wsgi

yumでインストールしたmod_wsgiのコンフィグ設定を無効にするため
/etc/httpd/conf.modules.d/10-wsgi.conf 内のLoadModule wsgi_module …の設定をコメントアウトする

<IfModule !wsgi_module>
#LoadModule wsgi_module modules/mod_wsgi.so
</IfModule>

/etc/httpd/conf.d/wsgi.conf に以下の設定を追記する
pythonの仮想環境でmod_wsgiをインストールするためモジュールはvirtualenv配下にインストールされるので注意が必要です

LoadModule wsgi_module
/hoge/virtualenv/lib64/python3.4/site-packages/mod_wsgi/server/mod_wsgi-py34.cpython-34m.so

Apacheのコンフィグテストを実行する

sudo service httpd configtest

コンフィグテストの結果がSyntax OKだったらApacheの再起動

sudo service httpd graceful

Apacheが起動すれば終わり

この記事を書いた人

yoshida