「Mod wsgi」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(en:mod wsgiへの転送ページ)
 
 
(2人の利用者による、間の2版が非表示)
1行目: 1行目:
#redirect[[en:mod_wsgi]]
+
{{DISPLAYTITLE:mod_wsgi}}
  +
[[Category:ウェブサーバー]]
  +
[[en:Apache HTTP Server/mod_wsgi]]
  +
[[fr:mod_wsgi]]
  +
== イントロダクション ==
  +
[https://github.com/GrahamDumpleton/mod_wsgi プロジェクトサイト] より:
  +
:''mod_wsgi の目標は Python WSGI インターフェイスに準拠している全ての Python アプリケーションをホストできる、簡単に使える Apache モジュールを実装することです。高いパフォーマンスが要求されるプロダクションウェブサイトだけでなく、ウェブホスティングサービスで動かしている平均的な個人サイトでの使用にもこのモジュールは適しています。''
  +
  +
mod_wsgi はサーバーの中に [https://www.python.org Python] アプリケーションを埋め込む [[Apache]] モジュールで、[https://www.python.org/dev/peps/pep-0333/ Python PEP 333] で定義されている Python WSGI インターフェイスを使って交信します。WSGI は Python で高品質かつ高性能なウェブアプリケーションを作る方法の一つです。
  +
  +
WSGI には様々なウェブアプリと簡単に対話するための標準的な仕組みがあります。有名な Python アプリケーションやフレームワークの中には簡単にデプロイ・エンベッドできるように wsgi を提供しているものがあります。例えば、Django によるブログやプロダクションの Trac を単一の Pylons アプリケーションに埋め込んで、わざわざ両方のアプリケーションを修正しなくても、認証を処理できるということです。
  +
  +
例:
  +
* [http://www.pylonsproject.org/ Pylons]
  +
* [https://www.djangoproject.com/ Django]
  +
* [http://turbogears.org/ Turbo-gear]
  +
* [http://trac.edgewall.org/ Trac]
  +
* [http://moinmo.in/ Moin-moin]
  +
* [http://www.zope.org/ Zope]
  +
  +
== インストール ==
  +
  +
{{AUR|mod_wsgi}} をインストールしてください。
  +
  +
== Apache の設定 ==
  +
  +
* インストールの中で示されるように、以下の行を Apache の設定ファイルに追加してください:
  +
{{hc|/etc/httpd/conf/httpd.conf|2=
  +
LoadModule wsgi_module modules/mod_wsgi.so
  +
}}
  +
  +
* Apache を[[再起動]]します。
  +
  +
* Apache が正しく動作していることを確認してください。先のコマンドが何も返さなかった場合、Apache の起動は上手くいっています。そうでない場合、以下のコマンドでエラーを確認できます:
  +
# systemctl -l status httpd.service
  +
  +
== モジュールのテスト ==
  +
  +
* Apache の設定ファイルに以下の行を追加してください:
  +
{{hc|/etc/httpd/conf/httpd.conf|2=
  +
WSGIScriptAlias /wsgi_app /srv/http/wsgi_app.py
  +
}}
  +
  +
* テストファイルを作成:
  +
{{hc|/srv/http/wsgi_app.py|2=
  +
#-*- coding: utf-8 -*-
  +
def wsgi_app(environ, start_response):
  +
import sys
  +
output = sys.version.encode('utf8')
  +
status = '200 OK'
  +
headers = [('Content-type', 'text/plain'),
  +
('Content-Length', str(len(output)))]
  +
start_response(status, headers)
  +
yield output
  +
  +
# mod_wsgi need the *application* variable to serve our small app
  +
application = wsgi_app
  +
}}
  +
  +
* Apache を[[再起動]] します。
  +
* 次のアドレスを開いて正しく機能しているかどうか確認できます: http://localhost/wsgi_app
  +
  +
== 参照 ==
  +
*[[LAMP]]
  +
*[https://github.com/GrahamDumpleton/mod_wsgi mod_wsgi プロジェクトサイト]
  +
*[https://modwsgi.readthedocs.io/en/develop/user-guides/quick-configuration-guide.html Quick Configuration Guide]

2020年11月13日 (金) 15:29時点における最新版

イントロダクション

プロジェクトサイト より:

mod_wsgi の目標は Python WSGI インターフェイスに準拠している全ての Python アプリケーションをホストできる、簡単に使える Apache モジュールを実装することです。高いパフォーマンスが要求されるプロダクションウェブサイトだけでなく、ウェブホスティングサービスで動かしている平均的な個人サイトでの使用にもこのモジュールは適しています。

mod_wsgi はサーバーの中に Python アプリケーションを埋め込む Apache モジュールで、Python PEP 333 で定義されている Python WSGI インターフェイスを使って交信します。WSGI は Python で高品質かつ高性能なウェブアプリケーションを作る方法の一つです。

WSGI には様々なウェブアプリと簡単に対話するための標準的な仕組みがあります。有名な Python アプリケーションやフレームワークの中には簡単にデプロイ・エンベッドできるように wsgi を提供しているものがあります。例えば、Django によるブログやプロダクションの Trac を単一の Pylons アプリケーションに埋め込んで、わざわざ両方のアプリケーションを修正しなくても、認証を処理できるということです。

例:

インストール

mod_wsgiAUR をインストールしてください。

Apache の設定

  • インストールの中で示されるように、以下の行を Apache の設定ファイルに追加してください:
/etc/httpd/conf/httpd.conf
LoadModule wsgi_module modules/mod_wsgi.so
  • Apache が正しく動作していることを確認してください。先のコマンドが何も返さなかった場合、Apache の起動は上手くいっています。そうでない場合、以下のコマンドでエラーを確認できます:
# systemctl -l status httpd.service

モジュールのテスト

  • Apache の設定ファイルに以下の行を追加してください:
/etc/httpd/conf/httpd.conf
WSGIScriptAlias /wsgi_app /srv/http/wsgi_app.py
  • テストファイルを作成:
/srv/http/wsgi_app.py
#-*- coding: utf-8 -*-
def wsgi_app(environ, start_response):
    import sys
    output = sys.version.encode('utf8')
    status = '200 OK'
    headers = [('Content-type', 'text/plain'),
               ('Content-Length', str(len(output)))]
    start_response(status, headers)
    yield output

# mod_wsgi need the *application* variable to serve our small app
application = wsgi_app

参照