XAMPPで環境変数$_ENVを有効化する方法
Table of Contents
こんな方におすすめ
・ローカル環境でXAMPPを使っているが、環境変数が使えない(エラーが起こる)
・コードをいくら見直しても間違えてそうなところが見当たらない
原因は…環境変数$_ENVが無効になっているから!!
PHPで環境変数$_ENVを使って、XAMPPローカル環境でいざ実行!…ところがエラー)
コードの中から間違えを探しても、それっぽいところが見当たらない・・・
おそらく↑のようなエラーが出ていると思います。この場合、コードが間違えているのではなく、phpの方で$_ENVが無効になっていることが原因である可能性があります。
Undefined index というエラーは、未定義の配列の要素を使用している場合に出るエラーです。
変数$_ENVは配列ですので、ここでいう未定義の配列とは$_ENVのことです。しかしながら、$_ENVというのは、スーパーグローバル変数ですので、私たちコードを書く人間が変数定義を行わなくても、予めPHPが準備してくれている変数です。したがって、定義を忘れているということではありません。
何なのかと言いますと、phpの設定、具体的にはphp.iniで$_ENVが有効になっていないということになります!!
というわけで、xamppでphp.iniの設定をいじりましょー!
php.iniで環境変数$_ENVを有効化
XAMPPのコントロールパネルでApacheの[config]→[PHP(php.ini)]を開きます。
その後、639行目付近に「variables_order = “GPCS”」とあると思いますので、そこを”GPCS”→”EGCPS”に書き換えてください。(見つからない場合は、Ctrl+Fで「variables_order」と検索してください。*メモ帳の場合)
1 2 3 4 5 6 7 8 9 10 11 12 |
; This directive determines which super global arrays are registered when PHP ; starts up. G,P,C,E & S are abbreviations for the following respective super ; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty ; paid for the registration of these arrays and because ENV is not as commonly ; used as the others, ENV is not recommended on productions servers. You ; can still get access to the environment variables through getenv() should you ; need to. ; Default Value: "EGPCS" ; Development Value: "GPCS" ; Production Value: "GPCS"; ; http://php.net/variables-order variables_order="EGPCS" //ここの行 |
保存後、一度Apacheを停止してから、再起動して実行してください。おそらくできると思います。
なお、開発環境によっては、$_ENVのキーを「PATH」ではなく、「Path」にしないとうまくいかない事がありますので、注意してください。(実際に私もそうでした。)