skip to Main Content

php 5.4/fcgi on apache 2.4, centos 7.1. php/apache are built/managed by cpanel easyapache.

I’m trying to add an entry to the “environment” section that displays on phpinfo()

enter image description here

I have tried the following :

  • SetEnv in httpd.conf – it doesn’t add it as an environment variable, it appears under $_SERVER
  • add to /etc/sysconfig/httpd – has no effect whatsoever.
  • FcgidInitialEnv MY_VARIABLE SomeValue in httpd.conf – also no effect.

Any advice appreciated. Note this section in phpinfo is NOT for showing system environment variables.

2

Answers


  1. Chosen as BEST ANSWER

    Finally found a solution, the only way that works is to add a wrapper script around the calling of php, and setting the values there - thanks to Oliver Hader for the tip.


  2. Assuming you’re using mod_fcgi and you configured a wrapper script like this:

    FcgidWrapper /var/www/wrapper/php72wrapper .php
    

    The wrapper script php72wrapper then defines the environment variables when the request is dispatched to the real php binary – MY_VARIABLE has been added as example:

    #!/bin/sh
    export PHPRC="/var/www/wrapper/php72wrapper"
    export MY_VARIABLE="Whatever it should contain"
    exec /usr/bin/php72
    

    In PHP you could access that value by e.g. using getenv('MY_VARIABLE'). Besides that MY_VARIABLE is also listed in the “Environment” section of phpinfo().

    An alternative way is to use FcgidInitialEnv in your Apache VirtualHost configuration:

    FcgidInitialEnv MY_VARIABLE "Whatever it should contain"
    

    see https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidinitialenv

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search