最終更新:
imagawa_yakata 2011年03月24日(木) 11:29:29履歴
今回、runserver, Apache-mod_wsgiでdjangoを動かす際に
このときにいくつかはまった事柄があったのでメモしておく。
- runserver -- 7001
- mod_wsgi --7011
このときにいくつかはまった事柄があったのでメモしておく。
7001, 7011をファイアーウォールが開放していないとどうやっても外部からはアクセスできない。
ゲストOSでブラウザを起動し、localhost:7001を見ることができるのに外部から見られない場合に疑った方がいい点。
任意のポートを開放するには
また、既存のポート(http ->80, ssh -> 22 など)の開放もこのタブで設定可能。
ゲストOSでブラウザを起動し、localhost:7001を見ることができるのに外部から見られない場合に疑った方がいい点。
任意のポートを開放するには
System > Administration > Security Level and FirewallのFirewall OptionsタブのOther portsに開放ポートを追加する。
また、既存のポート(http ->80, ssh -> 22 など)の開放もこのタブで設定可能。
これも忘れやすい。
<VirtualHost *:7011>こういうVirtualHost要素を定義していても
Listen 7011このように、Listenディレクティブが定義されていないと無理。
LoadModule wsgi_module modules/mod_wsgi.soこれが入っていないとそもそもApacheがwsgiを有効にしないので話にならない。
WSGIPythonHome /var/www/.virtualenvs/fooPythonインタプリタのホームも定義する必要がある。
上記の設定値はvirtualenvで
/var/www/.virtualenvs/foo/bin/pythonを使っている為このようになる。
(13)Permission denied: mod_wsgi (pid=6901): Unable to connect to WSGI daemon process 'live' on '/etc/httpd/logs/wsgi.6898.0.1.sock' after multiple attempts.このようなエラーが出た場合、
WSGISocketPrefix run/wsgi
WSGISocketPrefix /var/run/wsgiなどと設定せよとのこと。
User, Groupディレクティブがデフォルトではapacheになっているので注意。
wwwユーザーの権限でしか利用できないリソースがある場合は
wwwユーザーの権限でしか利用できないリソースがある場合は
User www Group wwwといったように起動ユーザーを変える必要がある。
ImportError: /var/www/.virtualenvs/lifemile/lib/python2.6/lib-dynload/_functools.so: failed to map segment from shared object: Permission denied
こういったエラーメッセージが出る場合、SELinuxによるHTTPDの制限に引っかかっていると考えられる。
一つの方法としてSELinuxを無効にすれば解決する。
無効にするには
こういったエラーメッセージが出る場合、SELinuxによるHTTPDの制限に引っかかっていると考えられる。
一つの方法としてSELinuxを無効にすれば解決する。
無効にするには
System > Administration > Security Level and FirewallのSELinuxタブでDisabledに変更すればいい。
コメントをかく