Python:scgi: running Django via scgi

hdknr@deb09:~$ apt-cache search flup
python-flup – Implements Python Web Server Gateway Interface (WSGI)

hdknr@deb09:~$ sudo aptitude install python-flup
パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています… 完了
タスクの記述を読み込んでいます… 完了
以下の新規パッケージがインストールされます:
  python-cheetah{a} python-flup python-webpy{a}
更新: 0 個、新規インストール: 3 個、削除: 0 個、保留: 0 個。
324kB のアーカイブを取得する必要があります。展開後に 1708kB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?] Y

拡張状態情報を書き込んでいます… 完了
取得:1 http://ftp.jp.debian.org lenny/main python-cheetah 2.0.1-2 [224kB]
取得:2 http://ftp.jp.debian.org lenny/main python-flup 1.0-1 [45.8kB]
取得:3 http://ftp.jp.debian.org lenny/main python-webpy 0.230-1 [54.5kB]
324kB を 9s 秒でダウンロードしました (34.0kB/s)
未選択パッケージ python-cheetah を選択しています。
(データベースを読み込んでいます … 現在 60836 個のファイルとディレクトリがインストールされています。)
(…/python-cheetah_2.0.1-2_i386.deb から) python-cheetah を展開しています…
未選択パッケージ python-flup を選択しています。
(…/python-flup_1.0-1_all.deb から) python-flup を展開しています…
未選択パッケージ python-webpy を選択しています。
(…/python-webpy_0.230-1_all.deb から) python-webpy を展開しています…
man-db のトリガを処理しています …
python-cheetah (2.0.1-2) を設定しています …
python-flup (1.0-1) を設定しています …
python-webpy (0.230-1) を設定しています …
python-support のトリガを処理しています …
パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています… 完了
拡張状態情報を書き込んでいます… 完了
タスクの記述を読み込んでいます… 完了

hdknr@deb09:/etc/apache2/mods-available$ sudo aptitude install libapache2-mod-scgi
パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています… 完了
タスクの記述を読み込んでいます… 完了
以下の新規パッケージがインストールされます:
  libapache2-mod-scgi
更新: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
12.9kB のアーカイブを取得する必要があります。展開後に 94.2kB のディスク領域が新たに消費されます。
拡張状態情報を書き込んでいます… 完了
取得:1 http://ftp.jp.debian.org lenny/main libapache2-mod-scgi 1.12-0.2 [12.9kB]
12.9kB を 2s 秒でダウンロードしました (5939B/s)
未選択パッケージ libapache2-mod-scgi を選択しています。
(データベースを読み込んでいます … 現在 60980 個のファイルとディレクトリがインストールされています。)
(…/libapache2-mod-scgi_1.12-0.2_i386.deb から) libapache2-mod-scgi を展開しています…
libapache2-mod-scgi (1.12-0.2) を設定しています …
パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています… 完了
拡張状態情報を書き込んでいます… 完了
タスクの記述を読み込んでいます… 完了

hdknr@deb09:/etc/apache2/mods-available$ ls *cgi*
cgi.load  cgid.conf  cgid.load  scgi.load

hdknr@deb09:/etc/apache2/mods-available$ more scgi.load
LoadModule scgi_module /usr/lib/apache2/modules/mod_scgi.so

hdknr@deb09:/etc/apache2/mods-enabled$ sudo ln -s ../mods-available/scgi.load

hdknr@deb09:~/djangocamp/trunk/apache2/etc$ vi httpd.conf
<VirtualHost *:80>
    ServerAdmin webmaster@debian.hdknr
    ServerName djangocamp.vpc:80

     LogLevel   warn
     ErrorLog   /home/hdknr/djangocamp/trunk/apache2/logs/error.log
     CustomLog  /home/hdknr/djangocamp/trunk/apache2/logs/access.log combined

    SCGIMount / 127.0.0.1:8000

</VirtualHost>

hdknr@deb09:~/djangocamp/trunk/apache2/etc$ sudo ln  -s /home/hdknr/djangocamp/trunk/apache2/etc/httpd.conf /etc/apache2/sites-enabled/djangocamp.conf

hdknr@deb09:~/djangocamp/trunk/apache2/etc$ sudo /etc/init.d/apache2 restart
Restarting web server: apache2 … waiting .

hdknr@deb09:~/djangocamp/trunk/mysite$ python manage.py runserver 0.0.0.0:8000
Validating models…
0 errors found

Django version 1.0.2 final, using settings ‘mysite.settings’
Development server is running at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

[02/Mar/2009 23:04:45] code 400, message Bad request syntax (‘840:CONTENT_LENGTH\x000\x00SCGI\x001\x00SERVER_SOFTWARE\x00Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny2 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_scgi/1.12 mod_wsgi/2.3\x00SERVER_PROTOCOL\x00HTTP/1.1\x00SERVER_NAME\x00djangocamp.vpc\x00SERVER_ADMIN\x00webmaster@debian.hdknr\x00SERVER_ADDR\x00192.168.250.111\x00SERVER_PORT\x0080\x00REMOTE_ADDR\x00192.168.250.2\x00REMOTE_PORT\x0050748\x00REQUEST_METHOD\x00GET\x00REQUEST_URI\x00/polls/\x00QUERY_STRING\x00\x00SCRIPT_NAME\x00\x00PATH_INFO\x00/polls/\x00DOCUMENT_ROOT\x00/htdocs\x00HTTP_HOST\x00djangocamp.vpc\x00HTTP_USER_AGENT\x00Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)\x00HTTP_ACCEPT\x00text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\x00HTTP_ACCEPT_LANGUAGE\x00ja,en-us;q=0.7,en;q=0.3\x00HTTP_ACCEPT_ENCODING\x00gzip,deflate\x00HTTP_ACCEPT_CHARSET\x00Shift_JIS,utf-8;q=0.7,*;q=0.7\x00HTTP_KEEP_ALIVE\x00300\x00HTTP_CONNECTION\x00keep-alive\x00,’)
[02/Mar/2009 23:04:45] "840:CONTENT_LENGTH0SCGI1SERVER_SOFTWAREApache/2.2.9 (Debian) PHP/5.2.6-1+lenny2 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_scgi/1.12 mod_wsgi/2.3SERVER_PROTOCOLHTTP/1.1SERVER_NAMEdjangocamp.vpcSERVER_ADMINwebmaster@debian.hdknrSERVER_ADDR192.168.250.111SERVER_PORT80REMOTE_ADDR192.168.250.2REMOTE_PORT50748REQUEST_METHODGETREQUEST_URI/polls/QUERY_STRINGSCRIPT_NAMEPATH_INFO/polls/DOCUMENT_ROOT/htdocsHTTP_HOSTdjangocamp.vpcHTTP_USER_AGENTMozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)HTTP_ACCEPTtext/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8HTTP_ACCEPT_LANGUAGEja,en-us;q=0.7,en;q=0.3HTTP_ACCEPT_ENCODINGgzip,deflateHTTP_ACCEPT_CHARSETShift_JIS,utf-8;q=0.7,*;q=0.7HTTP_KEEP_ALIVE300HTTP_CONNECTIONkeep-alive," 400 –

WS000036

hdknr@deb09:~/djangocamp/trunk/mysite$ python manage.py runfcgi protocol=scgi host=127.0.0.1 port=8000

hdknr@deb09:~/djangocamp/trunk/mysite$ lsof -i:8000
COMMAND  PID  USER   FD   TYPE DEVICE SIZE NODE NAME
python  3557 hdknr    4u  IPv4  10043       TCP localhost:8000 (LISTEN)
python  3558 hdknr    4u  IPv4  10043       TCP localhost:8000 (LISTEN)
python  3559 hdknr    4u  IPv4  10043       TCP localhost:8000 (LISTEN)
python  3560 hdknr    4u  IPv4  10043       TCP localhost:8000 (LISTEN)
python  3561 hdknr    4u  IPv4  10043       TCP localhost:8000 (LISTEN)
python  3562 hdknr    4u  IPv4  10043       TCP localhost:8000 (LISTEN)

WS000037

と動きました。

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中