php-fpm環境下でApache httpdのSetEnvで設定された環境変数は、PHPのenv()等では取得できるが、
execで実行されるコマンドには、SetEnvで設定された環境変数が反映されなかったので(php-fpmの仕様?)実施した回避策を書く!
要約
- ApacheのSetEnvは使わず
/etc/environment
に環境変数を記載して利用する
/etc/environment
の環境変数利用手順
/etc/systemd/system/httpd.service
を作成
- 以下内容で作成する
.include /lib/systemd/system/httpd.service [Unit] After=network.target remote-fs.target nss-lookup.target httpd-init.service cloud-config.service [Service] UMask=002 EnvironmentFile=/etc/environment
/etc/systemd/system/php-fpm.service
を作成
- 以下内容で作成する
.include /lib/systemd/system/php-fpm.service [Unit] After=syslog.target network.target cloud-config.service [Service] UMask=002 EnvironmentFile=/etc/environment PrivateTmp=false
/etc/php-fpm.d/www.conf
に1行追加
- 以下を追記
clear_env = no
あとは/etc/environment
に環境変数を記載していくだけ!