PHP获取环境变量

使用PHP的exec等函数与:Linux进行交互是很常见的方式,但是有时候发现,在终端里面通过命令行模式运行的代码可行,放到网站上去访问就出问题了,这里主要是因为在通过Nginx调起PHP-FPM的时候,会存在一些参数的配置问题下面就简单介绍一下这两种方式。

解决-PHP-FPM模式

  1. 通过Nginx传递

    如在nginx的配置里设置:
    fastcgi_param ENV_XXX 123456;
    每次页面请求nginx都会将此变量传递给php,php可以通过getenv函数或$_SERVER全局变量获得。

  2. 通过PHP-FPM配置传递
    1234567891011121314151617
    ; Clear environment in FPM workers; Prevents arbitrary environment variables from reaching FPM worker processes; by clearing the environment in workers before env vars specified in this; pool configuration are added.; Setting to "no" will make all environment variables available to PHP code; via getenv(), _ENV and _SERVER.; Default Value: yes ; clear_env = no
    
    ; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from; the current environment.; Default Value: clean env ;env[HOSTNAME] = $HOSTNAMEenv[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/sbin;env[TMP] = /tmp;env[TMPDIR] = /tmp;env[TEMP] = /tmp

    上面是php-fpm.conf(包括php-fpm.d/www.conf)里面关于环境变量的配置,在里面有一个`clear_env`的参数配置,这个默认是*yes*,而他的含义就是会把Linux上设置的环境变量给清空,这样的设置也是基于安全角度来考虑,我们此时把这个值设置为*no*即可,即

    1
    clear_env = no

    在下面的配置中有一个env[PATH]的参数配置,这里也可以满足我们设置环境变量的需求

    ?

    解决-命令行模式

    命令行模式限制较少,可以通过getenv函数或$_SERVER全局变量获取对当前执行用户有效的系统环境变量,同样要注意sudo的限制

原文:大专栏  PHP获取环境变量

原文地址:https://www.cnblogs.com/jimmykeji/p/11657422.html

时间: 2024-10-08 22:23:36

PHP获取环境变量的相关文章

java中获取环境变量

分为获取java自身的一些环境变量和和操作系统相关的环境变量. 获取JVM相关的一些变量 在运行时设置一个环境变量 debug 为 true: java -Ddebug=true YourClass在程序中设置一个环境变量 debug 为 true: System.setProperty( "debug", "true" );获取一个环境变量 debug : String debug = System.getProperty( "debug" )

java调用python的惨痛史(无法获取环境变量)

环境:java,was,python2.6,红帽linux,oracle,python用cx_Oracle        事情是这样的,有个需求,需要对数据库进行处理,简单说就是把数据取出来,用python使用外部传参做一个处理,再写回到数据库.如果使用java直接搞的话需要绕很大一个圈,比较麻烦,用python的话就很简单了,于是就有了下面的故事,希望和我遇到同样问题的同学能对你们有一些帮助,少绕一些圈子,java和python功能开发都很顺利,于是到了java调用python环节 大概把需要

node 获取环境变量

node有时候需要获取环境变量,可以用node 内置对象process来实现, 例如:获取环境变量中 名为GRUNT_PATH的值:var gruntPath=process.env.GRUNT_PATH:还可以获取当前项目相对于gruntPath 的相对路径:var nodepath = path.relative(__dirname, process.env.GRUNT_PATH); 原文地址:https://blog.51cto.com/13496570/2402127

关于php的getenv()方法获取环境变量的问题

php文件的执行 我们比较常用的执行php文件方式有两种 一种是通过浏览器访问服务器(比如apache),然后由服务器来运行相应的php文件 另一种就是通过shell直接运行php命令或者在shell脚本文件中运行php命令的方式来执行php文件 直接运行php命令 php /var/www/borg/oil refine test 在shell脚本文件中运行php命令 bash /var/www/borg/fuel/app/tasks/test.sh test.sh #!/bin/bash e

springboot读取系统级环境变量,和读写系统属性以及unittest来获取环境变量的方法

环境变量的读取以及系统属性的设置 环境变量只能读取,不能修改,系统属性可以修改 系统变量的读取方式: System.getEnv() 系统属性有多重读取和修改方式: 其修改方式为: 读取系统属性: @Autowired AbstractEnvironment environment; System.setProperty("today","tuesday"); environment.getProperty("test"); 增加新的系统属性:

Jenkins Python Plugin获取环境变量

Jenkins Python Plugin 官方wiki:https://wiki.jenkins-ci.org/display/JENKINS/Python+Plugin 它使得在构建时可以执行Python脚本(前提:Python必须已经被添加到path环境变量中) 当然,它也也可以使用Jenkins提供的一系列环境变量,如:BUILD_NUMBER BUILD_ID JOB_NAME JENKINS_HOME 等等 具体这些环境变量可以点击如下链接查看详情,http://ip[:port]/

Python 获取环境变量的几种方式

第一种 import os os.environ.get('key_name') 第二种 import os os.getenv('key_name') 第三种 import os os.getenvb('key_name') # 返回bytes 前面两种使用的场景使用比较多,使用哪个就由你自己决定,记住哪个就用哪个咯. 原文地址:https://www.cnblogs.com/1lin24/p/11811118.html

java 获取系统变量(环境变量和设置变量)

前言 环境变量这个概念不陌生, 就是操作系统的环境变量. 系统变量就是java本身维护的变量. 通过 System.getProperty 的方式获取. 对于不同的操作系统来说, 环境变量的处理可能会有一些不统一的地方, 比方说: 不区分大写和小写 等等. Java 获取环境变量 Java 获取环境变量的方式非常easy: System.getEnv()  得到全部的环境变量 System.getEnv(key) 得到某个环境变量的值 Map map = System.getenv(); Ite

Linux下获取和设置环境变量

1. 打印所有环境变量 /*打印所有的环境变量*/ char** env=__environ; while(*env) { printf("%s\n",*env); //printf("%c\n",**env); env++; } 2.使用getenv获取环境变量 //使用getenv获取环境变量,需要头文件stdlib.h char* path=getenv("HOME"); 3.使用setenv设置环境变量 char* p=getenv(&q