4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

.env ファイル

Last updated at Posted at 2022-02-24

PHPでの .env 参考サイト

公式のREAD ME.md 日本語訳

概要

dotenv(.env) というライブラリを使い、アプリケーション内で使用する環境変数を読み込む。

dotenvはファイルから環境変数を読み込み、$_SERVERgetenv()を使用して設定した環境変数を読み込むことができる。

データベースの接続情報やAPIの鍵といったGitなどの バージョン管理に含めることができない 設定値をアプリケーションで利用するために.envファイルを作成する。

しかし、バージョン管理外にすると、何を.envファイルに記述すればよいか分からなくなってしまうため、.envの設定値をダミーデータにして.env.exampleのようなファイルをバージョン管理下に指定する。

使い方 

  • PHP アプリケーションを作成するディレクトリ(index.php がある階層)に vlucas/phpdotenv をインストールする。
composer require vlucas/phpdotenv
  • .env ファイルの作成
.env
DB_HOST=localhost
DB_USER=user
DB_PASS=password
DB_NAME=database
  • PHPファイルで環境変数を呼び出す
#vendorファイルを読み込む
require_once __DIR__ . '/vendor/autoload.php';

#dotenvを使用する
$dotenv = new Dotenv\Dotenv(__DIR__); // .envファイルがあるディレクトリを指定
$dotenv->load();                      // .envファイルから環境変数を読み込み

通常の環境変数を呼び出すのと同じようにgetenv()$_SERVER$_ENVと複数の方法で環境変数を呼び出すことができる。

<?php
require_once __DIR__ . '/vendor/autoload.php';

$dotenv = new Dotenv\Dotenv(__DIR__); // .envファイルがあるディレクトリを指定
$dotenv->load();                      // .envファイルから環境変数を読み込み

// 通常の環境変数を同じように下記のどの方法でも環境変数を呼び出せます
$host = getenv('DB_HOST');
$user = $_SERVER['DB_USER'];
$password = $_ENV['DB_PASS'];

$dsn = "mysql:host={$host};charset=utf8;";
$options = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
];

$this->pdo = new PDO($dsn, $user, $password, $options);

docker-compose での .env 参考サイト

公式

環境変数の与え方

 1. ホスト側で環境変数を設定する
 2. .envファイルをdocker-compose.ymlと同じ階層に置いておく
 3. docker-compose時に--env_fileオプションを付けて.envの代わりにファイルを指定する
 

利用される環境変数の優先順位

  1. ホストで設定した環境変数
  2. .envファイル

注意すること

  • .envファイルの内容はすべて テキスト として扱われるので、数値やbool値として環境変数を使用することはできない。

  • .envファイルを守る
    .htaccess.envファイルへの アクセス拒否設定 をしたり、.envファイルの パーミッション(400) を見直す。

  • .envファイルを 公開領域外

env_file と .env の違い

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?