XreaでPython2.6を動かすのまき

#わかったことメモ
xreaのふつうプランでは少なくとも「AddHandler cgi-script」使わないとだめみたい
(coreserverはmod_fcgiがはいってるらしい:ぎじゅっやさん情報)
web.pyだのDjangoだのは複数スレッド当たり前なんですね。
一方のxreaでは複数スレッドの同時起動を禁止している。
スレッド作れないんですけど的なエラーを出して、スクリプトが動かない。
.htaccessを書く
——————————-
DirectoryIndex index.py index.php index.cgi index.html
AddHandler cgi-script .py #for Xrea
#AddHandler cgi-script-debug .py #debug
#ついでにオプション
Options +ExecCGI +FollowSymLinks
#Rewrite
RewriteEngine on
#ここは環境ごと違う
RewriteBase /hoge/
#うちの場合はindex.pyがBootstrapみたいになってんよ
#いまはてきとうです
RewriteRule ^/(.*)$ ./index.py/$1 [QSA,L]
——————————-
web.pyでアプリを書く:
チュートリアル見ればスクリプトはOK。
ちなみに最新の英語版見るほうがよいぽ。
問題はこっち。
site-packegesの中のwebの中のwsgi.py
return makeserver(WSGIServer)(func, multiplexed=True).run()
これを
return makeserver(WSGIServer)(func, multiplexed=True, maxSpare=0).run()
こうする。
「, maxSpare=0」ここに気づくことができずに莫大な時間の浪費をしてしまった。あほおおおお
参考:
CGI環境でweb.pyを動かす
web.pyをwsgi.pyと読み替えること。バージョン違う。でもやるこた同じだった。
サンプルで書いてくれてるコードを完全に隅々まで見ないと、差異に気づかない(これではまった)。
で、できたurlを叩いてみると、
「Status: 200 OK Hello」
きたこれ。
#うごいたコードはチュートリアルのほぼそのまんまです。なので載せない。
Xrea レンタルサーバで webpy しようよ!
web.py チュートリアル
そのうち役立ちそう。
[Python] web.py 0.23 on xrea.com
PyPI Mirror(ぱいぱいみらー)
落っことしてくるのはここから。
ライブラリいっぱいあるなあ。
おまけ:
CGIWrap Error: Real UID could not be changed!
これよく出るのは、sshで端末開いてたりする数が多いのが原因らしい
どうすんだあたし3つ4つ平気で開くのが日常だというのに。
いちいちディレクトリ移動してあちこち見れってか。
えー。


XreaへのPython2.6Setup手順
–うのみにしてころんでもしらない篇–
python.orgからわけてもらって、python2.6をいれる。
$HOME/bin/pythonてかんじで起動できるように。
Xreaは2.4が入っていて、考えずに起動すると2.4であがってしまう。
スクリプト冒頭、自分の環境に合わせてshebang(#!/weeei/poh/pythonみたいなの)を設定しまそう。
#!/usr/bin/env pythonで自分の入れたほうを見に行くようにはできないものなのかなあ。書き換えるの面倒だよ。
easy_install(setup-tools)は使ってみると、なんかへんだ。
これ自体は入るんだけど、こいつからいろいろ入れようとすると途中で転んでる。
解決は難しそう。使わない方向で。
以降、なんか欲しいときは
・PyPI Mirrorを見に行って
・tar.gzとか落として
・tar zxfv云々してcdして
・python setup.py installする
という方法でいく。tar zxfvとかわざわざ書いているのは、どこかに書いておかないと忘れるからだ。
ちなみにあたくし、zxfvの意味は知らない。
解凍できればそれでいいもん。
ちなみに端末に「pythonは新しくいれたほうだから2.4.3見にいっちゃだめだよ」と教えてあるので、pythonと打ってるけど自分ちの蛇を叩きに行っています。
たしかこのへんはPYTHON_DIRだかをexportでenvに入れてあるんだった気がする。
export PYTHON_DIR=$HOME/bin/python
たぶんこんなかんじ。
なのでpythonと打つだけで2.6が起動する。いい子。
あとから思ったんだけど、pythonをインストールする場所を間違えた気がする。いろんな人のblogみると、どうもお行儀悪いみたい。
しるか。
入れた有象無象
web.py(さっき動いた!)
django(動いてないけどたぶん原因はweb.pyと同じ)
flup(fcgiに使うと聞いたので)
hashlib(なんかのときにmd5がどうのっておこられた)
mako(テンプレートエンジン・趣味)
Genshi(テンプレートエンジン・趣味)
trac(この中にGenshi入ってる気はする)
mySQLdb
sqlalchemy(入れたけどまだ使ってない)
readline(sshからpython打ってみるときに必須)
超絶はまったポイント:
web.pyの改造
hashlibの改造
http://inforno.net/articles/2009/01/25/using-any-version-of-python-on-xrea-servers-part2
119行目の「else:」をコメントアウトするだけでいいぽ


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です