LoginSignup
3
1

More than 5 years have passed since last update.

DockerのApacheで起動時に実行環境をセットする

Last updated at Posted at 2018-01-02

概要

PHPのレガシーコードで環境判定にApacheの定数を使っていることがあるので、
Docker環境でもそのスクリプトがそのまま動くよう環境設定を行うことが
ときどきあるのでメモとして残しておきます。

Dockerの設定

docker-compose.ymlの例を記載します。

開発環境の例)

docker-compose.yml
version: '2'
services:
  httpd:
    image: httpd:2.4
    container_name: 'httpd'
    command: /usr/local/apache2/bin/httpd -DFOREGROUND -DDev
    ports:
      - '80:80'
      - '443:443' 

※ 開発以外の環境は、「 -DDev 」を「 -DTest 」や「 -DProd 」に変更する

環境判定

.htaccessで判定する例を記載しておきます。

.htaccess
<IfDefine Dev>
  # 開発環境
  SetEnv APP_ENV development
</IfDefine>
<IfDefine Test>
  # テスト環境
  SetEnv APP_ENV testing
</IfDefine>
<IfDefine Prod>
  # 本番環境
  SetEnv APP_ENV Production
</IfDefine>

phpでの判定例を記載しておきます。

environment.php
<?php

switch (getenv('APP_ENV')) {
  case 'development':
    echo '開発環境';
    break;

  case 'testing':
    echo 'テスト環境';
    break;

  case 'production':
    echo '本番環境';
    break;

  default:
    throw new ErrorException('環境を判定できません');
}

参考サイト

3
1
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
3
1