13
31

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 5 years have passed since last update.

Codeigniterの環境設定メモ

Posted at

#設定ファイルのロード

  1. グローバルな設定ファイル(/application/config/内)
  2. 現在の環境の設定ファイル(/application/config/環境名/内)

設定ファイルは上記の順にロードされる。
環境別ディレクトリ配下には、必要なファイルのみを置けばよい。
他はグローバル設定ファイルの内容が適用される。

#環境切り替え
$_SERVER['CI_ENV']の値もしくはpublic/index.phpの定数ENVIRONMENTの値設定で行う。
デフォルトはdevelopment。

ちなみに$_SERVER['CI_ENV']は apacheのSetEnvで設定できる。

httpd.conf
<Directory "/var/www/html">
SetEnv CI_ENV development
</Directory>

##影響:エラーレポート

  • development = エラーレポートがブラウザに表示される。
  • production = エラーレポートは表示されない。

#影響:設定ファイル
/application/config/<環境名>/配下の設定ファイルもロードされる。

#複数環境の設定

1 . 開発用(application/config/development/)ディレクトリと製品用(application/config/production/)ディレクトリを作成。必要に応じてテスト用(application/config/testing/)ディレクトリも作成。

ディレクトリ構成
application/
└ config/ (直下はデフォルトの設定ファイル)
   ├ autoload.php
   ├ config.php
   ├ constants.php
   ├ database.php
   ├ ...
   │
   ├ production/  (製品用)★作成
   ├ development/ (開発用)★作成
   │

2 . 各ディレクトリ内に,環境によって変えたい設定ファイルをapplication/config内よりコピペして、設定内容を変更。

ディレクトリ構成
application/
└ config/
   ├ autoload.php
   ├ config.php
   ├ constants.php
   ├ database.php
   ├ ...
   │
   ├ production/  (製品用)
   │  ├ autoload.php ★作成
   │  ├ config.php   ★作成
   │  ├ database.php ★作成
   │  └ routes.php   ★作成
   │
   ├ development/ (開発用)
   │  ├ autoload.php ★作成
   │  ├ config.php   ★作成
   │  ├ database.php ★作成
   │  └ routes.php   ★作成
   │

3 . public/index.phpの設定を以下のように設定。

public/index.php
if($_SERVER["SERVER_NAME"]=="localhost"){
    // localhost -> development
    define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
}else{
    // Others -> production
    define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'production');
}

4 . .gitignoreにapplication/config/development/*、application/config/production/*を記述して、管理から外す。
(database.phpのみを外すのでもOk。とりあえず、パスワードをコミットしちゃわないように。)

.gitignore
/application/config/production/*
/application/config/development/*

#database.phpのみの場合
/application/config/production/database.php
/application/config/development/database.php

#参考リンク

13
31
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
13
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?