web2pyをOpenShift上にデプロイするためのコツ。OpenShiftはRedhatが提供するPaaSで、gearと呼ばれる仮想環境が3つまでロハで使えるという男前なサービス。cartridgeというサーバーや言語、RDBMSを自動で実装することができてお手軽である。
2016-02-01 05:20:21web2pyはPython2系ベースのWebアプリケーションフレームワークで、一時の勢いはないもののいまだに情熱的に開発、メンテされていてる。ソースコードをダウンロードすれば他になにも用意せずに開発にとりかかれる手軽さと、極めて合理的に作られているところが魅力。
2016-02-01 05:23:14Djangoよりもシンプルで、Flaskよりも高機能でちゃんとメンテされている。はじめからGAEで使えるように設計されている点も先見性がある。ただGAEはDBとSSLに制約があるため、商用サービスを念頭に置くならOpenShift上で使うのがベストプラクティスだと思う。
2016-02-01 05:27:47まずopenshift.comで無料アカウントを作る。するとrhcというrubyで作られたCUIベースのツールを入れるようにうながされるので言われるがままにすすめる。コンソールのSSL設定やら作ったアプリのgit cloneを落としてくれたりとなかなか便利。
2016-02-01 05:34:21web2pyはOpenShiftで動くようにディレクトリ構造を変えたものを作っている人がすでにいるので、これを使う。 github.com/prelegalwonder… 基本、コマンドをコピペすればOKだが、cartridgeはpython-2.6ではなくpython-2.7を指定。
2016-02-01 05:35:45ローカルに落としたら、OpenShiftにpushする前にweb2pyを最新のものに換装する。 github.com/prelegalwonder… add、commitしてからpushする。OpenShiftで自分のURLを開けば、もうweb2pyのwelcomeページができている。
2016-02-01 05:40:37ローカルの開発だが、まずディレクトリ構造が変わっているので libs/gluon にPYTHONPASSを通しておく必要がある。そうするとgitフォルダ wsgi/web2py にあるweb2py.pyからサーバーを起動できる。
2016-02-01 05:45:35ローカルサーバーが起動できるといくつかファイルが作られるが、そのうちparameters_8000.pyはコピーしてparameters_80.pyにリネームしたものを用意する。logging.confはリモート上でエラーになるのでgitignoreにしておく。
2016-02-01 05:48:31add、commitして再度push。そうするとOpenShift上のサイトでもローカルで指定したのと同じパスワードでadminにログインができる。web2pyはSQLiteを標準で使っているが、OpenShiftで好みのDBMSカートリッジをインストールして使うといいだろう。
2016-02-01 05:53:54開発環境はPyCharmを激しくすすめる。ライブラリが扱いやすく、サーバーを走らせたりシンタックスチェックも鮮やかにできる。学生や教員で教育機関のメールアドレスがあればプロフェッショナルエディションがロハである。リモートのadminはDBの操作以外は触れないほうがいい。
2016-02-01 06:01:14Bottle、Flask、DjangoのPaaSは意外にMicrosoft Azurが良かったりする。 tryappservice.azure.com 自動設定あり。ただで使える。
2016-02-01 16:24:10