プログラミング講座

HerokuでPHPを動かそう!開発からデプロイまでの手順を解説【初心者向け】

 

とうふ
とうふ
こんにちは、WEBエンジニアのとうふです!

今回は、無料でWEBサービスを開発&公開できるHerokuというPaasサービスを紹介します!
サーバーの設定なども不要で、サクサクっと簡単に開発を始められます。

まよい羊
まよい羊
レンタルサーバーなどの初期費用を抑えたい…

という人も、Herokuでアプリを開発して公開すればポートフォリオとしても使えます。
わかりやすく・やわらかく解説していきますので、ぜひ実践してみてくださいね^^

この記事で出来ること
  • Herokuの登録&準備
  • アプリの作成
  • デプロイ(WEB上に公開)
  • ビルドパックの設定
  • WEBサーバーの変更

Herokuとは

HerokuはPaaS(パース/Platform as a Service)と言って、
WEBアプリの開発・保守などの運用までを一括してできるクラウドサービスです。

インフラ環境やOS、ソフトなどが揃っていて、すぐに開発を始められるのが特徴です。

ApacheやNginx、PHP、データベースのインストールが不要で、
インフラ知識が少なくても簡単にWEB上にアプリを作成して公開することができます!

開発に必要なもの

  • Homebrew(Heroku CLIのインストールに使います)
  • Git(Herokuへのデプロイに使います)

ローカルにない場合は先に入れておきましょう!
※今回は、Macを使用しています。

アプリ作成&デプロイ手順

1. Herokuの会員登録

まずは、Herokuのアカウントを取得します。

フォームにしたがって入力し、「無料アカウント作成」に進めばOKです!
登録確認のメールが届くので、記載されたURLをクリックして完了させましょう。

2. Heroku CLIのインストール

Herokuをコマンドで操作するためのHeroku CLIをインストールします。
Macの場合は、下記コマンドでインストールできます。

$ brew install heroku/brew/heroku

それ以外の環境へのインストールは公式ドキュメントを参照ください。
次に、下記コマンドでHerokuへログインしてみましょう!

$ heroku login

メッセージが表示され、エンターを入力するとブラウザでログインページが開きます!

3. アプリの作成

HerokuのアプリはHerokuのダッシュボードか、コマンドで作成可能です。
今回はコマンドで作成していきたいと思います!

① まずはアプリを作成するディレクトリを作成して移動します。

$ mkdir myapp
$ cd myapp

② 次に、Herokuのアプリを作成します。
「your-app-name」には作成するアプリ名を入力してください。

$ heroku create your-app-name
Creating ⬢ eriapptest... done
https://your-app-name.herokuapp.com/ | https://git.heroku.com/your-app-name.git

上記で表示される、
https://git.heroku.com/your-app-name.git」はgitのリポジトリURL
https://your-app-name.herokuapp.com/アプリのページURLです!

アクセスすると初期ページが表示されます。

③ ディレクトリをgitで管理するため、先ほどのリポジトリを追加します。
Herokuへのデプロイはgitのリポジトリにpushすることで行われます。

$ git init
$ git remote add heroku https://git.heroku.com/your-app-name.git

④ PHPファイルを作成します。
定番ですがまずは「Hello, world!!」と表示させてみましょう。
index.phpを作成し、以下を記述します。

index.php
<?php
echo 'Hello, world!!';

⑤ 作ったファイルをHerokuのリポジトリにpushします。

$ git add .
$ git commit -m"My first commit"
$ git push heroku master

pushするとデプロイのメッセージが表示されます。

先ほどのアプリのページにアクセスすれば、ページに反映されたことが確認できます!

まよい羊
まよい羊
サーバー設定やPHPのインストール不要、かつ無料でここまでできるなんてスゴイメェ…!

これなら、ポートフォリオ用にオリジナルアプリを作成したり、
スタートアップ状態でサーバーにお金をかけなくても十分に開発&公開ができますね。

軌道に乗れば、有料プランもあるのでそのままスケールアップすることも可能です!

デプロイ時「WARNING: No ‘composer.json’ found!」と表示されますが
これはHerokuでPHPを使用する場合、composer.jsonが必須だからです。
毎回警告が出てしまうので、composer.jsonを使わない場合でも
$ touch composer.json」などで空のファイルを作成しておきましょう。

5. アプリの作り方 -別パターン-

先ほどはまず最初に「$ heroku create your-app-name」で
アプリを作成してから、gitリポジトリを追加しました。
下記の手順で実行すれば、アプリ作成時にリポジトリを自動的に追加してくれます。

  1. アプリを作成するディレクトリを作成、移動
  2. PHPファイルを作成(index.phpなど)
  3. $ git init」(リポジトリの新規作成)
  4. $ heroku create your-app-name」(Herokuアプリの作成)
  5. index.phpをgit add&commit&pushする

ビルドパックとは

PHPで開発&デプロイする場合、HerokuはPHPのビルドパックを使用します。
基本的にはHerokuが判断してくれるので、こちらですることはありません。
(※もし、デプロイが上手くいかない等あればビルドパックが正しいものに設定されていない可能性もあります。現在の設定を確認してみてくださいね!)

PHPではheroku-buildpack-phpというビルドパックが使用されます。
PHP以外にrubyやnode.jsなども使う場合は、ビルドパックを追加することができます。

ビルドパックの確認・追加・削除 方法

Herokuのサイトにログインし、ダッシュボードから操作できます。
アプリの個別ページ「Setting → Buildpacks」です。

 

コマンドでも操作することができます!

// 現在のビルドパックの確認
$ heroku buildpacks

// ビルドパックをセットする
$ heroku buildpacks:set heroku/php

// ビルドパックを追加する
$ heroku buildpacks:add heroku/ruby

ビルドパック名や詳しい説明は公式ドキュメントから。

WEBサーバーの設定(Nginx)

HerokuのWEBサーバーのデフォルトはApacheです。
Nginxを使用することも可能です。

設定する場合は、「Procfile」という名前のファイルを作成して設定を記述します。
作成したらデプロイ同様、Herokuにpushして完了です!

Procfile
// 下記を記述
web: vendor/bin/heroku-php-nginx

// ドキュメントルートを指定したい場合はパスを記述
web: vendor/bin/heroku-php-nginx htdocs/hoge

 

まとめ

とうふ
とうふ
いかがでしたでしょうか?Herokuを使えば気軽にアプリ開発を楽しめるね…!
まよい羊
まよい羊
ローカルでの開発環境を整えたい人はこちらの記事もチェックだメェ!

それではまた〜!