nginxとgunicorn の準備してみた。

【環境】さくらVPSでCent OS


nginxとgunicorn それぞれ動かせるようにインストールなどおこないました。

▶nginxインストール
nginxインストールの前に必要なパッケージをインストール


$ sudo yum install zlib-devel

$ cd /usr/local/src/
$ wget http://nginx.org/download/nginx-1.0.4.tar.gz
$ tar zxf nginx-1.0.4.tar.gz
$ cd nginx-1.0.4


$./configure
$ make
$ make install

nginxのbinにpathを通して、起動と停止が出来るようになりました。
起動:$ sudo nginx
停止:$ sudo nginx -s stop


諸々の設定は下記で設定しました。
/usr/local/nginx/conf/nginx.conf

(一部抜粋)


server {
listen 80;

   #サーバーの番号設定
server_name 49.212.84.220;

#charset koi8-r;
#access_log logs/host.access.log main;


#49.212.84.220にアクセスする時にここを通る
location / {

#ドキュメントルート
root /home/megane;
index index.html index.htm;
}

http://49.212.84.220でドキュメントルートの中身が見れるはず・・


▶gunicornインストール
gunicornはpython2.5以上でないと動いてくれないようです。

さくらのVPSのデフォルトはpython2.4なので
python2.6をインストールしました。

python2.4のpathを変更してしまうと、
python2.4使用している諸々が動かなくなってしまうようなので注意が必要。
(yum動かなくなってかなりあせりました。)

ソースコードをダウンロードしてコンパイル
(参考サイト) http://d.hatena.ne.jp/tohae/20081009/1223568809


$ yum install gunicorn
gunicorn にもpathを通す。

起動方法
conf.pyとtest.pyがある階層で以下のコマンド実行。

$ gunicorn -c conf.py test:app


このコマンドでは -c で設定ファイルの読み込み、test.pyを実行しています。

□conf.py


import os

def numCpus():
if not hasattr(os, 'sysconf'):
raise RuntimeError('No sysconf detected.')
return os.sysconf('SC_NPROCESSORS_ONLN')

#任意の場所
bind = '49.212.84.220'
workers = numCpus() * 2 + 1
#workerにmeinheld使用してます。easy_install-2.6 でインストールするだけ
worker_class = 'egg:meinheld#gunicorn_worker'

#任意の場所
pidfile = '/var/run/gunicorn/gunicorn.pid'



■test.py


def app(environ, start_response):
data = "Hello, World!\n"
start_response("200 OK", [
("Content-Type", "text/plain"),
("Content-Length", str(len(data)))
])
return iter([data])


これでへんなエラーが出たけど、その場合は
gunicornで指定されているpyhtonのpathを2.6の方に
変更してあげるとうまくいきました。


http://49.212.84.220:8000
でハローワールドが見えました。


gunicornの停止方法ってどうすれば良いのかわからない・・
今はこれで切ってます。

$sudo pkill gunicorn





設定の方法とか色々あやふやな部分多すぎるので、
色々いじりながら勉強します。


意味わからずに使ってる部分が多すぎて・・!泣ける・・!

Python Developers Festa 2011.10 に参加してきました。

Python Developers Festa 2011.10 に参加してきました。
http://d.hatena.ne.jp/Voluntas/20110828/1314542601


なんと、本当にありがたいことに、あしながおじ様の方々に支援していただき、
東京の勉強会に参加する事が出来ました!

togetterでまとまってましたw
http://togetter.com/li/181689




< 素敵なおじ様の方々 >
@mitszo 様 @soundkitchen 様 @tkroro 様 @whosaysni 様 
@heavenshell 様 @ransui 様 @atsuoishimoto 様 @shimizukawa 様


あしながおじ様のみなさま、厚く御礼申し上げます!

お会いする事が出来ずに直接御礼を伝える事が出来なかった人もいてるので
次回お会いしたら、直接お礼伝えさせてください!



ーーーーーー


初めて200人弱の規模の勉強会に参加して、
ワクワクドキドキでとても新鮮で貴重な体験でした!

会場はあの世界のORACLEでなんかそわそわしました。
さすが世界のORACLE!建物入るのも出るのも入館証が必要でした。



はじめは、初級ハンズオンに参加して、
2人の講師の方のもとでカチャカチャやってたんですが、
初級者ハンズオン用にまとめてくださったpythonのドキュメントが
すごくわかりやすい!
http://__aita__.bitbucket.org/python_hack-a-thon-201110/index.html

__init__とか、__main__とかナニー?
ってなってたんですが、
すごく丁寧に教えてくださって、とてもわかりやすかったです!
for文の仕組みとか、ヘー!そういう事なんだ!っていう驚きばかりでした!

私とあまり変わらない年齢の方が初級の講師をされていて、
すごくかっこよかった!!とても刺激を受けました!
私も数年後にはああいう風にかっこよくなりたい!



プレゼンも大体は、まったく初めて聞く様な内容でポツーンと置いてけぼり感が
すごかったですが、知らない事を知るきっかけとなりました。
このきかっけをもとに、詳しく調べてみようと思います!

特にgit使ってるので、git-dailyとかの話は興味深かったー
http://d.hatena.ne.jp/sotarok/20111015/pyfes_git_daily


機械学習とか、Hadoopとか、モテるお掃除のお話とか、津波のお話とかとか、、
勉強の内容だけじゃなくて、様々なお話聞けて充実した一日でした!


皆さんプレゼン上手で、スゴーウマー


とにかくもう、いろんな意味で、楽しい一日でした。


あしなが制度はこれから取り入れられるという事で
なんだか、私みたいなものが第一号という事でとてもおこがましい気もしますが
きっかけになれて、光栄です!


せっかく支援していただいたからには
いっぱい勉強して、成長して、ゆくゆくは
私もあしながおば様になりたいと思います^0^!




学んだ細かい内容はもっとまとめてから、後で記事にしようとおもいまーす



すごい、発表資料全部まとまってる・・!
http://d.hatena.ne.jp/nakamura001/20111016/1318772085

スウェーデン式アイデアブック

スウェーデン式アイデアブックを読んで


amazonリンク


イデアブックを読ませていただいて気付いた事、
それは「自分の限界以上の事をひたすら求め続けなければいけない」という事でした。

限界以上をひたすら求め続けるという事を、
行動に移す事は本当に難しい事だと思いますが、
自分が限界だと思っていても、決めつけてしまわずにさらに求め続けるということで
新たな道が開く事を教えてくれているのだな、と感じました。



この本には全部で30のポイントが書かれていましたが、

「変化を恐れない」、「突き詰める」
「自分の殻を破る」、「違った事をやってみる」

という事を様々な表現で示してくれています。
言葉のまま受け止めて、実行するのは難しいですが、
例えを出して、問題を出して、きっかけをつくってくれています。



毎日の鍛錬だと思いますが、本当にそれが実行できるようになれば、
新しい自分が発見出来たり、新しい考え方に出会えると思います。




とても短い文章だったのですが、
言葉の一つ一つにすごく説得力があり、心に響く文ばかりでした。




平凡な毎日ではつまらない!と思わせてくれるような希望があふれる本で、
ぜひ周りの人にもオススメしたいと思います。

【git 用語まとめ】

【git 用語まとめ】
git branch ブランチ名 「ブランチの作成」
git checkout ファイル名 「指定したファイルをHEADまで戻す」
git checkout ブランチ名 「ブランチの切り替え」

git tag -a タグ名 ハッシュ 「指定したコミットにタグをつける」

git reset --soft ハッシュ 「ワークディレクトリの内容はそのままで、コミットだけを取り消す」
git reset --hard ハッシュ 「コミットを取り消した上でワークディレクトリの内容も書き換える」

git revert ハッシュ 「コミット所まで戻るが、戻ったというログも残る」

git commit --amend 事前のコミットに置き換える
margeは受け身という事を覚える

メガネ女子(21)のメモブログももうすぐ終わる

メガネ女子(20)のメモブログ

から始まったこのブログも、もうすぐ(22)に
変更せねばなりません。

時が経つのって早いなぁ、、



アウトプットする事も、大切だし
自分の中で情報を整理するという意味でも
とても大切な事だと思うので


これからも
怠けず、ガッツリアウトプットして行きたいと思います。

ひどすぎるネーミングセンス

ひどすぎるネーミングセンス
http://d.hatena.ne.jp/idesaku/20090703/1246593915

そういえば私もこんな事やってた。
全然こんなにひどくないけども!


さすがにこれは暗号でしかない。
ちょっと笑った。


UKTKKNSHINF
答え:受付管理情報


ちゃんと読める英語でさらさらっとかけるようになりたい。

【git 用語まとめ】


git branch ブランチ名 「ブランチの作成」
git checkout ファイル名 「指定したファイルをHEADまで戻す」
git checkout ブランチ名 「ブランチの切り替え」

git tag -a タグ名 ハッシュ 「指定したコミットにタグをつける」

git reset --soft ハッシュ 「ワークディレクトリの内容はそのままで、コミットだけを取り消す」
git reset --hard ハッシュ 「コミットを取り消した上でワークディレクトリの内容も書き換える」

git revert ハッシュ 「コミット所まで戻るが、戻ったというログも残る」

git commit --amend 事前のコミットに置き換える
margeは受け身という事を覚える