php-fpm自定义环境变量设置
By skyshappiness Posted 2017-09-03 21:51:50 In

一、背景:

    阿里云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"
    

    按照文档说法,在正式环境中不建议开启此种模式(由于性能损耗);

友情链接
联系方式
  • 邮箱 / E-mail:121388038@qq.com