daemonfreaks.com

生きていた mod_python

posted by jun-g at Mon, 21 Oct 2013 00:26 JST

開発終了したはずの mod_python プロジェクトが復活してました。素晴らしい!

Python2.7、Apache2.4に正式に対応。あと、WSGI Handlerってのが増えてるみたいです。

未だにmod_pythonで動いてる弊社フレームワークは延命できそうで一安心。次の心配はPython2系の終わりかな?

nginx + uWSGI

posted by jun-g at Sat, 19 Oct 2013 11:55 JST

先日作ったアプリ は Apache + mod_wsgi で動かしていたのですが、前から興味があった nginx + uWSGI で動かすようにしてみました、というメモ。

インストール

OS は FreeBSD なので ports からインストール。

System Message: WARNING/2 (<string>, line 12)

Cannot analyze code. Pygments package not found.

.. code:: console

    # cd /usr/ports/www/nginx && make BATCH=yes install clean
    # cd /usr/ports/www/uwsgi && make BATCH=yes install clean


uWSGIの設定/起動

/etc/rc.conf に以下の記述を追加。

System Message: WARNING/2 (<string>, line 23)

Cannot analyze code. Pygments package not found.

.. code:: basemake

    uwsgi_enable="YES"
    uwsgi_profiles="ebook"
    uwsgi_ebook_enable="YES"
    uwsgi_ebook_flags="--wsgi-file /usr/local/www/ebook/ebook.wsgi"

以下のコマンドで起動。

System Message: WARNING/2 (<string>, line 32)

Cannot analyze code. Pygments package not found.

.. code:: console

    # /sbin/service uwsgi start


nginxの設定/起動

/usr/local/etc/nginx/nginx.conf の / の設定の下あたりに以下の設定を追加。

System Message: WARNING/2 (<string>, line 42)

Cannot analyze code. Pygments package not found.

.. code:: nginx

    rewrite ^/ebook$ /ebook/ permanent;
    location /ebook {
        include uwsgi_params;
        uwsgi_pass unix:/tmp/uwsgi-ebook.sock;
        fastcgi_split_path_info ^(/ebook)(.*)$;
        uwsgi_param PATH_INFO $fastcgi_path_info;
    }

1行目は末尾に / 無しでアクセスされた場合に / 付き URL にリダイレクトする設定。

あと、 mod_wsgi や wsgiref.simple_server で動作させた場合と PATH_INFO の内容が異なっていたので、 fastcgi_split_path_info を使って他と同じ PATH_INFO が取れるようにする設定が後半2行。

後は /etc/rc.conf に以下の記述を追加。

System Message: WARNING/2 (<string>, line 58)

Cannot analyze code. Pygments package not found.

.. code:: basemake

    nginx_enable="YES"

してからの起動。

System Message: WARNING/2 (<string>, line 64)

Cannot analyze code. Pygments package not found.

.. code:: console

    # /sbin/service nginx start


WSGI サーバーは他にも沢山あるので色々試してみようと思います。

PyBlosxom on mod_wsgi

posted by jun-g at Thu, 22 Mar 2007 03:36 JST

mod_wsgiのリリース間近でなんとなく盛り上がっているふうなので、僕も試してみた。

やっぱり動かすならPyBlosxomだよねぇ(Wikiにも載ってないし)という事で、Apache2.2 + PyBlosxom(svn trunk版)で動かす事に。

インストールはaodag隊長んとこに書いてあるとおり、

./configure && make && make install

で完了。当然事前にpythonとapacheがインストールされている必要あり。後はディレクトリ作ってPyBloxsomのソース一式を突っ込んでから、Apacheの設定ファイルに以下を追加した。

LoadModule wsgi_module libexec/apache22/mod_wsgi.so
(略)
WSGIScriptAlias /pyblosxom /usr/local/www/apache22/wsgi/wsgi_app.py
<Directory "/usr/local/www/apache22/wsgi">
(略)

で、あっさり動いた。素晴らしい。っていうか元々WSGI対応の作りになっているので当然そのままで動くんやけど。

Pyblosxom on Mod_Wsgi
Pyblosxom on Mod_Wsgi posted by (C)jun-g

mod_wsgiで動かすのは簡単やったけど、trunk版のPyBlosxomに新しい設定項目(locale)が追加になってて、そこに少しハマったという…。