Windows機でHerokuにPHPファイルをデプロイしました
(update: 2015-01-04)
Herokuが公式にPHPをサポートしたことにより、手順が大幅に変わりました。
目次
1. 環境、要件
環境
- Windows7 64bit
必要なもの
2. HerokuToolbeltの導入
インストール
公式サイトからダウンロード、インストールします。
Herokuにログイン
コマンドプロンプト
heroku login Enter your Heroku credential Email: <Herokuに登録したメールアドレス> Password (typing will be hidden): Authentication successful.
SSH公開鍵を追加
まだ公開鍵を作成していない場合は、まずssh-keygen
を実行してください。
コマンドプロンプト
heroku keys:add ~/.ssh/id_rsa.pub
3. PHPファイルをデプロイ
まずは、ライブラリを何も追加しない簡潔な構成で動作させてみます。
基本的に公式ドキュメントに従って進めます。
ベアボーンをクローン
HerokuでPHPを動かすための最小限の構成が公式に用意されているので、それを利用します。
コマンドプロンプト
cd <任意の場所> git clone https://github.com/heroku/php-getting-started.git cd php-getting-started
不要な設定やファイルを削除
composer.json
今回はSilex、Monologは使いません。
composer.json
で無効にします。
{ "require" : { // "silex/silex": "~1.1", // "monolog/monolog": "~1.7" }, "require-dev": { "heroku/heroku-buildpack-php": "*" } }
web/.htaccess
web/.htaccess
の設定は、どうやらindex.php
が存在しないディレクトリを指定された場合にweb/index.php
を表示させるためのもののようです。
今回はテスト用なのでファイル一覧を見られても何も問題ありません。
削除します。
web/index.php
ライブラリを利用している箇所はバッサリ削除します。
とりあえず、下記のようにします。
<?php echo 'hello' ?>
Composerで管理するパッケージを更新
コマンドプロンプト
composer update
これで、vendor/
ディレクトリが作成され、composer.lock
が更新されます。
Herokuにデプロイ
コマンドプロンプト
git add -A git commit -m "first deploy" git push heroku master
リモート名はorigin
ではなくheroku
です。
これで完了です。
4. ベアボーンをクローンしない場合
Composerとforemanの設定を適切に行えるのであれば、ベアボーンのクローンは必要ありません。
具体的には、下記の3点が必要だと思います。
composer.json
にheroku-buildpack-php
を登録する。- Composerが作成する
vendor/
を.gitignore
で無視する。 - foremanの
Procfile
にheroku-php-apache2
の起動を登録する。
5. SQLiteをPDOで使いたい
SQLiteは初期状態では使えませんが、Composerに登録することでpdo_sqliteが有効になるようです。
composer.json
{ "require" : { "ext-pdo_sqlite": "*" }, "require-dev": { "heroku/heroku-buildpack-php": "*" } }