AWSの課金に耐えかねた方々への、Heroku PHPによる無料データベース利用方法
今回のあらすじ
やはり気軽にデータベースを利用したwebアプリを作れるHerokuは有能。
基本操作
ログイン/ログアウト
$ heroku login
$ heroku logout
アプリ作成
$ heroku create AppName
ブラウザでアプリ立ち上げる
$ heroku open
デプロイしているファイルを確認
$ heroku run bash
データベースを使えるようにする
DBアドオン"ClearDB"を追加する
$ heroku addons:add cleardb:ignite -app AppName
-app は -a で代用可。
アプリディレクトリ内では -app 不要。
CLEARDB_DATABASE_URLを調べる
$ heroku config -app AppName | grep CLEARDB_DATABASE_URL
mysql://~が出てくるのでメモる
下記のような形式になっていて、DB設定時に必要なパラメータが載っている。
mysql://username:password@us-cdbr-east-XX.cleardb.com/heroku_00000000000?reconnect=true
- ユーザー名:username
- パスワード:password
- ホスト:us-cdbr-east-XX.cleardb.com
- データベース名:heroku_00000000000
CLEARDB_DATABASE_URLをDATABASE_URLに代入
メモったmysql://~を代入する
$ heroku config:add DATABASE_URL='mysql://~' -a AppName
PHPを使えるようにするための準備
コンポーザーを作っていればPHPと認識してくれる。
$ echo '{}' > composer.json
アプリ作成時にビルドパックを入れてもよい。
$ heroku create AppName -s cedar -b git://github.com/iphoting/heroku-buildpack-php-tyler.git
ビルドパック一覧
$ heroku help buildpacks
ビルドパック削除
$ heroku buildpacks:remove git://github.com/iphoting/heroku-buildpack-php-tyler.git
git設定
初期コミット・プッシュ
$ git init $ git add . $ git commit -m 'initial commit' $ git push heroku master
Heroku上のGitリポジトリ
$ heroku git:remote -a AppName
登録されたリポジトリ確認
$ git remote -v
その他
ステータス確認
$ heroku ps --app AppName
ログ確認
$ heroku logs -t --app AppName
MySQLエンコード変更
例えばutf8mb4に変える場合
$ heroku config:set DATABASE_URL="mysql2://<username>:<password>@<host>/<database>?reconnect=true&encoding=utf8mb4"
タイムゾーン・言語設定
$ heroku config:add TZ=Asia/Tokyo $ heroku config:add LANG=ja_JP.UTF-8 $ heroku restart