LoginSignup
1
5

More than 5 years have passed since last update.

Fuelphpのプロジェクトをherokuにデプロイする

Last updated at Posted at 2018-01-28

環境

FuelPHP 1.8
PHP 5.6.3
すでにプロジェクトをgitにて管理しており、そのプロジェクトをherokuを活用して
デプロイする状態です。

ちなみに、ディレクトリ構成は以下の通り
Project
|ー Fuel(FuelPHPのディレクトリ)
|ー composer.json
|ー composer.lock
|ー Procfile (heroku上でapacheの設定をするファイル)

herokuへの登録などは済ませてあるものとします。

事前準備

composerをmasterにpush

まずheroku createする前に、composerをremoteリポジトリで管理するようにします。
herokuでPHP環境を作るためにはcomposer.jsonとcomposer.lockが必須。
comoser.lockがignoreファイルに入っていたので、ignoreから外してgitにpush

※注意
composer.jsonとcomposer.lockはプロジェクト直下に置いておかないと、
後々大変になります。

プロジェクト直下にProcfileを作成

サーバーにapacheを使うように指定
public/と記述することで、プロジェクト内のpublicディレクトリをapacheさん見てくださいと
教えてあげるために以下の記述しProcfileという名前をつけて保存。
プロジェクト直下に置いておく

web: vendor/bin/heroku-php-apache2 public/

herokuにデプロイ

herokuにプロジェクトをcreate

準備が整ったらついに、heroku使っちゃいます。

heroku create chousei

heroku masterにpush

git push heroku master

※注意
ドキュメントルートにindex.phpやcomposer.jsonがないと、PHPだと判別できないようなので、buildpackというものを指定しないと、そもそもherokuにpushできません。なので、こんなエラーや

remote:  !     No default language could be detected for this app.
remote:             HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.

こんなエラーが出てきた場合は

remote: -----> App not compatible with buildpack: https://github.com/heroku/heroku-buildpack-php
remote:        More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote:

空のindex.phpをプロジェクト直下に置いたり、
herokuのプロジェクト管理から、buildpackを指定したりしないといけ無くなります。

Mysqlの設定

もともと、プロジェクトはMysqlを使っていたため、Mysqlをheroku上で
使えるようにします。

web上のプロジェクト管理で、clearDBというaddonを追加します。
その後、プロジェクト内のディレクトリで

heroku addons:add cleardb

これで、herokuでMysqlを使うことができます!
以下のコマンドでDBの情報を見ることができるので

heroku config

CLEARDB_DATABASE_URL:mysql://ユーザ名:パスワード@サーバ名/データベース?reconnect=true

上のユーザー名、パスワードなどを使ってDBに接続

今回はstaging環境として使用したいので、プロジェクトの
fuel/app/config/db/staging.phpにheroku configで参照した値を設定してあげる

あとは、以下のコマンドを打って、herokuがstaging環境だよというように設定

heroku config:set FUEL_ENV=staging

これで、DBへの接続はできるので、あとはmigrationだけ。
heroku runコマンドを使えば、heroku環境でmigrationできるので

heroku run 'php oil r migrate'

ここまでできてしまったら、

heroku open

と打てば、作った成果物を見ることができるはず!
自分は、git管理の仕方をミスっていたので大変だったが、
手順やルールさえ覚えてしまえば簡単にできてしまうので感動でした。

参照
HerokuへFuelPHPプロジェクトをデプロイ
heroku Meets FuelPHP
FuelPhpをHerokuで動かす

1
5
0

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
1
5