forked from NEKOGET/FuelPHP_docs_jp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
environments.html
254 lines (214 loc) · 11 KB
/
environments.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./../assets/css/combined.css">
<link rel="shortcut icon" href="./../favicon.ico" />
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
var path = './../';
</script>
<script src="./../assets/js/combined.js"></script>
<title>環境 - 概要 - FuelPHP ドキュメント</title>
</head>
<body>
<div id="container">
<header id="header">
<div class="table">
<h1>
<a href="http://fuelphp.com"><img height="37px" width="147px" src="./../assets/img/fuel.png" /></a>
<strong>Documentation</strong>
</h1>
<form id="google_search">
<p>
<span id="search_clear"> </span>
<input type="submit" name="search_submit" id="search_submit" value="検索" />
<input type="text" value="" id="search_input" name="search_input" />
</p>
</form>
</div>
<nav>
<div class="clear"></div>
</nav>
<a href="#" id="toc_handle">目次</a>
<div class="clear"></div>
</header>
<div id="cse">
<div id="cse_point"></div>
<div id="cse_content"></div>
</div>
<div id="main">
<h2>環境</h2>
<p>
環境のサポートは、FuelPHP やあなたのアプリケーションが、環境設定に基づいて意思決定することを助けます。
FuelPHP 自体は環境設定を使用して、現在有効な環境に基づいて追加の設定をロードしたり
上書きしたりします。
</p>
<h3 id="env_config">環境と設定</h3>
<p>
アプリに設定された環境に基づき、Config クラスは環境独自の設定ファイルを探します。
Config クラスは現在の環境にマッチするディレクトリの中の設定ファイルを探します。これは複数の開発者が各々のデータベース接続設定を使う場合に便利です。別の便利なユースケースとしては、テストサーバではすべての PHP エラーや警告を表示させ、本番サーバではエラーや警告は非表示にし、後で開発者がレビューできるようにログにのみ記録します。
</p>
<p>これを示した例:</p>
<pre class="plain"><code>app/
config/
auth.php
db.php
development/
db.php
staging/
email.php
mike_dev/
db.php
email.php
production/
db.php</code></pre>
<p>
あなたの環境が <kbd>\Fuel::DEVELOPMENT</kbd> に設定されている場合、 <em>db.php</em> からの設定が <em>development/db.php</em> とマージされます。
<em>staging/db.php</em> は存在しないので、 <kbd>\Fuel::STAGING</kbd> を除く他の環境設定についても同じことがいえます。
環境設定が <kbd>\Fuel::STAGING</kbd> に設定されている場合、 <em>db.php</em> のみがロードされます。
</p>
<p>
この実際の例として、データベース設定があります。デフォルトの設定はありません (あるととても危険です)。環境固有の設定だけがあります。
</p>
<h3 id="possible_envs">定義済みの環境</h3>
<p>
FuelPHP には 4 つの定義済みの環境があります。<a href="#create_env">独自の環境を作成する</a> こともできます。
</p>
<ul>
<li>
<strong>\Fuel::DEVELOPMENT</strong><br/>
開発環境。
</li>
<li>
<strong>\Fuel::TEST</strong><br/>
テスト環境。
</li>
<li>
<strong>\Fuel::STAGING</strong><br/>
ステージング環境。
</li>
<li>
<strong>\Fuel::PRODUCTION</strong><br/>
本番環境。
</li>
</ul>
<h3 id="create_env">独自の環境を作成する</h3>
<p>
独自の環境を作成するには、<em>mike_dev</em> のような独自の文字列を使い、/fuel/app/config/ に同じ名前のフォルダを作成します。
</p>
<p>
例えば:
</br>
もし、Mike という名前の開発者がいれば、<i>mike_dev</i> という独自の環境を作成します。
<ol>
<li>/fuel/app/config/ の中に <i>mike_dev</i> というフォルダを作成します</li>
<li>Mike の設定ファイルをその新しいフォルダに配置します。例えば、/fuel/app/config/mike_dev/ に <em>mike_dev</em> 環境の場合に独自のデータベース設定をロードするために db.php を配置します。</li>
<li>次の <a href="#setting_env">環境を設定する</a> の手順に従います。PRODUCTION のような FuelPHP で定義済みの環境を使う代わりに、独自の文字列 <em>mike_dev</em> を使います。</li>
</ol>
</p>
<h3 id="setting_env">環境を設定する</h3>
<p>
環境を設定するには 3 つの方法があります。最初の 2 つは、FuelPHP が Web ページをロードするときに使います。3 つ目の方法は、 FuelPHP の oil を使う場合に環境を設定する方法です。oil は最初の 2つの方法を使いませんので、oil を実行するたびに別途設定する必要があります。
</p>
<ul>
<li><a href="#env_server">サーバの環境変数で環境を設定する (推奨)</a></li>
<li><a href="#env_manual"><em>/fuel/app/bootstrap.php</em> で環境を設定する</a></li>
<li><a href="#env_oil">oil 使用時の環境を設定する (上の方法を置き換えません。別途指定する必要があります)</a></li>
</ul>
<h4 id="env_server">サーバの環境変数で環境を設定する (推奨)</h4>
<p>
サーバ環境変数 <strong>SetEnv</strong> を使い、アプリケーションの環境を設定できます。すべてのサーバはそれぞれ環境変数を持っています。以下は既知の設定の手順です。あなたのサーバの設定がない場合、<a href="http://en.wikipedia.org/wiki/Environment_variable">環境変数についてここを読んでください</a>。
</p>
<p class="note">環境変数 <strong>FUEL_ENV</strong> は大文字で、環境名は小文字で記述します。</p>
<h5>Apache - サーバ設定</h5>
<ol>
<li>Apache サーバの設定が mod_env をロードすることを確認してください</li>
<li>
<pre>httpd.conf</pre> ファイル (またはインクルードされるバーチャルホストの設定ファイル) を編集し
以下のコードを追加します。
</br>
<pre class="php"><code>// このアプリケーションを production モードで実行する
SetEnv FUEL_ENV production</code></pre>
</li>
</ol>
<h5>Apache - ユーザ設定</h5>
<ol>
<li>Apache サーバの設定が mod_env をロードすることを確認してください</li>
<li><pre>.htaccess</pre> ファイルをアプリケーションの <pre>/public</pre> ディレクトリに作成します</li>
<li>
<pre>.htaccess</pre> ファイルを編集し次のコードを追加します。
</br>
<pre class="php"><code>// このアプリケーションを production モードで実行する
SetEnv FUEL_ENV production</code></pre>
</li>
</ol>
<p class="note">.htaccess を有効にすることは、Apache をかなり遅くすることに注意して下さい。可能なら、サーバ設定を使い、.htaccess を無効にしてください!</p>
<h5>Nginx</h5>
<ol>
<li>
<pre>/etc/nginx/sites-available</pre> の中の設定ファイルを編集し、次のコードを追加します。
</br>
<pre class="php"><code># このアプリケーションを production モードで実行する
location ~ \.php$ {
fastcgi_param FUEL_ENV production;
}</code></pre>
</li>
</ol>
<h4 id="env_manual">/fuel/app/bootstrap.php で環境を設定する</h4>
<p>
<a href="#env_server">FUEL_ENV サーバ変数</a> で環境を設定できない場合、<em>fuel/app/bootstrap.php</em> の中の設定を手動で変更することができます。
</p>
<pre class="php"><code>// fuel/app/bootstrap.php の中
/**
* Your environment. Can be set to any of the following:
*
* Fuel::DEVELOPMENT
* Fuel::TEST
* Fuel::STAGING
* Fuel::PRODUCTION
* Any string you want, for example, a developer name (mike_dev)
*
*/
Fuel::$env = (isset($_SERVER['FUEL_ENV']) ? $_SERVER['FUEL_ENV'] : Fuel::PRODUCTION);</code></pre>
<p class="note">このコードを使った場合、環境変数が設定されていればそれが優先されます!</p>
<h3 id="env_oil">oil 使用時の環境を設定する</h3>
<p>
FuelPHP の oil はアプリケーション用に設定された環境を使いません。oil が実行されるときの環境は、oil が実行される度に個別に設定されなければなりません。次の手順に設定方法が示されています。もし、アプリケーションの環境を設定する場合は、<a href="#env_server">サーバ環境変数で環境を設定する (推奨)</a> または <a href="#env_manual"><em>/fuel/app/bootstrap.php</em> で環境を設定する</a> を参照して下さい。
</p>
<p>
*unix オペレーティングシステムの場合、 <kbd>env</kbd> コマンドを使い oil を実行する前に変数を定義できます。
</p>
<pre class="cli"><code><strong>$</strong> env FUEL_ENV=production php oil -v</code></pre>
<p>
Windows を使用している場合、これが動作すると報告されています:
</p>
<pre class="cli"><code><strong>C:\> </strong>set FUEL_ENV=production && php oil -v</code></pre>
<h3 id="setting_env">現在の環境を取得する</h3>
<p>
プログラムで <strong>\Fuel::$env</strong> を利用し現在の環境を取得することができます。
</p>
<p class="note"><strong>$_SERVER['FUEL_ENV']</strong> を利用しないでください。 環境を設定しない場合はそれは動作しません。 $_SERVER を使用すると、それが存在しない場合やコードで上書きされる可能性があるため信頼性がありません (\Fuel::$env はそれとは異なる) 。</p>
<pre class="php"><code>
// 現在のアプリケーション環境と定義済みの環境とを比較する
if(\Fuel::$env == \Fuel::PRODUCTION)
{
//どうにかする
}
// 現在のアプリケーション環境とカスタム環境とを比較する
if(\Fuel::$env == "mike_dev")
{
//どうにかする
}
</code></pre>
</div>
<footer>
<p>
© FuelPHP Development Team 2010-2016 - <a href="http://fuelphp.com">FuelPHP</a> is released under the MIT license.
[ <a href="https://github.com/fuel/docs/commits/1.8/develop/general/environments.html">原文コミット履歴</a> | <a href="https://github.com/NEKOGET/FuelPHP_docs_jp/commits/1.8/develop_japanese/general/environments.html">翻訳コミット履歴</a> | <a href="https://github.com/NEKOGET/FuelPHP_docs_jp/blob/1.8/develop_japanese/general/environments.html">GitHubで修正</a> ]
</p>
</footer>
</div>
</body>
</html>