mod_wsgi 4.7.1 install とdjango環境設定
前回の続きで、Apacheとpythonの橋渡しをしてくれるmod_wsgiのinstallです。これもソースコードからinstallします。
うまく、wgetで取得できなかったので、Webブラウザ経由でここから取得しました。
- ソースコード展開
$ cd /usr/local/src
$ tar xzvf mod_wsgi-4.7.1.tar.gz
$ cd mod_wsgi-4.7.1
このディレクトリにmod_wsgi-4.7.1関連のソースコードが展開されます。 - build/install
$ ./configure CFLAGS=-fPIC --with-python=/usr/local/bin/python3
$ make
$ sudo make install
ここからapacheとmod_wsgiを関連付けるの設定になります。
- httpd.conf
/usr/local/src/apache2/conf/httpd.confに下記を追記します。
LoadModuleが記載されている最後に下記を追記します。
LoadModule wsgi_module modules/mod_wsgi.so
最後にwsgi module関連を設定するため外部ファイルへincludeを追記します。<IfModule wsgi_module>
Include conf/extra/wsgi.conf
</IfModule>
2カ所追記してhttpd.confを保存します。 - extra/wsgi.conf
/usr/local/src/apache2/conf/extra/wsgi.confを新規作成します。
djangoでの環境を下記とします。
アプリのディレクトリを/hoge/hoge/application
wsgi.pyのあるディレクトリを/hoge/hoge/application/application/wsgi.py
WSGIScriptAlias / /hoge/hoge/application/application/wsgi.py
WSGIPythonPath /hoge/hoge/application
<Directory /hoge/hoge/application/application/>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Alias /static/ /hoge/hoge/application/static/
<Directory /hoge/hoge/application/static>
Require all granted
</Directory> - apacheを再起動
$ sudo /usr/local/apache2/bin/apachectl stop
$ sudo /usr/local/apache2/bin/apachectl start
最後に、設定してみたけど動かない場合は、下記を確認するといいと思います。
- apacheの設定は記載ミスがあったりするので、http -tでチェックしてくれます。
- apahceのログファイルは、/usr/local/apache2/logsにerror.logに出力されています。
- python + djangoでの問題もあるかもしれません。そんなときは、下記のコマンドで単独で起動してみましょう。
$ python manage.py runserver
これでエラーが出力される場合は、python + djangoの問題の可能性が高いです。pipでのinstallが異なっている可能性があります。確認してみてください。 - 最後にエラー出力でわからない場合は、エラーメッセージをgoogle検索してみるといいでしょう。何かしらのヒントになるかもしれません。
下記サイトを参考にしました。ありがとうございます。