Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Apache上运行的PHP web应用程序中打印Linux shell环境变量_Php_Linux_Apache_Web Applications_Environment Variables - Fatal编程技术网

如何在Apache上运行的PHP web应用程序中打印Linux shell环境变量

如何在Apache上运行的PHP web应用程序中打印Linux shell环境变量,php,linux,apache,web-applications,environment-variables,Php,Linux,Apache,Web Applications,Environment Variables,我正在CentOS6上使用Apache开发一个php web应用程序。 我在CentOS的命令行中使用 export test_var=3 我不明白为什么我不能在我的web应用程序的php脚本中打印这个Linux shell变量。Apache似乎只调出自己的环境变量,而忽略了Linux环境变量 到目前为止我已经尝试过的事情: 我在/etc/php.ini中设置了变量variables\u order='EGPCS'。 这使我能够使用PHP CLI访问Linux变量,但不能在web应用程序中访问

我正在CentOS6上使用Apache开发一个php web应用程序。 我在CentOS的命令行中使用

export test_var=3
我不明白为什么我不能在我的web应用程序的php脚本中打印这个Linux shell变量。Apache似乎只调出自己的环境变量,而忽略了Linux环境变量

到目前为止我已经尝试过的事情:

  • 我在
    /etc/php.ini
    中设置了变量
    variables\u order='EGPCS'
    。 这使我能够使用PHP CLI访问Linux变量,但不能在web应用程序中访问

  • 我尝试在Apache配置文件(
    httpd.conf
    )中添加行
    PassEnv test\u var
    ),但Apache在我的应用程序中返回一个空值。 当我在
    /etc/init.d/httpd
    中添加行
    export test\u var=1
    时,Passenv可以工作,但我不想使用它,因为我已经在Linux中声明和设置了这个变量,所以我不想再次设置它

  • 我编写了一个shell脚本,并尝试使用
    exec
    执行shell脚本,但当我尝试使用
    print\u var
    打印它时,我得到一个空白数组
  • 有什么建议吗?我不想在任何文件中设置变量,因为我已经在Linux中设置了它。我想从操作系统本身提取变量

    PassEnv说应该做到这一点:

    指定一个或多个本机系统环境变量作为内部环境变量可用,这些变量可用于Apache>HTTP服务器模块,也可传播到CGI脚本和SSI页面。值来自调用httpd进程的shell的本机操作系统环境


    环境变量仅由子进程继承。登录到您自己的帐户时设置的环境变量对服务器进程没有影响。谢谢!有没有其他方法可以通过apache访问linux变量?不是通过个人登录,这不是环境变量在Unix上的工作方式。您需要在Apache启动脚本中添加一些内容(比如/etc/init.d/Apache)。问这样的问题的正确位置是serverfault.com,编程问题也是如此。我刚刚了解到我需要在apache启动时传递一个变量,而不是通过Linux,因此我在/etc/init.d/httpd中使用了echo-n,read-s export语句,然后在/etc/httpd/conf/httpd.conf中使用了PassEnv。感谢您的帮助和serverfault.com。