PHPの人気のフレームワークLaravelではWebサイトの管理画面を開発することができます。
開発の手順に関しては以下の記事にて具体的に紹介をしていきました。
これらは、開発後にデプロイして利用可能な状態にしていく必要があります。
そこで本記事でHeroku+Laravel、こちらの記事でFirebase+Nuxt.jsのデプロイについて解説していきます。
これらに当てはまる方におすすめの記事となっています。このシリーズを読めばLaravel6とNuxt.jsで管理画面を作成することができますよ。
クラウドのインフラサービスといえば、Amazon Web Services(AWS)やGoogle Cloud Platform(GCP)が有名です。
しかし、スモールスタートならばHerokuも有力な選択肢の1つです。
エンジニアがほとんどインフラを意識しないで済みますし、初期コストが安く、Hobby プランなら 7ドル/月、Professional プランなら25ドル/月から使えるからです。
サービスが上手くいって売上もユーザー数も伸び始め、スケールが気になり始めたら、エンジニアを採用してAWSやGCPに引っ越せば良いのではないでしょうか。
今回の管理画面は社内で使う想定でスケールもしないため、Herokuを使うことにしました。
まず以下のコマンドを実行してHerokuのコマンドをインストールします。
brew tap heroku/brew && brew install heroku
次に以下のコマンドを実行します。Herokuのログイン画面が表示されるので事前にアカウント登録は済ませておきましょう。
heroku login
ログインが完了したら下記のコマンドでLaravel用のアプリケーションを作成します。
Herokuは全体でユニークな名前である必要があるので、各自のアプリケーション名に置き換えるようにしましょう。
heroku create admin-nuxt-laravel-api --buildpack heroku/php
作成が完了したら、Heroku用のリモートリポジトリが登録されるので、
以下のコマンドを実行してLaravelのアプリケーションをHerokuへプッシュします。
git push heroku master:master
HerokuでMySQLを利用する場合、Clear DBというアドオンを追加する必要があります。
無料版の場合でもアドオンの追加にはクレジットカードの登録が求められるので、こちらから登録しておきましょう。
クレジットカードの登録が完了したら、以下コマンドでClearDB
をアドオンに追加します。
heroku addons:add cleardb
以下のような無料版のClearDB MySQL
が追加されていればOKです。
次に以下のコマンドを実行してClearDB
のデータベース情報を確認します。
heroku config | grep CLEARDB_DATABASE_URL
結果、以下のような内容が出力されるのでメモしておきましょう。
CLEARDB_DATABASE_URL: mysql://[ユーザー名]:[パスワード]@[ホスト名]/[データベース名]?reconnect=true
次に先程メモしておいた情報を使ってLaravelのデータベース用の環境変数を設定します。
heroku config:set DB_DATABASE=[データベース名]
heroku config:set DB_HOST=[ホスト名]
heroku config:set DB_USERNAME=[ユーザー名]
heroku config:set DB_PASSWORD=[パスワード]
これでClearDB
の設定は完了です。
LaravelではMySQLのバージョンが5.7.7より古い場合、インデックス用の文字列長を指定しないとマイグレーション時にエラーになります。
mysql -h <ホスト> -u <ユーザー名> -p -D <データベース名>
上記のコマンドでClearDB
のMySQLのバージョンを確認できますが、最新バージョンでもMySQL5.5系のため、文字列長の指定が必要になります。
app/Providers/AppServiceProvider.php
を以下のように編集すればOKです。
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
//追加
use Illuminate\Support\Facades\Schema;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/ public function register()
{
//
}
/**
* Bootstrap any application services.
*
* @return void
*/ public function boot()
{
//追加
Schema::defaultStringLength(191);
}
}
次に以下のコマンドで修正をHerokuに反映し、マイグレーションを実行します。
git push heroku master:master
heroku run php artisan migrate
以下のように表示されればOKです。
以下の内容のProcfile
をルートディレクトリに追加してHerokuにプッシュします。
web: vendor/bin/heroku-php-apache2 public/
これだけでWebサーバーはApacheを利用して起動するようになります。
Laravelではcookie等の暗号化/復号化に使われるアプリケーションキーの設定が必ず必要なので、
以下コマンドで環境変数に設定します。
heroku config:set APP_KEY=$(php artisan key:generate --show)
今回の管理画面の認証に利用しているCookieですが、全く異なるドメイン間では送受信が出来ません。
サブドメイン間であれば可能なため、Heroku・Firebaseのデフォルトではなく独自ドメインの設定を行う必要があります。
まずはお名前.com等で設定したい独自ドメインを購入します。
次に作成したアプリケーションのSettings
> Domains
の項目から、「Add domain
」をクリックすると、
以下のような画面が表示されるので、購入したドメインのサブドメインをAPI用として追加します。
以下のような項目が追加されるので、
この「DNS Target
」の値をCNAME
で各ドメイン事業者のDNSレコードに設定します。
お名前.comの場合は以下のような設定になります(値はサンプル用なのでダミーです)
反映後、しばらくすると設定したドメインでアクセスできるようになります。
HerokuではSSLを有効化するには有料プランにアップグレードする必要があります。CloudFlare
というCDNを利用すれば、無料でSSLを設定する方法もあるようですが、少し手間です。
Herokuは稼働分の課金制のため、すぐにfreeプランに戻せばほぼ課金されません。アップグレードしてサクッと動作確認することをオススメします。
上記の画面で、「Change Dyno Type
」をクリックします。
次の画面で表示されるHobby
プランを選択してSaveします。
アップグレード後にSettings
> SSL Certificates
の項目を確認すると、設定が有効になっています。
証明書はLet's Encrypt
を利用しており自動で期限の更新も行ってくれます。
設定が完了したら、https://api.独自ドメイン
にアクセスしてみましょう。
SSLが有効になった状態で以下のような画面が表示されればOKです。(確認できたらDynoをFreeに戻すのを忘れずに)
今回はHeroku+Laravel+MySQLを独自ドメイン(SSL)で公開まで行いました。
ほとんどコマンドとGUIからの操作だけでデプロイまで出来てしまいましたね。
こちらの記事で、Firebase+Nuxt.jsのデプロイを行いLaravel(API)と連携する手順を紹介しています。
合わせて確認して下さい。
本日紹介したようなものを外注してみるのはいかがでしょうか。 dehaソリューションズではオフショア開発によって低コストで迅速な開発をサポートしています。
Laravelに関して詳しくお話を聞きたい方、開発相談や無料お見積りをしたい方はこちらからご気軽にお問い合わせください。
▼ dehaソリューションへの簡単見積もりの依頼はこちら
近年、AI技術の進化とともに、業務効率化やサービス向上を目的とした「AIエージェント」の導入が急速に進んでいます。 弊社でも、この流れを受けてAIエージェントの導入を進め、多くの現場で業務の質とスピードの両立を実現することができました。 この記事では、実際に弊社が取り組んだAIエージェントの活用事例を紹介しながら、AI導入によるメリットとその可能性についてご紹介いたします。 AIエージェントが気になる方 AIエージェントの事例が知りたい方 社内の人材不足にお悩みの方 これらに当てはまる方におすすめの記事となっています。これを読めばAIエージェントの成功事例が丸わかりですよ。 (more…)
近年、業務効率化や顧客対応の高度化を目的として、企業や自治体、教育機関など多くの組織で「AIエージェント」の導入が進んでいます。 AIエージェントとは、人工知能を活用して自動的に応答や処理を行うシステムの総称で、チャットボットやバーチャルアシスタント、RPA(Robotic Process Automation)などが含まれます。 しかしながら、AIエージェントの導入には多くの期待が寄せられる一方で、現場ではさまざまな課題に直面するケースも少なくありません。 この記事では、AIエージェント導入によくある課題とその解決方法について、具体的に解説していきます。 AIエージェントに興味がある方 AIエージェントの導入に不安がある方 社内の人材不足にお悩みの方 これらに当てはまる方におすすめの記事となっています。これを読めばAIエージェントの特徴がわかるのはもちろん、うまく活用するための方法もわかりますよ。 (more…)
近年、AI技術の進化により、私たちの生活やビジネスのあらゆる場面で人工知能(AI)が活用されるようになっています。 その中でも注目されているのが「AIエージェント」です。音声アシスタント、チャットボット、カスタマーサポートなど、さまざまな場面で導入が進むAIエージェントは、業務効率化やユーザー体験の向上に大きな可能性を秘めています。 この記事では、AIエージェントの基本的な定義から、その特徴、導入メリット、さらに活用事例や今後の展望までを網羅的に解説します。 AIエージェントが気になる方 社内の人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばAIエージェントの特徴や具体的な活用メリットがわかりますよ。 (more…)
AI(人工知能)は、世界各国の経済成長を支える基盤技術として注目されています。 とりわけベトナムでは、政府が国家戦略としてAIの導入を明確に位置づけ、経済、教育、公共行政、スタートアップ育成まで多岐にわたる分野で取り組みを強化しています。 この記事では、「ベトナムAI経済2025年」レポートをもとに、マクロ経済との接続性、国家戦略、セクター別の導入状況、スタートアップ・投資動向、そして将来の展望について解説します。 ベトナムのAIが気になる方 最新のベトナムの経済動向が気になる方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばAIがもたらすベトナム経済の進化と、その背景にある政策と市場構造を総合的に理解することができます。 (more…)
近年、開発現場では「品質」「スピード」「セキュリティ」のすべてを高次元で実現することが求められています。 特に、高度な専門性や情報セキュリティが重要視される分野では、国内同様の品質と体制が前提となります。 そんな中、「No-BrSEオフショア開発」をご紹介します。 これは従来のオフショア開発におけるブリッジSE(BrSE)を介さず、日本語で直接やり取りができる完全日本語対応のラボ型開発チームを導入するモデルです。 この記事ではそんなNo-BrSE開発の特徴、メリット、適した活用シーンまでを詳しく解説します。 No-BrSEオフショア開発が気になる方 社内のIT人材が不足している方 開発の品質を高めたい方 これらに当てはまる方におすすめの記事となっています。これを読めばNo-BrSEオフショア開発のメリットや活用方法が丸わかりですよ。 (more…)
近年、開発コスト削減やリソース確保を目的として「オフショア開発」を導入する企業が増えています。 その中でも開発スタイルとして注目されているのが「請負型(受託型)」の契約形態です。 この記事では、請負型の基本的な概要から、メリット・デメリット、向いているプロジェクトの特徴、活用シーンまでを徹底解説します。 オフショア開発が気になる方 請負型について気になる方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばオフショア開発の請負型について メリットデメリットがわかるだけでなく活用できるシーンまで丸わかりですよ。 (more…)