LoginSignup
19
18

More than 5 years have passed since last update.

[忙しい人向け] PHPフレームワークSlimを使ったアプリをHerokuで公開してみる

Last updated at Posted at 2015-01-19

まえがき

昨年春にHerokuでPHPの本格サポートが始まり、もうすぐ一年が経過しようとしています。
出遅れた感がかなりありますが、Slimフレームワークを使ったアプリをHerokuで公開するまでの流れを、簡単にまとめてみました。

heroku.png

こんな人向け

  • 何かしらのフレームワークでアプリケーションを作ったことがある
  • PHPでフレームワーク使って何かアプリを作ってみたい
  • どうせならローカルでないところで動かしたい
  • Herokuってよく聞くけど、何それおいしいの?

※なお、Slim自体の解説はあまりしてませんm(__)m

作るもの

よくあるHello World!を表示します。

skitch.png

動作環境

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

    • テンプレートエンジンTwig使ってます
    • Twitter社が提供しているCSSフレームワークBootstrap使ってます
    • lib/Controller配下と同じ構成でテンプレファイルを追加していくことを推奨です
  • lib

    • 新しいページを足す時、サーバーサイドは主にここをいじります
  • htdocs

    • ここがドキュメントルートです。index.phpとかcssとかおいてあります。
  • composer.*

    • パッケージを管理するcomposerまわりの設定です。とりあえずあまり気にしなくてよいです。
  • Procfile
    ドキュメントルートを定義しています。今回は↓にあるように、htdocsをドキュメントルートに設定しています。
    その前のapacheうんたらは、WEBサーバーの設定で、現状は気にしなくてよいです。Nginxを使うこともできます(らしい)

Procfile
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です。
需要あれば、何か解説記事追加します。

参考サイト

19
18
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
18