Webアプリケーションを開発していると、外部サービスのAPIを利用する機会は多くあります。例えば、Google Maps API や各種決済API、SNS連携などです。
Laravelでは、これらのAPIキーやパスワードなどの機密情報を.envファイルで管理するのが一般的です。開発環境では.envを自由に編集できますが、本番環境ではサーバーにログインして直接.envを編集する必要があります。
しかし、いざ本番環境で.envを編集しようとすると、
.envファイルはどうやって編集するの?viの操作方法がわからない- 追加したのにLaravelで反映されない
といった疑問にぶつかることも少なくありません。
この記事では、本番環境の.envファイルにAPIキーを追加する方法を、Laravelを例にわかりやすく解説します。
サーバーへのログインから.envの編集、Laravelへの反映まで、実際の手順を順番に紹介していきます。
.env ファイルとは
- Laravelで環境変数を管理するためのファイル
- APIキーやパスワードなどの機密情報を管理
- Gitで管理しないのが一般的
本番環境の.envにAPIキーを追加する手順
1. サーバーにSSHでログインする
例
ssh user@server2. Laravelプロジェクトのディレクトリへ移動する
例
cd /path/to/laravel-project3. .envファイルを開く
vi .envvi で.envファイルを開くことができます。
その後、iを押すと編集モードに入ります。(逆にiを押さない限り編集ができません。)
4. APIキーを追記する
.envファイルに以下のように追記します。
例
GOOGLE_MAPS_API_KEY=xxxxxxxxxxxxxxxx5. 保存して終了する
ESCを押す- 以下を入力して終了
:wqLaravelに変更を反映させる
Laravelでは設定がキャッシュされている場合があるため、.envを変更したあとにキャッシュをクリアします。
php artisan config:clearまたは
php artisan optimize:clearこれで .envの変更がLaravelに反映されます。
LaravelでAPIキーを使用する方法
.envに記載した値はenv()で取得できます。
env('GOOGLE_MAPS_API_KEY')ただし、Laravelではconfigファイル経由で使用する方法が推奨されています。
例:config/services.php
'google_maps' => [
'api_key' => env('GOOGLE_MAPS_API_KEY'),
],使用例
config('services.google_maps.api_key');よくあるトラブル
.env を変更したのに反映されない
原因の多くはLaravelのキャッシュです。
原因がキャッシュの場合、以下を実行すると解決します。
php artisan config:clearまとめ
本番環境の .env ファイルにAPIキーを追加する手順は、次の流れになります。
- サーバーにSSHログイン
- Laravelプロジェクトへ移動
vi .envでファイルを編集- APIキーを追記
php artisan config:clearで設定を反映
.env はAPIキーやパスワードなどの重要な情報を管理するファイルのため、取り扱いには十分注意しましょう。
