Apache+PHPで環境変数 TMP を使用する方法のメモ書き。
Apache Environment セクションに追加する方法と、Environment セクションに追加する方法の2つを紹介する。
目次
(1) 動作確認環境
PHP 5.6
Apache 2.4
(2) デフォルト状態の環境変数 TMP を確認する。
phpinfo() で Environment セクションを確認すると、C:Windowds\Temp。
Apache Environment セクションには、TMP の項目がない。
(3) Apache Environment セクションに追加する。
Apache の httpd.conf(環境によっては、httpd-vhosts.conf)に SetEnv を記述する。
1 2 3 |
<VirtualHost *:80> SetEnv TMP "C:\Users\test\Desktop\temp" SetEnv TEMP "C:\Users\test\Desktop\temp" |
Apache を再起動し、phpinfo() で「Apache Environment セクション」と「PHP Variables セクション」を確認すると、TMP が追加されている。
ただし、Environment セクションは変更されていない。
うまく追加されない場合は、Apache の環境変数から関連モジュールを確認するとよい。
(4) Environment セクションに追加する。
Apache サービスの起動を bat ファイル経由にする。
そのためには、まず環境変数を設定した Apache 起動バッチファイルを作成する。
1 2 3 4 5 6 7 8 9 |
@echo off rem setlocal/endlocalコマンドは環境変数のローカル化のためにある。 setlocal set TMP=C:\Users\test\Desktop\temp set TEMP=C:\Users\test\Desktop\temp "C:\Program Files (x86)\Apache24\bin\httpd.exe" -k runservice endlocal |
次に、このバッチファイルをサービスから呼び出すようする。
サービスの「実行ファイルのパス」はレジストリを直接編集して変更する。
コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Apache24
ImagePath でバッチファイルのパス指定。環境変数を設定。
Apache を再起動し、phpinfo() で「Environment セクション」を確認すると、TMP が追加されている。
以上。