HerokuでPHPをデプロイする
※本記事は2018年08月22日時点の情報を元にした内容ですが、2020年4月時点では上手くいくみたいです。
また、今回はGithub連携としない場合について書いています。
はじめに
PHPを2ヶ月間学習していたので、PaaSであるHeroku上で動かして公開してみようと思いました。
セットアップ
Herokuのユーザー登録
公式サイトから画面に従ってメールアドレス等を入力します。
プランはとりあえず無料にしました。
heroku toolbeltのインストール
CLIからHerokuを操作するためのツールです。
公式サイトのThe Heroku CLIから自分のOSにあう方法でインストールします。私はUbuntuを使っているのでターミナルからインストールしました。
Herokuにログイン
ターミナル(コマンドプロンプト)を開いてheroku login
と入力し、登録したメールアドレスとパスワードを入力します。logged in as {メールアドレス}
と表示されればログイン完了です。
アプリの作成からデプロイ
Herokuでアプリの作成
ターミナルから作成もできますが今回はブラウザを使います。
ダッシュボードに移動したあとCreate New App
を押し、アプリ名を入力してCreate app
を押します。
ローカルリポジトリの作成
作成後はDeploy using Heroku Git
に従いターミナルに入力していきます。GitHubと連携もできますが今回はシンプルにHerokuだけで行います。
$ cd my-project/
$ git init
$ heroku git:remote -a {作成したアプリ名}
my-project
はアプリ名等に変えたほうが分かりやすいです。
コミット
gitにpushする準備ができたのでコミットしてきます。
git init
したディレクトリにphpファイルを追加します。
<?php
echo 'Hello World!';
?>
index.php
の保存後、コミットします。
$ git add .
$ git commit -m 'initial commit'
-m
はエディタを開かずにコミットコメントを入力するオプションです。
自分の場合*** Please tell me who you are.
とエラーが出たので内容に従って設定しました。
$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"
プッシュ
プッシュするとHeroku側でデプロイしてくれます。
$ git push heroku master
WARNING: No 'composer.json' found!
と警告がでますが、プッシュとデプロイができました。
アプリのページを開きます。
heroku open
ブラウザでHello World!
と表示されていれば成功です。
PHPのバージョンの指定
PHPのバージョンはいくつか指定できるようです。今回は指定していないので自動的にPHP5になっています。実際にコードを書いていくときは先にバージョンを決めておきましょう。先程のWORNINGがでたcomposer.json
を編集します。
Heroku PHP Support | Heroku Dev Center
{
"require": {
"php": "^5.6.0"
}
}
これで5.6.0以降のバージョンを指定できます。(^
を使わない限定的な指定は推奨されていないようです。)
次に、composer.json
の内容を反映するために
$ composer update
を実行したあと、
git add .
、git commit
、git push
とすればアプリに反映されます。
composer update
で
Your requirements could not be resolved to an installable set of packages.
Problem 1
- This package requires php ^5.6.0 but your PHP version (7.2.9) does not satisfy that requirement.
とエラーが出た場合、phpのバージョンが違うので変更します。
参考:ubuntu 16.04 で複数のバージョンの PHP を使う、切り替える - Enjoi Blog
おわりに
Herokuを使えば簡単にPHPを使ったWebサイトを公開できました。無料プランなので制限はついていますが、ポートフォリオ等のテスト用途としては十分でしょう。