OpenShift でLineBotを作る。(PHP)
OpenShiftで、Lineボットを作った。
つかったのは、TinySDKの方のEchoBotサンプル。
通常版のSDKのEchoBotのサンプルはSlimを使っていて、
OpenShift上でポートのListenがうまく行かなかったので断念。
まずは、サーバーソフトのnginxとは、最近メジャーなwebサーバーで、Apacheより多くのリクエストをさばくことができるらしい。ただ、Apacheよりも元の機能は少ないらしい。PHPについていうと、別のプロセスで実行されているものをソケットで呼び出すという形で呼び出すことになるそうだ。
このカートリッジからnginxをインストール。
LineBotSDKではPHP5.6以上が必要らしいので、 同じ人のPHPカートリッジを追加する。あ、でもTinySDKなら普通のPHPカートリッジで良いかも。
そのあと、上記のLineBotSDKに載っているEchoBotのサンプルを展開する、とオウム返ししてくれる。
ちょっと勉強になったので、もろもろリンク集を載せておく。
以下は、通常版のSDKに一緒に載っているEchoBotを構築する際の試行錯誤のメモ。構成としては、nginx+PHP+Slimフレームワークで、きれいな気がする。
OpenShiftでデプロイしたファイルはこんな感じで展開される。ディレクトリをたぐって、composerを実行して、依存性を解決する?
いや、多分↑はやり方を間違えている。OpenShiftはComposerを利用する場合にMarkerと言われるファイルを作成すると利用出来るようになるらしい。ただ、まだうまく行っていない、、、。
ComposerはOpenShiftで使えるはずだが、うまく構成出来ていないとログに、autoload.phpが読み込めないというエラーが出る。
Slimフレームワークについての説明はこちらのサイトが詳しい。
OpenShift上でnginxサーバーでPHPのSlimで動かすようにしたいが、設定が終わったと思って動かしたら、ゲートウェイエラーが返ってきた。
OpenShiftカートリッジで、上手くエントリポイントの設定が出来ていない。サンプルでは最後にこんなコマンドを実行して、待ち受けを開始する。
php -S 0.0.0.0:8080 -t public
が、OpenShiftでは権限エラーとなるので、別の方法で開始する必要がある。