一、背景:
阿里云SLB负载均衡 + 两台服务器+nas 文件存储(主要存放日志文件、上传的图片什么的)。nas 文件存储,已挂载至两台机器,可同时访问;两台机器通过快照搭建,因此系统、php运行环境、安装时间完全一致。现需要区分客户端访问的是哪台机器,亦即哪台纪录哪台机器产生的日志。
二、解决方案:
php 函数 String getenv( String $varname) 获取环境变量的值
修改 php-fpm 配置文件:
打开 : php-fpm.d/www.conf
查找 :
; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from
; the current environment.
; Default Value: clean env
;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp
添加 :env['WEBNAME'] = IP / 自定义服务器名称
service php-fpm restart
修改 php 代码 : getenv('WEBNAME'); 获取
三、不建议的操作:
通过 PHP 的超全局变量 $_ENV 获取环境配置;
通过 $_ENV 获取方式:
修改 php.ini 配置项------------------->查找 variables_order = "GPCS" ------------->修改成: variables_order = "EGPCS"
按照文档说法,在正式环境中不建议开启此种模式(由于性能损耗);