herokuコマンド

heroku

 

Herokuは2010年にSalesforce.comにより買収され、Salesforce.comが掲げるソーシャルエンタープライズを実現させるために生まれました。現在ではRuby on Railsだけでなく、PHP、Java、Python、JavaScript(Node.js)、Scala、Cloujureにも対応したマルチ言語なプラットフォームとなっています。Herokuは、元々Ruby on Railsを対象とした、Amazon Web ServicesのIaaS(仮想サーバコンピュータを提供してくれるサービス)上に構築されたPaaS(Platform as a Service)です。PaaSは、開発に必要なソフトウエアが準備されたサービスのことです。

1. Herokuへのユーザー登録

Cloud Application Platform | Heroku
Herokuisaplatformasaservice(PaaS)thatenablesdeveloperstobuild,run,andoperateapplicationsentirelyinthecloud.

からユーザー登録を行う

2. Heroku Command Line(Heroku CLI)のインストール

The Heroku CLI | Heroku Dev Center
Howtodownload,install,andstartusingtheHerokuCLI.TheHerokuCLIusedtobepartoftheHerokuToolbelt.

からインストーラをインストール

3. Herokuへログイン

heroku login

4. Herokuアプリケーションを作成

heroku create アプリケーション名

既存のHerokuアプリケーション名と重複できません。
ユニークになるように考えておつくりください

ここまで行うとURLが自動発行されます

https://XXXXX.herokuapp.com/ | https://git.heroku.com/XXXXX.git

Herokuアプリケーションが作成されたかの確認
heroku apps

No such app as XXXXX. というエラーが出るときは

git remote rm heroku

としてから再度アプリ作成を行いましょう

5.Heroku用設定ファイルを新規作成

Herokuアプリケーション用に Procfile という名前のファイルを作成します。

Procfile は「Herokuで何のWebサーバソフトウェアを使うか」を指定をするためのファイルです。 フォルダの直下で下記のコマンドを実行すると、 フォルダの直下に Procfile が作成されます。

echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile

作成された Procfile は下記の内容になります。 Heroku上のapache2というWebサーバソフトウェアを利用することを指定しています。

6.デプロイ

デプロイする前に、HerokuのPHPの対応バージョンを変更しておきます。

なお、現状のままデプロイするとphp8.1が対応となっているため、エラーが出てしまいます。

まずは、composer.jsonファイルにある

"require": {
        "php": "^7.2.5|^8.0",

の部分を

"require": {
        "php": "^7.2.5",
        "symfony/polyfill-ctype": "1.22.0",
        "symfony/polyfill-iconv": "1.22.0",
        "symfony/polyfill-mbstring": "1.22.0",

に修正し、保存します。

さらに、composer.lockファイルを削除したのち、

composer update

を実行するとcomposer.lockファイルが再生成されます。これらの変更をGitへコミットします。

これで、HerokuでもPHP 7で実行されるようになります。

では、一度デプロイしてみましょう。

登録されたリモートリポジトリherokuに対して git push を行うとそのままデプロイされます。何かファイルを更新しても git commit してからgit push heroku main するだけで、簡単にデプロイすることが可能です。

git push heroku main
heroku open

リモートリポジトリherokuの確認
Heroku上に作成されたGitリポジトリがリモートリポジトリ heroku として登録されます。

git remote -v

7.Herokuアプリケーションを開く

デプロイが成功したらHerokuアプリケーションのURLにアクセスしましょう。URLは heroku apps:info コマンドで確認できます。 Web URL に表示されるURLへWebブラウザでアクセスしてください。

heroku apps:info
Web URL:        https://Herokuアプリケーション名.herokuapp.com/

8.Herokuアプリケーションの環境変数の設定

いくつか設定する必要のある環境変数があります。Cloud9上では .env が環境変数の役割を担っていましたが、 .env は .gitignore によって無視ファイルとして扱われているため、Gitのコミットには含まれていません。

また、環境変数はその名の通り環境の変数であるため、異なる環境毎に設定する必要があります。

APP_KEY

APP_KEY はLaravelアプリケーションのセキュリティを強化するために設定されるものです。これを最初に設定しておく必要があります。ローカル(Cloud9)でも .env 上に APP_KEY が設定されています。

以下を実行し、表示される base64: で始まる文字列をコピーします(base64: も含めてコピーしてください)。

php artisan --no-ansi key:generate --show

続いて、コピーした文字列 の箇所に先程の文字列をペーストして実行します。

heroku config:set APP_KEY=コピーした文字列

環境変数の確認方法

Herokuアプリケーション上の環境変数を確認する方法を知っておきましょう。適宜、確認してみてください。

先ほど設定した APP_KEY が設定されているはずです。

heroku config
=== Herokuアプリケーション名 Config Vars
APP_KEY:       base64:...

9.MySQLを追加

cleardbというクラウド上でMysqlを使うためのサービスがあります。プランはがいくつかありますが、igniteは無料です。

$ heroku addons:create cleardb:ignite
Creating cleardb:ignite on ⬢ [アプリ名]... free
Created cleardb-objective-20233 as CLEARDB_DATABASE_URL
Use heroku addons:docs cleardb to view documentation

10.MySQLの接続設定を修正

HerokuのアプリにDB情報の環境変数を設定します。

$ heroku config
=== [アプリ名] Config Vars
CLEARDB_DATABASE_URL: mysql://[ユーザー名]:[パスワード]@[ホスト名]/[データベース名]?reconnect=true

$ heroku config:add DB_NAME='[データベース名]'
$ heroku config:add DB_USERNAME='[ユーザー名]'
$ heroku config:add DB_PASSWORD='[パスワード]'
$ heroku config:add DB_HOSTNAME='[ホスト名]'
$ heroku config:add DB_PORT='3306'
$ heroku config:add DATABASE_URL='mysql2://[ユーザー名]:[パスワード]@[ホスト名]/[データベース名]?reconnect=true'

$ heroku config
=== [アプリ名] Config Vars
CLEARDB_DATABASE_URL:     mysql2://[ユーザー名]:[パスワード]@[ホスト名]/[データベース名]?reconnect=true
DATABASE_URL:             mysql2://[ユーザー名]:[パスワード]@[ホスト名]/[データベース名]?reconnect=true
DB_HOSTNAME:              [ホスト名]
DB_NAME:                  [データベース名]
DB_PASSWORD:              [パスワード]
DB_PORT:                  3306
DB_USERNAME:              [ユーザー名]
LANG:                     en_US.UTF-8
RACK_ENV:                 production
RAILS_ENV:                production
RAILS_LOG_TO_STDOUT:      enabled
RAILS_SERVE_STATIC_FILES: enabled
SECRET_KEY_BASE:          [シークレットキー]

11.デプロイ

ローカルリポジトリをHeorkuへプッシュ(デプロイ)します。

$ git push heroku main

よく使うherokuコマンド

▼ herokuへログイン

heroku login

「メールアドレス」「パスワード」を入力してログインします。

▼ heroku上のアプリを表示

heroku apps

▼ herokuアプリをブラウザで表示

アプリ hogehoge-fugafuga をブラウザで表示するには

heroku open --app hogehoge-fugafuga

と入力します。 またはブラウザのアドレス欄に直接

https://hogehoge-fugafuga.herokuapp.com

と入力してもOKです。

▼ heroku上のアプリを削除

アプリ hogehoge-fugafuga を削除するには

● 確認なしで削除
heroku apps:destroy --app hogehoge-fugafuga --confirm hogehoge-fugafuga
● 確認ありで削除
heroku apps:destroy --app hogehoge-fugafuga

▼ heroku上でbashを使用する

heroku run bash

▼ heroku上で任意のLinuxコマンドを使用する

・Heroku上のホームディレクトリのファイル一覧を表示

heroku run pwd ;  ls -la

・Heroku上のphantomjsのバージョンを表示

 heroku run phantomjs -v
heroku
スポンサーリンク
sutaruhinをフォローする
システム・スタルヒン合同会社

コメント

タイトルとURLをコピーしました