Django を使用してクライアント用のサイトを構築しています。共有ホスティングでホストされており、mod_wsgi は使用できません。昔はfcgiで動いていたのですが、戻ってきたら壊れていました。
fcgi スクリプトを単純な hello world スクリプトに置き換えました。
#!/usr/bin/python
def myapp(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/plain')])
return ['Hello World!\n']
try:
from flup.server.fcgi import WSGIServer
WSGIServer(myapp).run()
except:
import sys, traceback
traceback.print_exc(file=open("errlog.txt","a"))
ローカル サーバーでテストして動作していますが、ホストされているサーバーでは次のエラーが発生します。
<title>FCGI Error</title>
A timeout occured while waiting for the script output (in: /usr/www/users/mymemb/).
エラーログを見ると、次のように表示されます。
[Wed Jan 6 16:59:37 2010] [warn] FastCGI: (dynamic) server "/usr/www/users/mymemb/mymembers.fcgi" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 10 seconds
[Wed Jan 6 16:59:38 2010] [warn] FastCGI: (dynamic) server "/usr/www/users/mymemb/mymembers.fcgi" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 10 seconds
[Wed Jan 6 16:59:38 2010] [warn] FastCGI: (dynamic) server "/usr/www/users/mymemb/mymembers.fcgi" (user mymemb, gid 100) restarted (pid 1057)
[Wed Jan 6 16:59:38 2010] [warn] FastCGI: (dynamic) server "/usr/www/users/mymemb/mymembers.fcgi" (pid 1057) terminated by calling exit with status '118'
[Wed Jan 6 16:59:38 2010] [warn] FastCGI: (dynamic) server "/usr/www/users/mymemb/mymembers.fcgi" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 10 seconds
[Wed Jan 6 16:59:38 2010] [warn] FastCGI: (dynamic) server "/usr/www/users/mymemb/mymembers.fcgi" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 10 seconds
[Wed Jan 6 16:59:38 2010] [warn] FastCGI: (dynamic) server "/usr/www/users/mymemb/mymembers.fcgi" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 10 seconds
etc ...
サーバーに SSH で接続すると、スクリプトを正常に実行でき、次の出力が得られます。
mymemb@www81:~/public_html$ ./mymembers.fcgi
WSGIServer: missing FastCGI param REQUEST_METHOD required by WSGI!
WSGIServer: missing FastCGI param SERVER_NAME required by WSGI!
WSGIServer: missing FastCGI param SERVER_PORT required by WSGI!
WSGIServer: missing FastCGI param SERVER_PROTOCOL required by WSGI!
Status: 200 OK
Content-Type: text/plain
Content-Length: 13
Hello World!
これを修正するにはどうすればよいですか?
追加情報:
スクリプトがまったく実行されていないようです。スクリプトの先頭に import x を追加して ssh から実行すると、x.pyc が作成されることがわかります。x.pyc を rm してサイトにアクセスすると、x.pyc が作成されません。
また、エラーがから変更されたことにも気付きました
terminated by calling exit with status '118'
に
terminated by calling exit with status '116'
これらの終了ステータスのリファレンスを見つけることができれば幸いです。