Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
21
Help us understand the problem. What is going on with this article?
@Teaki

HerokuでPHPをデプロイする

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ファイルを追加します。

index.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

composer.json
{
  "require": {
    "php": "^5.6.0"
  }
}

これで5.6.0以降のバージョンを指定できます。(^を使わない限定的な指定は推奨されていないようです。)
次に、composer.jsonの内容を反映するために

$ composer update

を実行したあと、
git add .git commitgit 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サイトを公開できました。無料プランなので制限はついていますが、ポートフォリオ等のテスト用途としては十分でしょう。

21
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
21
Help us understand the problem. What is going on with this article?