まえがき
昨年春にHerokuでPHPの本格サポートが始まり、もうすぐ一年が経過しようとしています。
出遅れた感がかなりありますが、Slimフレームワークを使ったアプリをHerokuで公開するまでの流れを、簡単にまとめてみました。
こんな人向け
- 何かしらのフレームワークでアプリケーションを作ったことがある
- PHPでフレームワーク使って何かアプリを作ってみたい
- どうせならローカルでないところで動かしたい
- Herokuってよく聞くけど、何それおいしいの?
※なお、Slim自体の解説はあまりしてませんm(__)m
作るもの
よくあるHello World!を表示します。
動作環境
Yosemiteなmacでしか動作確認してないです。
Linuxでもいけるはず。
超忙しい人はこれやればおk
前提条件が整っていれば、2分くらいで幸せになれます。
ゆっくり進む人はこの節はスルーしてください。
前提条件
- gitコマンドがインストールされている
- heroku周りの↓設定が済んでいる
- アカウントがある
- herokuコマンドがインストールされている
- SSH鍵が設定されている
実際にやってみる
↓をターミナルにコピペすればおkです。
# 作業ディレクトリの名前を、適当に設定してください
# ここでは"sample"としてみます
DIR="sample"
# ひな形をclone
git clone git@github.com:tatsuya-yokoyama/slimSample.git ${DIR}
# ディレクトリ移動
cd ${DIR}
# herokuにappを作成
# それと同時にremoteにherokuの追加もしてます
heroku create
# herokuにpush
git push heroku master
# 勝手にブラウザを立ち上げてherokuのappのurlにアクセス
heroku open
# ブラウザを見て幸せになる\(^o^)/
超忙しいわけではない人は、これやればおk
1.準備
gitコマンドのインストール
インストールされてない人はgoogle先生に聞いてくださいm(__)m
heroku周りの設定
↓サイトを参考にSSH鍵の設定まで終えてくださいm(__)m
初心者でも15分で公開できるHerokuのはじめかた
2.作ってみる
github上にcloneして動かすだけのテンプレを用意しました。
流れとしてはgit cloneしてそれをheroku上で動かします。
herokuで動かす前にビルトインサーバーでも動作確認も紹介します。
ソースコードの解説は、現状ほとんどしてません。
# 作業ディレクトリの名前を、適当に設定してください
# ここでは"sample"としてみます
DIR="sample"
# ひな形をclone
git clone git@github.com:tatsuya-yokoyama/slimSample.git ${DIR}
clone先のディレクトリに移動してls打ってみると、
こんな感じになっているかと思います。
yokoyama@Boson:~/php/sample (master)$ ls -ltr
total 2096
drwxr-xr-x 6 yokoyama staff 204 1 19 23:10 vendor
drwxr-xr-x 4 yokoyama staff 136 1 19 23:10 templates
drwxr-xr-x 4 yokoyama staff 136 1 19 23:10 lib
drwxr-xr-x 5 yokoyama staff 170 1 19 23:10 htdocs
-rw-r--r-- 1 yokoyama staff 58 1 19 23:10 config.php
-rwxr-xr-x 1 yokoyama staff 1048676 1 19 23:10 composer.phar
-rw-r--r-- 1 yokoyama staff 7863 1 19 23:10 composer.lock
-rw-r--r-- 1 yokoyama staff 157 1 19 23:10 composer.json
-rw-r--r-- 1 yokoyama staff 43 1 19 23:10 Procfile
それぞれ少し解説してみます。
-
vendor
- composerでインストールされるライブラリファイル
-
templates
-
lib
- 新しいページを足す時、サーバーサイドは主にここをいじります
-
htdocs
- ここがドキュメントルートです。index.phpとかcssとかおいてあります。
-
composer.*
- パッケージを管理するcomposerまわりの設定です。とりあえずあまり気にしなくてよいです。
-
Procfile
ドキュメントルートを定義しています。今回は↓にあるように、htdocsをドキュメントルートに設定しています。
その前のapacheうんたらは、WEBサーバーの設定で、現状は気にしなくてよいです。Nginxを使うこともできます(らしい)
web: vendor/bin/heroku-php-apache2 htdocs/
3.ビルトインサーバーでアクセスしてみる
PHPでは組み込みでWEBサーバーが入っているので、
↓のように実行した後に、ブラウザでここにアクセスすると見れます。
なお、phpコマンドを実行したコンソールをcmd+cなどで中断すると、
見れなくなります。
イチイチherokuにpushして動作確認してると、
開発効率悪いので、開発時はこの方法で挙動を確認するのがよさそうです。
cd htdocs
php -S 127.0.0.1:8080
4.Herokuでアクセスしてみる
あとは、Herokuに突っ込んだらおkです。
# 作業ディレクトリに移動
cd ${DIR}
# herokuにappを作成
# それと同時にremoteにherokuの追加もしてます
# git config -l | grep remote
# とか打ってremoteの確認をしてみるとよいかも
heroku create
# herokuにpush
# originではなくてherokuです
git push heroku master
# 勝手にブラウザを立ち上げて
# herokuのappのurlにアクセスするコマンドです
heroku open
# ブラウザを見て幸せになる\(^o^)/
5.色々追加してみる
あとは、皆さんの好きなようによしなに修正お願いします。
google先生に聞きつつ、修正したらgit push heroku masterすればおkです。
需要あれば、何か解説記事追加します。