mod_pythonでApacheのVirtualHostを設定する

2009-10-22
このエントリーをはてなブックマークに追加

意外とハマりました。

<VirtualHost *:80>
    ServerName ホスト名
    DocumentRoot プロジェクトフォルダのパス
    SetHandler mod_python
    <Location />
        PythonPath “[‘プロジェクトフォルダのパスのひとつ上’] + sys.path”
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE プロジェクト名.settings
        PythonDebug On
    </Location>
</VirtualHost>

PythonPathがわかりにくいですよね。「hoge」というプロジェクトで「c:works」の下にあったとしたら、DocumentRootは「c:workshoge」で、PythonPathは「”[‘c:works’] + sys.path”」になります。SetEnv DJANGO_SETTINGS_MODULEは「hoge.settings」ですね。

PythonDebugは、本番環境ではもちろんOffにしてください。Apache起動時にアプリケーションをメモリ上にロードするため、PHPみたいにソース差し替えただけだと修正が反映されません。

/etc/rc.d/init.d/httpd restart

で、Apacheのリスタートが必要です。

「Apacheのリスタートなんてしたらセッション切れちゃうじゃないか」と思っていたのですが、セッションをファイルベースにしたら維持されてくれました。よかったよかった。

mod_python+Django、早いです。軽快です。mod_rails+RubyonRailsとはえらい違いです。mod_wsgiだともっと早いんだろうなぁ。。。

Qmailで587番ポート(submission)でのメール送信

2009-10-09
このエントリーをはてなブックマークに追加

25番ポート(smtp)で送信することができないプロバイダが増えてきて、メールサーバもそれに対応できるように設定してやらないといけないわけです。

/etc/rc.d/init.d/qmailを修正します。

# SMTP
tcpserver -qv -l0 -HR -u `id -u vpopmail` -g `id -g vpopmail` ¥
-x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp ¥
qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1|¥
splogger smtp &

#submission
tcpserver -qv -l0 -HR -u `id -u vpopmail` -g `id -g vpopmail` ¥
-x /home/vpopmail/etc/tcp.smtp.cdb 0 submission ¥
qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1|¥
splogger smtp &

通常は#SMTPだけだと思いますが、ハセテツは併記して587番からの可能なようにしておきました。ちなみに上記例はバーチャルホストに対応した書き方です。

iptablesでポート転送という手段もあったのですが、iptablesでの設定って後から気がつけなくなる可能性がある(設定資料残しておけよっていう話ではありますが)ので、メール関連の設定はQmailにまとめました。

Tags: ,